[gnu.gdb.bug] bugs in gdb for the ns32k

taylor@THINK.COM (06/04/89)

In looking at the output of gdb's disassembler on a ns32k executable, I
discovered that it doesn't correctly disassemble many of the
instructions.

For the `movsu', `movus', and `or' instructions, it was correctly
advancing the pc, but only printing the second operand.  It turned out
that the opcode table in ns32k-opcode.h has a `1' some places where it
should have a `2'.

This bug makes me wonder, has anyone actually *used* gdb on a ns32k?

Anyway, the fix is simple, here's the `diff -c1' output.

*** ns32k-opcode.h~	Mon May 29 21:01:16 1989
--- ns32k-opcode.h	Thu Jun  1 02:37:07 1989
***************
*** 221,228 ****
    { "movst",	16,16,	0x800e,	"1i" },
!   { "movsub",	14,24,	0x0cae,	"1A1A" },
!   { "movsuw",	14,24,	0x0dae,	"1A1A" },
!   { "movsud",	14,24,	0x0fae,	"1A1A" },
!   { "movusb",	14,24,	0x1cae,	"1A1A" },
!   { "movusw",	14,24,	0x1dae,	"1A1A" },
!   { "movusd",	14,24,	0x1fae,	"1A1A" },
    { "movxbd",	14,24,	0x1cce,	"1B2D" },
--- 221,228 ----
    { "movst",	16,16,	0x800e,	"1i" },
!   { "movsub",	14,24,	0x0cae,	"1A2A" },
!   { "movsuw",	14,24,	0x0dae,	"1A2A" },
!   { "movsud",	14,24,	0x0fae,	"1A2A" },
!   { "movusb",	14,24,	0x1cae,	"1A2A" },
!   { "movusw",	14,24,	0x1dae,	"1A2A" },
!   { "movusd",	14,24,	0x1fae,	"1A2A" },
    { "movxbd",	14,24,	0x1cce,	"1B2D" },
***************
*** 247,251 ****
    { "notd",	14,24,	0x274e, "1D2D" },
!   { "orb",	 6,16,	0x18,	"1B1B" },
!   { "orw",	 6,16,	0x19,	"1W1W" },
!   { "ord",	 6,16,	0x1b,	"1D1D" },
    { "quob",	14,24,	0x30ce,	"1B2B" },
--- 247,251 ----
    { "notd",	14,24,	0x274e, "1D2D" },
!   { "orb",	 6,16,	0x18,	"1B2B" },
!   { "orw",	 6,16,	0x19,	"1W2W" },
!   { "ord",	 6,16,	0x1b,	"1D2D" },
    { "quob",	14,24,	0x30ce,	"1B2B" },

David
--
David Taylor
taylor@think.com, ...!think!taylor