[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcod
From: |
fruffell at cs dot uwaterloo dot ca |
Subject: |
[Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly. |
Date: |
21 Mar 2007 16:20:09 -0000 |
------- Additional Comments From fruffell at cs dot uwaterloo dot ca
2007-03-21 16:20 -------
You are wrong, 0x41 0x90 is valid instruction, and your disassembler
has a bug.
Please understand the difference between the prefix 0x49 and 0x41:
0x49 -> rexB and rexW
0x41 -> rexB
Therefore your instruction:
0x49 0x90 = exchange of %rax with %r8
rexB selects r8
rexW selects the full 64-bits
The instruction in question:
0x41 0x90 = exchange of %eax with %r8d (bits 0-32)
rexB select r8
default operand size remains at 32-bits
The difference lies in the register sizes (%rax vs %eax, %r8 vs %r8d).
Run the provided testcase, so that you can convince yourself that this
instruction exchanges the lower 32-bits of %rax with the lower 32-bits
of %rcx, and zero-extends the upper 32-bits of both registers. This
is hardly a nop, as reported by your disassembler (regardless of what your
assembler produces).
In the future please be more thorough with your handling of bugs, as this is
the second time I've been kind enough to file a detailed bug report with a
testcase, only to incorrectly have it dismissed. My time is not free either,
and my disassembler does not fail this testcase ;-)
--
http://sourceware.org/bugzilla/show_bug.cgi?id=4218
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug binutils/4218] New: objdump on AMD64 fails to decode prefixed 0x90 opcode properly., fruffell at cs dot uwaterloo dot ca, 2007/03/20
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly., fruffell at cs dot uwaterloo dot ca, 2007/03/20
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly., hjl at lucon dot org, 2007/03/21
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly., hjl at lucon dot org, 2007/03/21
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly.,
fruffell at cs dot uwaterloo dot ca <=
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly., hjl at lucon dot org, 2007/03/21
- [Bug binutils/4218] objdump on AMD64 fails to decode prefixed 0x90 opcode properly., hjl at lucon dot org, 2007/03/21