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;
|
return error;
|
||||||
|
|
||||||
instruction_type instructionType = INSTRUCTION_TYPE_OTHER;
|
instruction_type instructionType = INSTRUCTION_TYPE_OTHER;
|
||||||
if (buffer[0] == 0xff) {
|
if (buffer[0] == 0xff && (buffer[1] & 0x34) == 0x10) {
|
||||||
// absolute call with r/m32
|
// absolute call with r/m32
|
||||||
instructionType = INSTRUCTION_TYPE_SUBROUTINE_CALL;
|
instructionType = INSTRUCTION_TYPE_SUBROUTINE_CALL;
|
||||||
} else if (buffer[0] == 0xe8 && instructionSize == 5) {
|
} else if (buffer[0] == 0xe8 && instructionSize == 5) {
|
||||||
|
|||||||
Reference in New Issue
Block a user