Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index aa56d7298e6900d00241bfceaf808076f6a0e2a1..c5e9c12582d570ec35d14651bbbe2db63578f8b8 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -4067,6 +4067,16 @@ void LCodeGen::DoCallRuntime(LCallRuntime* instr) { |
} |
+void LCodeGen::DoStoreCodeEntry(LStoreCodeEntry* instr) { |
+ Register function = ToRegister(instr->function()); |
+ Register code_object = ToRegister(instr->code_object()); |
+ __ Addu(code_object, code_object, |
+ Operand(Code::kHeaderSize - kHeapObjectTag)); |
+ __ sw(code_object, |
+ FieldMemOperand(function, JSFunction::kCodeEntryOffset)); |
+} |
+ |
+ |
void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
@@ -5407,8 +5417,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) { |
if (!pretenure && instr->hydrogen()->has_no_literals()) { |
FastNewClosureStub stub(instr->hydrogen()->language_mode(), |
instr->hydrogen()->is_generator()); |
- __ li(a1, Operand(instr->hydrogen()->shared_info())); |
- __ push(a1); |
+ __ li(a2, Operand(instr->hydrogen()->shared_info())); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} else { |
__ li(a2, Operand(instr->hydrogen()->shared_info())); |