Correctly recognize the "call r/m32" opcode. There are three opcode bits in the

second byte, which we didn't check, thus incorrectly identifying some other
instructions as calls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31674 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-07-21 15:10:58 +00:00
parent b1ce728479
commit c90f9b9ef3
@@ -558,7 +558,7 @@ ArchitectureX86::GetInstructionInfo(target_addr_t address,
return error;
instruction_type instructionType = INSTRUCTION_TYPE_OTHER;
if (buffer[0] == 0xff) {
if (buffer[0] == 0xff && (buffer[1] & 0x34) == 0x10) {
// absolute call with r/m32
instructionType = INSTRUCTION_TYPE_SUBROUTINE_CALL;
} else if (buffer[0] == 0xe8 && instructionSize == 5) {