Revision: 13659
Author:   [email protected]
Date:     Wed Feb 13 06:37:09 2013
Log: Properly support undefined->0 conversion in ia32 bitwise BinaryOpStubs (regression fix for r13624)

Review URL: https://codereview.chromium.org/12212162
http://code.google.com/p/v8/source/detail?r=13659

Modified:
 /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc

=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Thu Feb 7 07:51:05 2013 +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Wed Feb 13 06:37:09 2013
@@ -2767,14 +2767,13 @@
   __ bind(&arg1_is_object);
   __ mov(ebx, FieldOperand(edx, HeapObject::kMapOffset));
   __ cmp(ebx, factory->heap_number_map());
+  __ j(not_equal, &check_undefined_arg1);
+
+  // Get the untagged integer version of the edx heap number in ecx.
   if (left_type == BinaryOpIC::INT32 && CpuFeatures::IsSupported(SSE2)) {
     CpuFeatures::Scope use_sse2(SSE2);
-    __ j(not_equal, conversion_failure);
-    // Get the untagged integer version of the edx heap number in ecx.
     ConvertHeapNumberToInt32(masm, edx, conversion_failure);
   } else {
-    __ j(not_equal, &check_undefined_arg1);
-    // Get the untagged integer version of the edx heap number in ecx.
     IntegerConvert(masm, edx, use_sse3, conversion_failure);
   }
   __ mov(edx, ecx);
@@ -2803,14 +2802,13 @@
   __ bind(&arg2_is_object);
   __ mov(ebx, FieldOperand(eax, HeapObject::kMapOffset));
   __ cmp(ebx, factory->heap_number_map());
+  __ j(not_equal, &check_undefined_arg2);
+  // Get the untagged integer version of the eax heap number in ecx.
+
   if (right_type == BinaryOpIC::INT32 && CpuFeatures::IsSupported(SSE2)) {
     CpuFeatures::Scope use_sse2(SSE2);
-    __ j(not_equal, conversion_failure);
-    // Get the untagged integer version of the eax heap number in ecx.
     ConvertHeapNumberToInt32(masm, eax, conversion_failure);
   } else {
-    __ j(not_equal, &check_undefined_arg2);
-    // Get the untagged integer version of the eax heap number in ecx.
     IntegerConvert(masm, eax, use_sse3, conversion_failure);
   }

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to