Index: src/compiler/x87/code-generator-x87.cc |
diff --git a/src/compiler/x87/code-generator-x87.cc b/src/compiler/x87/code-generator-x87.cc |
index f5e66345617a27e6af10212765b801789a5bd46e..b7c00ba767af287390ac924fb6c0cc90b5fe1727 100644 |
--- a/src/compiler/x87/code-generator-x87.cc |
+++ b/src/compiler/x87/code-generator-x87.cc |
@@ -1870,7 +1870,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
if (i.InputRegister(1).is(i.OutputRegister())) { |
__ shl(i.OutputRegister(), 1); |
} else { |
- __ lea(i.OutputRegister(), i.MemoryOperand()); |
+ __ add(i.OutputRegister(), i.InputRegister(1)); |
} |
} else if (mode == kMode_M2) { |
__ shl(i.OutputRegister(), 1); |
@@ -1881,6 +1881,9 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
} else { |
__ lea(i.OutputRegister(), i.MemoryOperand()); |
} |
+ } else if (mode == kMode_MR1 && |
+ i.InputRegister(1).is(i.OutputRegister())) { |
+ __ add(i.OutputRegister(), i.InputRegister(0)); |
} else { |
__ lea(i.OutputRegister(), i.MemoryOperand()); |
} |