This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: objdump BUG: wrong DISASM
- To: Frank Klemm <f dot klemm at zeiss dot de>
- Subject: Re: objdump BUG: wrong DISASM
- From: Alan Modra <amodra at bigpond dot net dot au>
- Date: Tue, 4 Sep 2001 11:04:18 +0930
- Cc: bug-binutils <bug-binutils at gnu dot org>, pfk <pfk at schnecke dot offl dot uni-jena dot de>, binutils at sourceware dot cygnus dot com
- References: <03FAD3B93B0C7019*/c=DE/admd=DBP/prmd=Zeiss/o=NotesZeiss/s=Klemm/g=Frank/@MHS>
On Mon, Sep 03, 2001 at 06:33:11PM +0200, Frank Klemm wrote:
>
> For the 64 bit mnemonics the follwoing syntax should be used:
>
> imul reg
> mul reg
Agreed.
opcodes/ChangeLog
* i386-dis.c (grps): Don't print the implicit al/ax/eax register
for opcode 0xf6 or 0xf7 forms of mul, imul, div, idiv insns.
Applying mainline and branch.
--
Alan Modra
Index: opcodes/i386-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/i386-dis.c,v
retrieving revision 1.30
diff -u -p -r1.30 i386-dis.c
--- i386-dis.c 2001/07/29 05:00:14 1.30
+++ i386-dis.c 2001/09/04 01:26:11
@@ -1297,10 +1297,10 @@ static const struct dis386 grps[][8] = {
{ "(bad)", Eb, XX, XX },
{ "notA", Eb, XX, XX },
{ "negA", Eb, XX, XX },
- { "mulB", AL, Eb, XX },
- { "imulB", AL, Eb, XX },
- { "divB", AL, Eb, XX },
- { "idivB", AL, Eb, XX }
+ { "mulA", Eb, XX, XX }, /* Don't print the implicit %al register, */
+ { "imulA", Eb, XX, XX }, /* to distinguish these opcodes from other */
+ { "divA", Eb, XX, XX }, /* mul/imul opcodes. Do the same for div */
+ { "idivA", Eb, XX, XX } /* and idiv for consistency. */
},
/* GRP3S */
{
@@ -1308,10 +1308,10 @@ static const struct dis386 grps[][8] = {
{ "(bad)", XX, XX, XX },
{ "notQ", Ev, XX, XX },
{ "negQ", Ev, XX, XX },
- { "mulS", eAX, Ev, XX },
- { "imulS", eAX, Ev, XX },
- { "divS", eAX, Ev, XX },
- { "idivS", eAX, Ev, XX },
+ { "mulQ", Ev, XX, XX }, /* Don't print the implicit register. */
+ { "imulQ", Ev, XX, XX },
+ { "divQ", Ev, XX, XX },
+ { "idivQ", Ev, XX, XX },
},
/* GRP4 */
{