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); |