bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/3134] objdump incompletely decodes mov disp:32 instruction


From: vda dot linux at googlemail dot com
Subject: [Bug binutils/3134] objdump incompletely decodes mov disp:32 instruction
Date: 22 Feb 2008 15:04:40 -0000

------- Additional Comments From vda dot linux at googlemail dot com  
2008-02-22 15:04 -------
According to the .pdf, MOV.L ERs,@(d:32,ERd) instruction has this encoding:

[01] [00] [78] [0erd 0] [6B] [A 0ers] [disp:32]
  or
[01] [00] [78] [1erd 0] [6B] [A 0ers] [disp:32]

where "[]" are bytes (or bigger: disp is 4 bytes).

I think it corresponds to this line in include/opcode/h8300.h:

{O (O_MOV, SL), AV_H8H,  6, "mov.l", {{DISP32SRC, RD32, E}},
   {{PREFIX_0100, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC |
DISP32LIST, E}}},

"PREFIX_0100, 0x7, 0x8, B30 | DISPREG..." part directly corresponds to
"[01] [00] [78] [0erd 0]...."

B30 constant seems to mean "bit 3 in the nibble must be low":
B30 =         0x20000000,             /* Bit 3 must be low.   */

So, just removing it (replacing "B30 | DISPREG" by "DISPREG" in that line)
should do the trick. Markus, can you try it?

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3134

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]