Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index f3f8b50113890e43f82e320885f58da24fb83a3f..a83521c003292e0bc9011613f57e3aa6aa671885 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -4146,6 +4146,15 @@ void LCodeGen::DoCallRuntime(LCallRuntime* instr) { |
} |
+void LCodeGen::DoStoreCodeEntry(LStoreCodeEntry* instr) { |
+ Register function = ToRegister(instr->function()); |
+ Register code_object = ToRegister(instr->code_object()); |
+ __ add(code_object, code_object, Operand(Code::kHeaderSize - kHeapObjectTag)); |
+ __ str(code_object, |
+ FieldMemOperand(function, JSFunction::kCodeEntryOffset)); |
+} |
+ |
+ |
void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
@@ -5417,8 +5426,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) { |
if (!pretenure && instr->hydrogen()->has_no_literals()) { |
FastNewClosureStub stub(instr->hydrogen()->language_mode(), |
instr->hydrogen()->is_generator()); |
- __ mov(r1, Operand(instr->hydrogen()->shared_info())); |
- __ push(r1); |
+ __ mov(r2, Operand(instr->hydrogen()->shared_info())); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} else { |
__ mov(r2, Operand(instr->hydrogen()->shared_info())); |