X64: Fix buggy expression in disassembler. Fixes Issue 408: http://code.google.com/p/v8/issues/detail?id=408
Review URL: http://codereview.chromium.org/160174 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
72ac6f619a
commit
65580ea35e
@ -1350,7 +1350,7 @@ int DisassemblerX64::InstructionDecode(v8::internal::Vector<char> out_buffer,
|
|||||||
const char* memory_location = NameOfAddress(
|
const char* memory_location = NameOfAddress(
|
||||||
reinterpret_cast<byte*>(
|
reinterpret_cast<byte*>(
|
||||||
*reinterpret_cast<int32_t*>(data + 1)));
|
*reinterpret_cast<int32_t*>(data + 1)));
|
||||||
if (*data & 0x2 == 0x2) { // Opcode 0xA3
|
if (*data == 0xA3) { // Opcode 0xA3
|
||||||
AppendToBuffer("movzxlq rax,(%s)", memory_location);
|
AppendToBuffer("movzxlq rax,(%s)", memory_location);
|
||||||
} else { // Opcode 0xA1
|
} else { // Opcode 0xA1
|
||||||
AppendToBuffer("movzxlq (%s),rax", memory_location);
|
AppendToBuffer("movzxlq (%s),rax", memory_location);
|
||||||
@ -1362,7 +1362,7 @@ int DisassemblerX64::InstructionDecode(v8::internal::Vector<char> out_buffer,
|
|||||||
// New x64 instruction mov rax,(imm_64).
|
// New x64 instruction mov rax,(imm_64).
|
||||||
const char* memory_location = NameOfAddress(
|
const char* memory_location = NameOfAddress(
|
||||||
*reinterpret_cast<byte**>(data + 1));
|
*reinterpret_cast<byte**>(data + 1));
|
||||||
if (*data & 0x2 == 0x2) { // Opcode 0xA3
|
if (*data == 0xA3) { // Opcode 0xA3
|
||||||
AppendToBuffer("movq rax,(%s)", memory_location);
|
AppendToBuffer("movq rax,(%s)", memory_location);
|
||||||
} else { // Opcode 0xA1
|
} else { // Opcode 0xA1
|
||||||
AppendToBuffer("movq (%s),rax", memory_location);
|
AppendToBuffer("movq (%s),rax", memory_location);
|
||||||
|
Loading…
Reference in New Issue
Block a user