| Index: src/compiler/x64/instruction-selector-x64.cc
|
| diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc
|
| index 55c35da5027be85b7510e5f9c6723bba057cb157..bb4c03bd7e96c65bca7336d070b095e759fbcccb 100644
|
| --- a/src/compiler/x64/instruction-selector-x64.cc
|
| +++ b/src/compiler/x64/instruction-selector-x64.cc
|
| @@ -513,6 +513,24 @@ void InstructionSelector::VisitChangeFloat64ToUint32(Node* node) {
|
| }
|
|
|
|
|
| +void InstructionSelector::VisitChangeInt32ToInt64(Node* node) {
|
| + X64OperandGenerator g(this);
|
| + Emit(kX64Movsxlq, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
|
| +}
|
| +
|
| +
|
| +void InstructionSelector::VisitChangeUint32ToUint64(Node* node) {
|
| + X64OperandGenerator g(this);
|
| + Emit(kX64Movl, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
|
| +}
|
| +
|
| +
|
| +void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) {
|
| + X64OperandGenerator g(this);
|
| + Emit(kX64Movl, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
|
| +}
|
| +
|
| +
|
| void InstructionSelector::VisitFloat64Add(Node* node) {
|
| X64OperandGenerator g(this);
|
| Emit(kSSEFloat64Add, g.DefineSameAsFirst(node),
|
| @@ -554,22 +572,6 @@ void InstructionSelector::VisitFloat64Mod(Node* node) {
|
| }
|
|
|
|
|
| -void InstructionSelector::VisitConvertInt64ToInt32(Node* node) {
|
| - X64OperandGenerator g(this);
|
| - // TODO(dcarney): other modes
|
| - Emit(kX64Int64ToInt32, g.DefineAsRegister(node),
|
| - g.UseRegister(node->InputAt(0)));
|
| -}
|
| -
|
| -
|
| -void InstructionSelector::VisitConvertInt32ToInt64(Node* node) {
|
| - X64OperandGenerator g(this);
|
| - // TODO(dcarney): other modes
|
| - Emit(kX64Int32ToInt64, g.DefineAsRegister(node),
|
| - g.UseRegister(node->InputAt(0)));
|
| -}
|
| -
|
| -
|
| void InstructionSelector::VisitInt32AddWithOverflow(Node* node,
|
| FlagsContinuation* cont) {
|
| VisitBinop(this, node, kX64Add32, cont);
|
|
|