| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 27957d0f50844503682a3d4f8e75fe328846c184..5affd6eaf0283d429557c5a1b2e665b0376ed4ec 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -2767,14 +2767,13 @@ void FloatingPointHelper::LoadUnknownsAsIntegers(
|
| __ 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 @@ void FloatingPointHelper::LoadUnknownsAsIntegers(
|
| __ 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);
|
| }
|
|
|
|
|