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 c501b5cd20adba6ae28200f19d20e628592d29c8..2b539c8057dc3b720bb3bd5f9cebf30081786a89 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -388,6 +388,24 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
case kX64PushI: |
__ pushq(i.InputImmediate(0)); |
break; |
+ case kX64Movl: { |
+ RegisterOrOperand input = i.InputRegisterOrOperand(0); |
+ if (input.type == kRegister) { |
+ __ movl(i.OutputRegister(), input.reg); |
+ } else { |
+ __ movl(i.OutputRegister(), input.operand); |
+ } |
+ break; |
+ } |
+ case kX64Movsxlq: { |
+ RegisterOrOperand input = i.InputRegisterOrOperand(0); |
+ if (input.type == kRegister) { |
+ __ movsxlq(i.OutputRegister(), input.reg); |
+ } else { |
+ __ movsxlq(i.OutputRegister(), input.operand); |
+ } |
+ break; |
+ } |
case kX64CallCodeObject: { |
if (HasImmediateInput(instr, 0)) { |
Handle<Code> code = Handle<Code>::cast(i.InputHeapObject(0)); |
@@ -484,12 +502,6 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
__ addq(rsp, Immediate(kDoubleSize)); |
break; |
} |
- case kX64Int32ToInt64: |
- __ movzxwq(i.OutputRegister(), i.InputRegister(0)); |
- break; |
- case kX64Int64ToInt32: |
- __ Move(i.OutputRegister(), i.InputRegister(0)); |
- break; |
case kSSEFloat64ToInt32: { |
RegisterOrOperand input = i.InputRegisterOrOperand(0); |
if (input.type == kDoubleRegister) { |