| Index: src/builtins/mips/builtins-mips.cc
|
| diff --git a/src/builtins/mips/builtins-mips.cc b/src/builtins/mips/builtins-mips.cc
|
| index bdc2135c694a497fbdceff2842a071c5fe230b77..3364e388ab0d1738a4f238d4627fcf9be327b98d 100644
|
| --- a/src/builtins/mips/builtins-mips.cc
|
| +++ b/src/builtins/mips/builtins-mips.cc
|
| @@ -2144,8 +2144,7 @@ void Builtins::Generate_Apply(MacroAssembler* masm) {
|
| __ Branch(&create_arguments, eq, a2, Operand(at));
|
|
|
| // Check if argumentsList is a fast JSArray.
|
| - __ lw(v0, FieldMemOperand(a2, HeapObject::kMapOffset));
|
| - __ lbu(v0, FieldMemOperand(v0, Map::kInstanceTypeOffset));
|
| + __ lbu(v0, FieldMemOperand(a2, Map::kInstanceTypeOffset));
|
| __ Branch(&create_array, eq, v0, Operand(JS_ARRAY_TYPE));
|
|
|
| // Ask the runtime to create the list (actually a FixedArray).
|
| @@ -2188,15 +2187,15 @@ void Builtins::Generate_Apply(MacroAssembler* masm) {
|
|
|
| // Try to create the list from a JSArray object.
|
| __ bind(&create_array);
|
| - __ lw(a2, FieldMemOperand(a2, Map::kBitField2Offset));
|
| - __ DecodeField<Map::ElementsKindBits>(a2);
|
| + __ lbu(t1, FieldMemOperand(a2, Map::kBitField2Offset));
|
| + __ DecodeField<Map::ElementsKindBits>(t1);
|
| STATIC_ASSERT(FAST_SMI_ELEMENTS == 0);
|
| STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1);
|
| STATIC_ASSERT(FAST_ELEMENTS == 2);
|
| STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3);
|
| - __ Branch(&create_holey_array, eq, a2, Operand(FAST_HOLEY_SMI_ELEMENTS));
|
| - __ Branch(&create_holey_array, eq, a2, Operand(FAST_HOLEY_ELEMENTS));
|
| - __ Branch(&create_runtime, hi, a2, Operand(FAST_ELEMENTS));
|
| + __ Branch(&create_holey_array, eq, t1, Operand(FAST_HOLEY_SMI_ELEMENTS));
|
| + __ Branch(&create_holey_array, eq, t1, Operand(FAST_HOLEY_ELEMENTS));
|
| + __ Branch(&create_runtime, hi, t1, Operand(FAST_ELEMENTS));
|
| __ lw(a2, FieldMemOperand(a0, JSArray::kLengthOffset));
|
| __ lw(a0, FieldMemOperand(a0, JSArray::kElementsOffset));
|
| __ SmiUntag(a2);
|
|
|