diff options
author | Per Bothner <per@bothner.com> | 1992-04-17 01:35:42 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1992-04-17 01:35:42 +0000 |
commit | d453b386ac60cb219f5949da95cb99d1e22ad6b9 (patch) | |
tree | aaf7cbe5c2c04731813654a84ae84ed90ba53c63 | |
parent | c0532cf36ba83d86825b8647b892f4d3d090ba7c (diff) | |
download | gdb-d453b386ac60cb219f5949da95cb99d1e22ad6b9.zip gdb-d453b386ac60cb219f5949da95cb99d1e22ad6b9.tar.gz gdb-d453b386ac60cb219f5949da95cb99d1e22ad6b9.tar.bz2 |
* rs6000-pinsn.c: New version from IBM (Metin).
* m2-exp.y: Re-write string initializers ("<>" => {'<', '>'})
to avoid warnings from some compilers.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/m2-exp.y | 10 | ||||
-rw-r--r-- | gdb/rs6000-pinsn.c | 14 |
3 files changed, 21 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8ee5268..3fb8628 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y index 2274b16..54a6bda 100644 --- a/gdb/m2-exp.y +++ b/gdb/m2-exp.y @@ -785,11 +785,11 @@ static struct int token; } tokentab2[] = { - {"<>", NOTEQUAL }, - {":=", ASSIGN }, - {"<=", LEQ }, - {">=", GEQ }, - {"::", COLONCOLON }, + { {'<', '>'}, NOTEQUAL }, + { {':', '='}, ASSIGN }, + { {'<', '='}, LEQ }, + { {'>', '='}, GEQ }, + { {':', ':'}, COLONCOLON }, }; diff --git a/gdb/rs6000-pinsn.c b/gdb/rs6000-pinsn.c index 6880370..03261e5 100644 --- a/gdb/rs6000-pinsn.c +++ b/gdb/rs6000-pinsn.c @@ -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; } |