Fixed FloatingPointHelper::CheckSSE2OperandIsInt32.
authorsvenpanne@chromium.org <svenpanne@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 21 Dec 2012 14:01:53 +0000 (14:01 +0000)
committersvenpanne@chromium.org <svenpanne@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 21 Dec 2012 14:01:53 +0000 (14:01 +0000)
BUG=v8:2458

Review URL: https://codereview.chromium.org/11660010

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

src/ia32/code-stubs-ia32.cc

index 6114da9..783b97d 100644 (file)
@@ -2871,9 +2871,10 @@ void FloatingPointHelper::CheckSSE2OperandIsInt32(MacroAssembler* masm,
   __ cvttsd2si(scratch, Operand(operand));
   __ cvtsi2sd(xmm_scratch, scratch);
   __ pcmpeqd(xmm_scratch, operand);
-  __ movmskpd(scratch, xmm_scratch);
-  __ test(scratch, Immediate(1));
-  __ j(zero, non_int32);
+  __ movmskps(scratch, xmm_scratch);
+  __ neg(scratch);
+  __ test(scratch, Immediate(3));
+  __ j(not_zero, non_int32);
 }