| Index: src/x64/lithium-codegen-x64.cc | 
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc | 
| index f908ea1ffc062b22096492a85d9cb9de9a14931d..46d6d0d11c6a818014017f4aeead9ac7b5d9a14b 100644 | 
| --- a/src/x64/lithium-codegen-x64.cc | 
| +++ b/src/x64/lithium-codegen-x64.cc | 
| @@ -1674,27 +1674,19 @@ void LCodeGen::DoThrow(LThrow* instr) { | 
| void LCodeGen::DoAddI(LAddI* instr) { | 
| LOperand* left = instr->left(); | 
| LOperand* right = instr->right(); | 
| +  ASSERT(left->Equals(instr->result())); | 
|  | 
| -  if (LAddI::UseLea(instr->hydrogen()) && !left->Equals(instr->result())) { | 
| -    if (right->IsConstantOperand()) { | 
| -      int32_t offset = ToInteger32(LConstantOperand::cast(right)); | 
| -      __ lea(ToRegister(instr->result()), MemOperand(ToRegister(left), offset)); | 
| -    } else { | 
| -      Operand address(ToRegister(left), ToRegister(right), times_1, 0); | 
| -      __ lea(ToRegister(instr->result()), address); | 
| -    } | 
| +  if (right->IsConstantOperand()) { | 
| +    __ addl(ToRegister(left), | 
| +            Immediate(ToInteger32(LConstantOperand::cast(right)))); | 
| +  } else if (right->IsRegister()) { | 
| +    __ addl(ToRegister(left), ToRegister(right)); | 
| } else { | 
| -    if (right->IsConstantOperand()) { | 
| -      __ addl(ToRegister(left), | 
| -              Immediate(ToInteger32(LConstantOperand::cast(right)))); | 
| -    } else if (right->IsRegister()) { | 
| -      __ addl(ToRegister(left), ToRegister(right)); | 
| -    } else { | 
| -      __ addl(ToRegister(left), ToOperand(right)); | 
| -    } | 
| -    if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) { | 
| -      DeoptimizeIf(overflow, instr->environment()); | 
| -    } | 
| +    __ addl(ToRegister(left), ToOperand(right)); | 
| +  } | 
| + | 
| +  if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) { | 
| +    DeoptimizeIf(overflow, instr->environment()); | 
| } | 
| } | 
|  | 
|  |