Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 17c227acc70d4636d409b94487ae48b96a6a33fc..ab58c051eb83a64c81b2935d8eb1c699c5cba06a 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -554,6 +554,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: |
@@ -743,15 +747,28 @@ 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()); |
+ UnsupportedOperator(node); |
+ break; |
} |
} |
+void InstructionSelector::UnsupportedOperator(Node* node) { |
+ V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
+ node->opcode(), node->op()->mnemonic(), node->id()); |
+} |
+ |
Benedikt Meurer
2014/10/26 12:48:05
Nit: missing newline.
sigurds
2014/10/28 12:47:22
Done.
|
#if V8_TURBOFAN_BACKEND |
void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) { |