Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 729f16392feb5a2542b221c69da4d0885e963384..122bb5ff2c653163eb921a0a7d1475e2f9396738 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -603,6 +603,10 @@ MachineType InstructionSelector::GetMachineType(Node* node) { |
case IrOpcode::kFloat64Div: |
case IrOpcode::kFloat64Mod: |
case IrOpcode::kFloat64Sqrt: |
+ case IrOpcode::kFloat64Floor: |
+ case IrOpcode::kFloat64Ceil: |
+ case IrOpcode::kFloat64RoundTruncate: |
+ case IrOpcode::kFloat64RoundTiesAway: |
return kMachFloat64; |
case IrOpcode::kFloat64Equal: |
case IrOpcode::kFloat64LessThan: |
@@ -792,11 +796,20 @@ void InstructionSelector::VisitNode(Node* node) { |
return VisitFloat64LessThan(node); |
case IrOpcode::kFloat64LessThanOrEqual: |
return VisitFloat64LessThanOrEqual(node); |
+ case IrOpcode::kFloat64Floor: |
+ return MarkAsDouble(node), VisitFloat64Floor(node); |
+ case IrOpcode::kFloat64Ceil: |
+ return MarkAsDouble(node), VisitFloat64Ceil(node); |
+ case IrOpcode::kFloat64RoundTruncate: |
+ return MarkAsDouble(node), VisitFloat64RoundTruncate(node); |
+ case IrOpcode::kFloat64RoundTiesAway: |
+ return MarkAsDouble(node), VisitFloat64RoundTiesAway(node); |
case IrOpcode::kLoadStackPointer: |
return VisitLoadStackPointer(node); |
default: |
V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
node->opcode(), node->op()->mnemonic(), node->id()); |
+ break; |
} |
} |