[x64] Fix disassembly of movmskpd instruction.
authorlrn@chromium.org <lrn@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 21 Jun 2011 13:57:03 +0000 (13:57 +0000)
committerlrn@chromium.org <lrn@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 21 Jun 2011 13:57:03 +0000 (13:57 +0000)
The destination is a GP register, not an XMM register.  ia32 did not
have this problem.

BUG=
TEST=Check --print_code output for code that tests for -0.0.

Review URL: http://codereview.chromium.org/7191015

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

src/x64/disasm-x64.cc

index 7bb2e61..14c95bc 100644 (file)
@@ -1062,11 +1062,12 @@ int DisassemblerX64::TwoByteOpcodeInstruction(byte* data) {
         AppendToBuffer("movq ");
         current += PrintRightXMMOperand(current);
         AppendToBuffer(", %s", NameOfXMMRegister(regop));
+      } else if (opcode == 0x50) {
+        AppendToBuffer("movmskpd %s,", NameOfCPURegister(regop));
+        current += PrintRightXMMOperand(current);
       } else {
         const char* mnemonic = "?";
-        if (opcode == 0x50) {
-          mnemonic = "movmskpd";
-        } else  if (opcode == 0x54) {
+        if (opcode == 0x54) {
           mnemonic = "andpd";
         } else  if (opcode == 0x56) {
           mnemonic = "orpd";