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 950652546880ae8bb4c311ffcbc37a6c4344158a..5743cd71389c51bcb17a112e2bfa0b130cd38727 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -514,15 +514,6 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
break; |
} |
- case kX64Movsd: |
- if (instr->HasOutput()) { |
- __ movsd(i.OutputDoubleRegister(), i.MemoryOperand()); |
- } else { |
- int index = 0; |
- Operand operand = i.MemoryOperand(&index); |
- __ movsd(operand, i.InputDoubleRegister(index)); |
- } |
- break; |
case kX64Movsxbl: |
__ movsxbl(i.OutputRegister(), i.MemoryOperand()); |
break; |
@@ -599,6 +590,26 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
} |
} |
break; |
+ case kX64Movss: |
+ if (instr->HasOutput()) { |
+ __ movss(i.OutputDoubleRegister(), i.MemoryOperand()); |
+ __ cvtss2sd(i.OutputDoubleRegister(), i.OutputDoubleRegister()); |
+ } else { |
+ int index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ cvtsd2ss(xmm0, i.InputDoubleRegister(index)); |
+ __ movss(operand, xmm0); |
+ } |
+ break; |
+ case kX64Movsd: |
+ if (instr->HasOutput()) { |
+ __ movsd(i.OutputDoubleRegister(), i.MemoryOperand()); |
+ } else { |
+ int index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ movsd(operand, i.InputDoubleRegister(index)); |
+ } |
+ break; |
case kX64StoreWriteBarrier: { |
Register object = i.InputRegister(0); |
Register index = i.InputRegister(1); |