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 de8956e01d248a1ce47b76b297fae2aee4e5080f..45b0cdc0df6aaa64fb790382df680de8f7d4f56c 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -405,7 +405,11 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
} |
break; |
case kSSECvtss2sd: |
- __ cvtss2sd(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
+ if (instr->InputAt(0)->IsDoubleRegister()) { |
+ __ cvtss2sd(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
+ } else { |
+ __ cvtss2sd(i.OutputDoubleRegister(), i.InputOperand(0)); |
+ } |
break; |
case kSSECvtsd2ss: |
__ cvtsd2ss(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |