X64: Fix buggy expression in disassembler. Fixes Issue 408: http://code.google.com...
authorwhesse@chromium.org <whesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 27 Jul 2009 18:51:46 +0000 (18:51 +0000)
committerwhesse@chromium.org <whesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 27 Jul 2009 18:51:46 +0000 (18:51 +0000)
Review URL: http://codereview.chromium.org/160174

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/x64/disasm-x64.cc

index 4e91f31..83e3149 100644 (file)
@@ -1350,7 +1350,7 @@ int DisassemblerX64::InstructionDecode(v8::internal::Vector<char> out_buffer,
             const char* memory_location = NameOfAddress(
                 reinterpret_cast<byte*>(
                     *reinterpret_cast<int32_t*>(data + 1)));
-            if (*data & 0x2 == 0x2) {  // Opcode 0xA3
+            if (*data == 0xA3) {  // Opcode 0xA3
               AppendToBuffer("movzxlq rax,(%s)", memory_location);
             } else {  // Opcode 0xA1
               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).
             const char* memory_location = NameOfAddress(
                 *reinterpret_cast<byte**>(data + 1));
-            if (*data & 0x2 == 0x2) {  // Opcode 0xA3
+            if (*data == 0xA3) {  // Opcode 0xA3
               AppendToBuffer("movq rax,(%s)", memory_location);
             } else {  // Opcode 0xA1
               AppendToBuffer("movq (%s),rax", memory_location);