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.