[Top][All Lists]
[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.
- [Bug binutils/3134] objdump incompletely decodes mov disp:32 instruction,
vda dot linux at googlemail dot com <=