Index: src/ia32/lithium-codegen-ia32.cc |
=================================================================== |
--- src/ia32/lithium-codegen-ia32.cc (revision 7622) |
+++ src/ia32/lithium-codegen-ia32.cc (working copy) |
@@ -77,7 +77,7 @@ |
void LCodeGen::FinishCode(Handle<Code> code) { |
ASSERT(is_done()); |
- code->set_stack_slots(StackSlotCount()); |
+ code->set_stack_slots(GetStackSlotCount()); |
code->set_safepoint_table_offset(safepoints_.GetCodeOffset()); |
PopulateDeoptimizationData(code); |
Deoptimizer::EnsureRelocSpaceForLazyDeoptimization(code); |
@@ -132,7 +132,7 @@ |
__ push(edi); // Callee's JS function. |
// Reserve space for the stack slots needed by the code. |
- int slots = StackSlotCount(); |
+ int slots = GetStackSlotCount(); |
if (slots > 0) { |
if (FLAG_debug_code) { |
__ mov(Operand(eax), Immediate(slots)); |
@@ -254,7 +254,7 @@ |
bool LCodeGen::GenerateSafepointTable() { |
ASSERT(is_done()); |
- safepoints_.Emit(masm(), StackSlotCount()); |
+ safepoints_.Emit(masm(), GetStackSlotCount()); |
return !is_aborted(); |
} |
@@ -386,7 +386,7 @@ |
translation->StoreDoubleStackSlot(op->index()); |
} else if (op->IsArgument()) { |
ASSERT(is_tagged); |
- int src_index = StackSlotCount() + op->index(); |
+ int src_index = GetStackSlotCount() + op->index(); |
translation->StoreStackSlot(src_index); |
} else if (op->IsRegister()) { |
Register reg = ToRegister(op); |
@@ -2057,7 +2057,7 @@ |
} |
__ mov(esp, ebp); |
__ pop(ebp); |
- __ Ret((ParameterCount() + 1) * kPointerSize, ecx); |
+ __ Ret((GetParameterCount() + 1) * kPointerSize, ecx); |
} |
@@ -2493,7 +2493,7 @@ |
SafepointGenerator safepoint_generator(this, |
pointers, |
env->deoptimization_index()); |
- v8::internal::ParameterCount actual(eax); |
+ ParameterCount actual(eax); |
__ InvokeFunction(function, actual, CALL_FUNCTION, &safepoint_generator); |
} |
@@ -2905,6 +2905,21 @@ |
} |
+void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) { |
+ ASSERT(ToRegister(instr->context()).is(esi)); |
+ ASSERT(ToRegister(instr->function()).is(edi)); |
+ ASSERT(instr->HasPointerMap()); |
+ ASSERT(instr->HasDeoptimizationEnvironment()); |
+ LPointerMap* pointers = instr->pointer_map(); |
+ LEnvironment* env = instr->deoptimization_environment(); |
+ RecordPosition(pointers->position()); |
+ RegisterEnvironmentForDeoptimization(env); |
+ SafepointGenerator generator(this, pointers, env->deoptimization_index()); |
+ ParameterCount count(instr->arity()); |
+ __ InvokeFunction(edi, count, CALL_FUNCTION, &generator); |
+} |
+ |
+ |
void LCodeGen::DoCallKeyed(LCallKeyed* instr) { |
ASSERT(ToRegister(instr->context()).is(esi)); |
ASSERT(ToRegister(instr->key()).is(ecx)); |