| Index: src/arm/lithium-codegen-arm.cc
 | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
 | 
| index 9fdb22b8d50114c43dba07cab931fa8403f0616f..45ebfae2c4d53278cfd0d2e12a491ded77d475c6 100644
 | 
| --- a/src/arm/lithium-codegen-arm.cc
 | 
| +++ b/src/arm/lithium-codegen-arm.cc
 | 
| @@ -568,30 +568,13 @@ MemOperand LCodeGen::ToMemOperand(LOperand* op) const {
 | 
|    ASSERT(!op->IsRegister());
 | 
|    ASSERT(!op->IsDoubleRegister());
 | 
|    ASSERT(op->IsStackSlot() || op->IsDoubleStackSlot());
 | 
| -  int index = op->index();
 | 
| -  if (index >= 0) {
 | 
| -    // Local or spill slot. Skip the frame pointer, function, and
 | 
| -    // context in the fixed part of the frame.
 | 
| -    return MemOperand(fp, -(index + 3) * kPointerSize);
 | 
| -  } else {
 | 
| -    // Incoming parameter. Skip the return address.
 | 
| -    return MemOperand(fp, -(index - 1) * kPointerSize);
 | 
| -  }
 | 
| +  return MemOperand(fp, StackSlotOffset(op->index()));
 | 
|  }
 | 
|  
 | 
|  
 | 
|  MemOperand LCodeGen::ToHighMemOperand(LOperand* op) const {
 | 
|    ASSERT(op->IsDoubleStackSlot());
 | 
| -  int index = op->index();
 | 
| -  if (index >= 0) {
 | 
| -    // Local or spill slot. Skip the frame pointer, function, context,
 | 
| -    // and the first word of the double in the fixed part of the frame.
 | 
| -    return MemOperand(fp, -(index + 3) * kPointerSize + kPointerSize);
 | 
| -  } else {
 | 
| -    // Incoming parameter. Skip the return address and the first word of
 | 
| -    // the double.
 | 
| -    return MemOperand(fp, -(index - 1) * kPointerSize + kPointerSize);
 | 
| -  }
 | 
| +  return MemOperand(fp, StackSlotOffset(op->index()) + kPointerSize);
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |