| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index 60df710dbf119e043db163cc13a01e6fae54e156..a992799502210acc6cfb3445617ed97afcbb6b8b 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -4522,7 +4522,7 @@ void LCodeGen::DoDeferredAllocateObject(LAllocateObject* instr) {
|
|
|
|
|
| void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) {
|
| - Heap* heap = isolate()->heap();
|
| + Handle<FixedArray> literals(instr->environment()->closure()->literals());
|
| ElementsKind boilerplate_elements_kind =
|
| instr->hydrogen()->boilerplate_elements_kind();
|
|
|
| @@ -4543,12 +4543,13 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) {
|
| a2,
|
| Operand(boilerplate_elements_kind));
|
| }
|
| - __ lw(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| - __ lw(a3, FieldMemOperand(a3, JSFunction::kLiteralsOffset));
|
| +
|
| + // Set up the parameters to the stub/runtime call.
|
| + __ LoadHeapObject(a3, literals);
|
| __ li(a2, Operand(Smi::FromInt(instr->hydrogen()->literal_index())));
|
| // Boilerplate already exists, constant elements are never accessed.
|
| // Pass an empty fixed array.
|
| - __ li(a1, Operand(Handle<FixedArray>(heap->empty_fixed_array())));
|
| + __ li(a1, Operand(isolate()->factory()->empty_fixed_array()));
|
| __ Push(a3, a2, a1);
|
|
|
| // Pick the right runtime function or stub to call.
|
|
|