update copyright
[deliverable/binutils-gdb.git] / gas / config / alpha-opcode.h
index d6b85b3ebbc0664fce5dafd0a0f4a4cea81f4633..6431f20ec503fcd4228810116748a5027b3beb79 100644 (file)
  *  5-Oct-93  Alessandro Forin (af) at Carnegie-Mellon University
  *     First checkin.
  *
- * $Log$
- * Revision 1.1  1994/01/28 01:36:59  raeburn
- * New Alpha support files, based on files from CMU.
- * Still to do:
- *  - fix floating-point handling
- *  - figure out if we can adapt to using ../opcodes/alpha-opc.h
- *  - gcc bootstrap testing
- *  - 32-bit mode support?
- *  - test cross-assembly
- *
- *
  *    Author:  Alessandro Forin, Carnegie Mellon University
  *    Date:    Jan 1993
  */
 
 /* Table of opcodes for the alpha.
-   Copyright (C) 1989 Free Software Foundation, Inc.
+   Copyright (C) 1989, 1994, 1995 Free Software Foundation, Inc.
+   Contributed 1993 by Carnegie Mellon University.
 
 This file is part of GAS, the GNU Assembler, and GDB, the GNU disassembler.
 
@@ -200,12 +190,13 @@ static const struct alpha_opcode alpha_opcodes[] =
 
 { "jmp",        0x68000000, 0, "1,(2),i" },    /* 6o+5a+5b+2A+14d */
 { "jmp",        0x68000000, 0, "1,(2)" },
+{ "jmp",       0x68000000, 0, "1,Bc" },
 { "jsr",        0x68004000, 0, "1,(2),i" },
 { "jsr",        0x68004000, 0, "1,(2)" },
 { "jsr",        0x68004000, 0, "1,Bc" },       /* macro: lda $pv,L;jsr .. */
 { "ret",        0x68008000, 0, "1,(2),i" },
 { "ret",        0x68008000, 0, "1,(2)" },
-{ "ret",        0x6b5a8000, 0, "" },           /* macro: ret ra,(ra) */
+{ "ret",        0x6bfa8000, 0, "" },           /* macro: ret zero,(ra) */
 { "ret",        0x6be08000, 0, "(2)" },                /* macro: ret zero,(2) */
 { "ret",        0x681a8000, 0, "1" },          /* macro: ret 1,(ra) */
 { "jcr",        0x6800c000, 0, "1,(2)" },
@@ -287,7 +278,14 @@ static const struct alpha_opcode alpha_opcodes[] =
 { "bis",        0x44001400, 0, "1,b,3" },
 { "bis",        0x44000400, 0, "r,2" },                /* macro: or ra,rb,ra */
 { "bis",        0x44001400, 0, "r,b" },                /* macro: or ra,#,ra  */
+#if 0 /* The `b' handling doesn't seem to handle big constants right
+        now, and even if it did, this pattern would imply that the
+        constant should be produced and *then* moved into the
+        destination register, which is silly.  Since the native
+        assembler doesn't support this instruction, don't even bother
+        trying to fix it.  Just punt.  */
 { "movi",      0x47E01400, 0, "b,3"},          /* movi lit,rc == bis r31,lit,rc */
+#endif
 { "xor",        0x44000800, 0, "1,2,3" },
 { "xor",        0x44001800, 0, "1,b,3" },
 { "xor",        0x44000800, 0, "r,2" },                /* macro: ra,rb,ra */
@@ -405,6 +403,10 @@ static const struct alpha_opcode alpha_opcodes[] =
 { "sts",        0x98000000, 1, "e,P" },                /* regbase macro */
 { "stt",        0x9c000000, 1, "e,l(2)" },
 { "stt",        0x9c000000, 1, "e,P" },                /* regbase macro */
+{ "ldif",      0x80000000, 1, "e,F" },
+{ "ldig",      0x84000000, 1, "e,F" },
+{ "ldis",      0x88000000, 1, "e,F" },
+{ "ldit",      0x8c000000, 1, "e,F" },
 
 { "fbeq",       0xc4000000, 1, "e,L" },                /* 6o+5a+21d */
 { "fbne",       0xd4000000, 1, "e,L" },
@@ -737,6 +739,8 @@ static const struct alpha_opcode alpha_opcodes[] =
 { "bpt",        0x00000080, 0, "" },
 { "chmk",       0x00000083, 0, "" },
 { "imb",        0x00000086, 0, "" },
+{ "halt",      0x00000000, 0, "" },
+{ "draina",    0x00000002, 0, "" },
 
 { "draint",     0x60000000, 0, "" },           /* 6o+5a+5b+16d */
 { "trapb",      0x60000000, 0, "" },           /* 6o+5a+5b+16d */
This page took 0.024637 seconds and 4 git commands to generate.