| Index: src/compiler/instruction-selector.cc
|
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
|
| index bffe6f76949f47bbaab4f1cdabec14efc917810f..97fa9214f668524e81cd937681923b7ea1a6c1f4 100644
|
| --- a/src/compiler/instruction-selector.cc
|
| +++ b/src/compiler/instruction-selector.cc
|
| @@ -699,6 +699,12 @@ MachineType InstructionSelector::GetMachineType(Node* node) {
|
| case IrOpcode::kFloat64LessThan:
|
| case IrOpcode::kFloat64LessThanOrEqual:
|
| return kMachBool;
|
| + case IrOpcode::kFloat64ExtractLowWord32:
|
| + case IrOpcode::kFloat64ExtractHighWord32:
|
| + return kMachInt32;
|
| + case IrOpcode::kFloat64InsertLowWord32:
|
| + case IrOpcode::kFloat64InsertHighWord32:
|
| + return kMachFloat64;
|
| default:
|
| V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d",
|
| node->opcode(), node->op()->mnemonic(), node->id());
|
| @@ -903,6 +909,14 @@ void InstructionSelector::VisitNode(Node* node) {
|
| return MarkAsDouble(node), VisitFloat64RoundTruncate(node);
|
| case IrOpcode::kFloat64RoundTiesAway:
|
| return MarkAsDouble(node), VisitFloat64RoundTiesAway(node);
|
| + case IrOpcode::kFloat64ExtractLowWord32:
|
| + return VisitFloat64ExtractLowWord32(node);
|
| + case IrOpcode::kFloat64ExtractHighWord32:
|
| + return VisitFloat64ExtractHighWord32(node);
|
| + case IrOpcode::kFloat64InsertLowWord32:
|
| + return MarkAsDouble(node), VisitFloat64InsertLowWord32(node);
|
| + case IrOpcode::kFloat64InsertHighWord32:
|
| + return MarkAsDouble(node), VisitFloat64InsertHighWord32(node);
|
| case IrOpcode::kLoadStackPointer:
|
| return VisitLoadStackPointer(node);
|
| case IrOpcode::kCheckedLoad: {
|
|
|