Index: src/compiler/ia32/code-generator-ia32.cc |
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc |
index c21cc2df2497ecac875e6105c90f76d46cff510b..e9b3a9949a28cf00ea484b84708e5e8131d574ab 100644 |
--- a/src/compiler/ia32/code-generator-ia32.cc |
+++ b/src/compiler/ia32/code-generator-ia32.cc |
@@ -840,6 +840,20 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
__ movss(operand, i.InputDoubleRegister(index)); |
} |
break; |
+ case kIA32BitcastFI: |
+ if (instr->InputAt(0)->IsDoubleStackSlot()) { |
+ __ mov(i.OutputRegister(), i.InputOperand(0)); |
+ } else { |
+ __ movd(i.OutputRegister(), i.InputDoubleRegister(0)); |
+ } |
+ break; |
+ case kIA32BitcastIF: |
+ if (instr->InputAt(0)->IsRegister()) { |
+ __ movd(i.OutputDoubleRegister(), i.InputRegister(0)); |
+ } else { |
+ __ movss(i.OutputDoubleRegister(), i.InputOperand(0)); |
+ } |
+ break; |
case kIA32Lea: { |
AddressingMode mode = AddressingModeField::decode(instr->opcode()); |
// Shorten "leal" to "addl", "subl" or "shll" if the register allocation |