Index: src/x87/lithium-codegen-x87.cc |
diff --git a/src/x87/lithium-codegen-x87.cc b/src/x87/lithium-codegen-x87.cc |
index c292bb94b3d3a759188e1abdbb7708bf01599393..d30a90891af344ddb57ed9c3e4631bac6d728aab 100644 |
--- a/src/x87/lithium-codegen-x87.cc |
+++ b/src/x87/lithium-codegen-x87.cc |
@@ -3693,22 +3693,18 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) { |
void LCodeGen::CallKnownFunction(Handle<JSFunction> function, |
- int formal_parameter_count, |
- int arity, |
- LInstruction* instr, |
- EDIState edi_state) { |
+ int formal_parameter_count, int arity, |
+ LInstruction* instr) { |
bool dont_adapt_arguments = |
formal_parameter_count == SharedFunctionInfo::kDontAdaptArgumentsSentinel; |
bool can_invoke_directly = |
dont_adapt_arguments || formal_parameter_count == arity; |
- if (can_invoke_directly) { |
- if (edi_state == EDI_UNINITIALIZED) { |
- __ LoadHeapObject(edi, function); |
- } |
+ Register function_reg = edi; |
+ if (can_invoke_directly) { |
// Change context. |
- __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset)); |
+ __ mov(esi, FieldOperand(function_reg, JSFunction::kContextOffset)); |
// Set eax to arguments count if adaption is not needed. Assumes that eax |
// is available to write to at this point. |
@@ -3720,7 +3716,7 @@ void LCodeGen::CallKnownFunction(Handle<JSFunction> function, |
if (function.is_identical_to(info()->closure())) { |
__ CallSelf(); |
} else { |
- __ call(FieldOperand(edi, JSFunction::kCodeEntryOffset)); |
+ __ call(FieldOperand(function_reg, JSFunction::kCodeEntryOffset)); |
} |
RecordSafepointWithLazyDeopt(instr, RECORD_SIMPLE_SAFEPOINT); |
} else { |
@@ -3730,7 +3726,7 @@ void LCodeGen::CallKnownFunction(Handle<JSFunction> function, |
this, pointers, Safepoint::kLazyDeopt); |
ParameterCount count(arity); |
ParameterCount expected(formal_parameter_count); |
- __ InvokeFunction(function, expected, count, CALL_FUNCTION, generator); |
+ __ InvokeFunction(function_reg, expected, count, CALL_FUNCTION, generator); |
} |
} |
@@ -4355,9 +4351,7 @@ void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) { |
} else { |
CallKnownFunction(known_function, |
instr->hydrogen()->formal_parameter_count(), |
- instr->arity(), |
- instr, |
- EDI_CONTAINS_TARGET); |
+ instr->arity(), instr); |
} |
} |