| Index: src/ia32/builtins-ia32.cc
|
| diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
|
| index 7f9b7d858a5370e1c91157f7f7e6b03e387e2d86..f8a85de98c8f8c1f7ea7fab3fd68081ff248fb6c 100644
|
| --- a/src/ia32/builtins-ia32.cc
|
| +++ b/src/ia32/builtins-ia32.cc
|
| @@ -82,8 +82,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
|
|
|
| Label non_function_call;
|
| // Check that function is not a smi.
|
| - __ test(edi, Immediate(kSmiTagMask));
|
| - __ j(zero, &non_function_call);
|
| + __ JumpIfSmi(edi, &non_function_call);
|
| // Check that function is a JSFunction.
|
| __ CmpObjectType(edi, JS_FUNCTION_TYPE, ecx);
|
| __ j(not_equal, &non_function_call);
|
| @@ -140,8 +139,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| // edi: constructor
|
| __ mov(eax, FieldOperand(edi, JSFunction::kPrototypeOrInitialMapOffset));
|
| // Will both indicate a NULL and a Smi
|
| - __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &rt_call);
|
| + __ JumpIfSmi(eax, &rt_call);
|
| // edi: constructor
|
| // eax: initial map (if proven valid below)
|
| __ CmpObjectType(eax, MAP_TYPE, ebx);
|
| @@ -357,8 +355,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| Label use_receiver, exit;
|
|
|
| // If the result is a smi, it is *not* an object in the ECMA sense.
|
| - __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &use_receiver);
|
| + __ JumpIfSmi(eax, &use_receiver);
|
|
|
| // If the type of the result (stored in its map) is less than
|
| // FIRST_SPEC_OBJECT_TYPE, it is not an object in the ECMA sense.
|
| @@ -596,8 +593,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
| Label non_function;
|
| // 1 ~ return address.
|
| __ mov(edi, Operand(esp, eax, times_4, 1 * kPointerSize));
|
| - __ test(edi, Immediate(kSmiTagMask));
|
| - __ j(zero, &non_function);
|
| + __ JumpIfSmi(edi, &non_function);
|
| __ CmpObjectType(edi, JS_FUNCTION_TYPE, ecx);
|
| __ j(not_equal, &non_function);
|
|
|
| @@ -624,8 +620,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
|
|
| // Call ToObject on the receiver if it is not an object, or use the
|
| // global object if it is null or undefined.
|
| - __ test(ebx, Immediate(kSmiTagMask));
|
| - __ j(zero, &convert_to_object);
|
| + __ JumpIfSmi(ebx, &convert_to_object);
|
| __ cmp(ebx, factory->null_value());
|
| __ j(equal, &use_global_receiver);
|
| __ cmp(ebx, factory->undefined_value());
|
| @@ -786,8 +781,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
|
| // Compute the receiver in non-strict mode.
|
| // Call ToObject on the receiver if it is not an object, or use the
|
| // global object if it is null or undefined.
|
| - __ test(ebx, Immediate(kSmiTagMask));
|
| - __ j(zero, &call_to_object);
|
| + __ JumpIfSmi(ebx, &call_to_object);
|
| __ cmp(ebx, factory->null_value());
|
| __ j(equal, &use_global_receiver);
|
| __ cmp(ebx, factory->undefined_value());
|
| @@ -1390,8 +1384,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) {
|
| Label convert_argument;
|
| __ bind(¬_cached);
|
| STATIC_ASSERT(kSmiTag == 0);
|
| - __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &convert_argument);
|
| + __ JumpIfSmi(eax, &convert_argument);
|
| Condition is_string = masm->IsObjectStringType(eax, ebx, ecx);
|
| __ j(NegateCondition(is_string), &convert_argument);
|
| __ mov(ebx, eax);
|
|
|