Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 85f025594f9cfb6e7e533ab872a2ed23c51a1ed2..7e1081b9cbfa8cf69c4c8b13169fb00c9899ee85 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -3906,6 +3906,14 @@ void LCodeGen::DoCallRuntime(LCallRuntime* instr) { |
} |
+void LCodeGen::DoStoreCodeEntry(LStoreCodeEntry* instr) { |
+ Register function = ToRegister(instr->function()); |
+ Register code_object = ToRegister(instr->code_object()); |
+ __ lea(code_object, FieldOperand(code_object, Code::kHeaderSize)); |
+ __ movq(FieldOperand(function, JSFunction::kCodeEntryOffset), code_object); |
+} |
+ |
+ |
void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
@@ -5167,7 +5175,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) { |
if (!pretenure && instr->hydrogen()->has_no_literals()) { |
FastNewClosureStub stub(instr->hydrogen()->language_mode(), |
instr->hydrogen()->is_generator()); |
- __ Push(instr->hydrogen()->shared_info()); |
+ __ Move(rbx, instr->hydrogen()->shared_info()); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} else { |
__ push(rsi); |