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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user