| Index: src/arm/lithium-codegen-arm.cc
 | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
 | 
| index 49124497fba7dc5566a77950321e6858ff40f0df..790e71a6ecf47816ceccd36ad8a21d4a40dcdb68 100644
 | 
| --- a/src/arm/lithium-codegen-arm.cc
 | 
| +++ b/src/arm/lithium-codegen-arm.cc
 | 
| @@ -91,7 +91,7 @@ bool LCodeGen::GenerateCode() {
 | 
|  
 | 
|  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);
 | 
| @@ -149,7 +149,7 @@ bool LCodeGen::GeneratePrologue() {
 | 
|    __ add(fp, sp, Operand(2 * kPointerSize));  // Adjust FP to point to saved FP.
 | 
|  
 | 
|    // Reserve space for the stack slots needed by the code.
 | 
| -  int slots = StackSlotCount();
 | 
| +  int slots = GetStackSlotCount();
 | 
|    if (slots > 0) {
 | 
|      if (FLAG_debug_code) {
 | 
|        __ mov(r0, Operand(slots));
 | 
| @@ -263,7 +263,7 @@ bool LCodeGen::GenerateDeferredCode() {
 | 
|  
 | 
|  bool LCodeGen::GenerateSafepointTable() {
 | 
|    ASSERT(is_done());
 | 
| -  safepoints_.Emit(masm(), StackSlotCount());
 | 
| +  safepoints_.Emit(masm(), GetStackSlotCount());
 | 
|    return !is_aborted();
 | 
|  }
 | 
|  
 | 
| @@ -459,7 +459,7 @@ void LCodeGen::AddToTranslation(Translation* translation,
 | 
|      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);
 | 
| @@ -2180,7 +2180,7 @@ void LCodeGen::DoReturn(LReturn* instr) {
 | 
|      __ push(r0);
 | 
|      __ CallRuntime(Runtime::kTraceExit, 1);
 | 
|    }
 | 
| -  int32_t sp_delta = (ParameterCount() + 1) * kPointerSize;
 | 
| +  int32_t sp_delta = (GetParameterCount() + 1) * kPointerSize;
 | 
|    __ mov(sp, fp);
 | 
|    __ ldm(ia_w, sp, fp.bit() | lr.bit());
 | 
|    __ add(sp, sp, Operand(sp_delta));
 | 
| @@ -3025,6 +3025,21 @@ void LCodeGen::DoUnaryMathOperation(LUnaryMathOperation* instr) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void LCodeGen::DoInvokeFunction(LInvokeFunction* instr) {
 | 
| +  ASSERT(ToRegister(instr->function()).is(r1));
 | 
| +  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(r1, count, CALL_FUNCTION, &generator);
 | 
| +  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
 | 
| +}
 | 
| +
 | 
| +
 | 
|  void LCodeGen::DoCallKeyed(LCallKeyed* instr) {
 | 
|    ASSERT(ToRegister(instr->result()).is(r0));
 | 
|  
 | 
| 
 |