fix ior encoding
authorDoug Evans <dje@google.com>
Tue, 27 Jan 1998 17:56:06 +0000 (17:56 +0000)
committerDoug Evans <dje@google.com>
Tue, 27 Jan 1998 17:56:06 +0000 (17:56 +0000)
gas/testsuite/gas/txvu/lower-1.d
opcodes/txvu-opc.c

index 798315c9b1b3868ec42b7fc48f51d0edc9f20429..f653607025b68210c5ef0eac91c2d18d790563bf 100644 (file)
@@ -89,7 +89,7 @@ Disassembly of section .text:
  13c:  ff 02 00 00 
  140:  fe 23 23 80[    ]*nop[  ]*ilwr.w vi03,\(vi04\)w
  144:  ff 02 00 00 
- 148:  74 21 03 80[    ]*nop[  ]*ior vi05,vi04,vi03
+ 148:  75 21 03 80[    ]*nop[  ]*ior vi05,vi04,vi03
  14c:  ff 02 00 00 
  150:  71 21 03 80[    ]*nop[  ]*isub vi05,vi04,vi03
  154:  ff 02 00 00 
index 1893c1fdc92cc847039ba5dbc9c44ecc077e07e0..0f6deee8eea023a769c0c2cd7ddcfb19a80600fb 100644 (file)
@@ -47,7 +47,7 @@ static char *scan_symbol PARAMS ((char *));
 
 #define SKIP_BLANKS(var) while (isspace (*(var))) ++(var)
 
-/* ??? One can argue it's preferable to have the PARSE_FN support in tc-vxvu.c
+/* ??? One can argue it's preferable to have the PARSE_FN support in tc-txvu.c
    and the PRINT_FN support in txvu-dis.c.  For this project I like having
    them all in one place.  */
 
@@ -478,7 +478,7 @@ struct txvu_opcode txvu_lower_opcodes[] =
   { "ibne", { SP, LITREG, C, LISREG, C, LPCREL11 }, MLOP7 + MDEST, VLOP7 (0x29) },
   { "ilw", { LDOTDEST1, SP, LITREG, C, LIMM11, '(', LISREG, ')', LDEST1 }, MLOP7, VLOP7 (0x04) },
   { "ilwr", { LDOTDEST1, SP, LITREG, C, '(', LISREG, ')', LDEST1 }, MLOP7 + MLIMM11, VLOP7 (0x40) + VLIMM11 (0x3fe) },
-  { "ior", { SP, LIDREG, C, LISREG, C, LITREG }, MLOP7 + MDEST + MLOP6, VLOP7 (0x40) + VLOP6 (0x34) },
+  { "ior", { SP, LIDREG, C, LISREG, C, LITREG }, MLOP7 + MDEST + MLOP6, VLOP7 (0x40) + VLOP6 (0x35) },
   { "isub", { SP, LIDREG, C, LISREG, C, LITREG }, MLOP7 + MDEST + MLOP6, VLOP7 (0x40) + VLOP6 (0x31) },
   { "isubiu", { SP, LITREG, C, LISREG, C, LUIMM15 }, MLOP7, VLOP7 (0x09) },
   { "isw", { LDOTDEST1, SP, LITREG, C, LIMM11, '(', LISREG, ')', LDEST1 }, MLOP7, VLOP7 (0x05) },
@@ -1883,7 +1883,13 @@ struct txvu_opcode gpuif_opcodes[] =
 {
   /* Some of these may take optional arguments.
      The way this is handled is to have multiple table entries, those with and
-     those without the optional arguments.  */
+     those without the optional arguments.
+     !!! The order here is important.  The code that scans this table assumes
+     that if it reaches the end of a syntax string there is nothing more to
+     parse.  This means that longer versions of instructions must appear before
+     shorter ones.  Otherwise the text at the "end" of a longer one may be
+     interpreted as junk when the parser is using a shorter version of the
+     syntax string.  */
 
   { "gpuifpacked", { SP, GPUIF_PRIM, C, GPUIF_REGS, C, GPUIF_NLOOP, C, GPUIF_EOP }, 0, 1 },
   { "gpuifpacked", { SP, GPUIF_REGS, C, GPUIF_NLOOP, C, GPUIF_EOP }, 0, 1 },