* rs6000-pinsn.c: New version from IBM (Metin).
authorPer Bothner <per@bothner.com>
Fri, 17 Apr 1992 01:35:42 +0000 (01:35 +0000)
committerPer Bothner <per@bothner.com>
Fri, 17 Apr 1992 01:35:42 +0000 (01:35 +0000)
* m2-exp.y:  Re-write string initializers ("<>" => {'<', '>'})
to avoid warnings from some compilers.

gdb/ChangeLog
gdb/m2-exp.y
gdb/rs6000-pinsn.c

index 8ee5268b063f2357def684d768458ae172e41cdb..3fb8628841e007eff3ab0d9e11a9b8f9b78099be 100644 (file)
@@ -1,3 +1,9 @@
+Thu Apr 16 18:26:34 1992  Per Bothner  (bothner@cygnus.com)
+
+       * rs6000-pinsn.c:  New version from IBM (Metin).
+       * m2-exp.y:  Re-write string initializers ("<>" => {'<', '>'})
+       to avoid warnings from some compilers.
+
 Tue Apr 14 22:33:55 1992  Fred Fish  (fnf@cygnus.com)
 
        * gdbtypes.h (FT_FIXED_DECIMAL, FT_FLOAT_DECIMAL):  Add defines.
index 2274b1613d75d6746bbf59ec52cc93efe2269c64..54a6bda7a4203fcb63bd55bd54335f88a05033a9 100644 (file)
@@ -785,11 +785,11 @@ static struct
    int token;
 } tokentab2[] =
 {
-    {"<>",    NOTEQUAL          },
-    {":=",    ASSIGN    },
-    {"<=",    LEQ       },
-    {">=",    GEQ       },
-    {"::",    COLONCOLON },
+    { {'<', '>'},    NOTEQUAL  },
+    { {':', '='},    ASSIGN    },
+    { {'<', '='},    LEQ       },
+    { {'>', '='},    GEQ       },
+    { {':', ':'},    COLONCOLON },
 
 };
 
index 6880370bb172228c06e6cdedfc2f98b07d418325..03261e59421c59047131b2e2b7afbf60b0b5864a 100644 (file)
@@ -29,7 +29,7 @@ print_insn (memaddr, stream)
   CORE_ADDR memaddr;
   FILE *stream;
 {
-       int  pop, eop;                  /* primary and extended opcodes */
+       int  pop, eop, probable_eop;    /* primary and extended opcodes */
        int  min, max;
        int  best = -1;                 /* found best opcode index      */
        int  oldbest = -1;
@@ -37,7 +37,6 @@ print_insn (memaddr, stream)
 
        read_memory (memaddr, &the_insn, sizeof (the_insn));
        pop = (unsigned)(the_insn >> 26);
-       eop = ((the_insn) >> 1) & 0x3ff;
        min = 0, max = NOPCODES-1;
 
        while (min < max) {
@@ -55,7 +54,7 @@ print_insn (memaddr, stream)
            min = best;
 
          else {
-           /* opcode matched, check extended opcode. */
+           /* Opcode matched, check extended opcode. */
 
            if (rs6k_ops [best].e_opcode == -1) {
              /* there is no valid extended opcode, what we've got is
@@ -63,12 +62,18 @@ print_insn (memaddr, stream)
              goto insn_found;
            }
 
-           else if (eop < rs6k_ops [best].e_opcode) {
+           /* Largest possible value of extended opcode. */
+           probable_eop = ((the_insn) >> 1) & 0x3ff;
+
+           eop = probable_eop & eopMask [rs6k_ops [best].format];
+
+           if (eop < rs6k_ops [best].e_opcode) {
 
              while (pop == rs6k_ops [best].p_opcode) {
                if (eop == rs6k_ops [best].e_opcode)    /* found it! */
                  goto insn_found;
                --best;
+               eop = probable_eop & eopMask [rs6k_ops [best].format];
              }
              goto not_found;
            }
@@ -79,6 +84,7 @@ print_insn (memaddr, stream)
                if (eop == rs6k_ops [best].e_opcode)    /* found it! */
                  goto insn_found;
                ++best;
+               eop = probable_eop & eopMask [rs6k_ops [best].format];
              }
              goto not_found;
            }