Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 10115b1ac4744b14b0043293e0fc783b862502f5..06fa824d2f924846c22b4f22a7788b43bbaf57ed 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -4349,6 +4349,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)); |
+ __ mov(FieldOperand(function, JSFunction::kCodeEntryOffset), code_object); |
+} |
+ |
+ |
void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
@@ -6209,7 +6217,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) { |
if (!pretenure && instr->hydrogen()->has_no_literals()) { |
FastNewClosureStub stub(instr->hydrogen()->language_mode(), |
instr->hydrogen()->is_generator()); |
- __ push(Immediate(instr->hydrogen()->shared_info())); |
+ __ mov(ebx, Immediate(instr->hydrogen()->shared_info())); |
CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr); |
} else { |
__ push(esi); |