Index: src/compiler/x64/code-generator-x64.cc |
diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc |
index b684bdf7434dba23c0667812236068fc61954874..bb02441ff5c373a55a36754772a766165395cfaa 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -289,7 +289,18 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
ASSEMBLE_MULT(imulq); |
break; |
case kX64ImulHigh32: |
- __ imull(i.InputRegister(1)); |
+ if (instr->InputAt(1)->IsRegister()) { |
+ __ imull(i.InputRegister(1)); |
+ } else { |
+ __ imull(i.InputOperand(1)); |
+ } |
+ break; |
+ case kX64UmulHigh32: |
+ if (instr->InputAt(1)->IsRegister()) { |
+ __ mull(i.InputRegister(1)); |
+ } else { |
+ __ mull(i.InputOperand(1)); |
+ } |
break; |
case kX64Idiv32: |
__ cdq(); |