Index: src/compiler/x87/instruction-selector-x87.cc |
diff --git a/src/compiler/x87/instruction-selector-x87.cc b/src/compiler/x87/instruction-selector-x87.cc |
index 08d33deeded8db5dc5e3796b526f5474acf1fbe0..ccd99581e4a8e9c3791f0dbaa0cf6d176cf14eef 100644 |
--- a/src/compiler/x87/instruction-selector-x87.cc |
+++ b/src/compiler/x87/instruction-selector-x87.cc |
@@ -856,7 +856,11 @@ void InstructionSelector::VisitFloat64RoundDown(Node* node) { |
} |
-void InstructionSelector::VisitFloat32RoundUp(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitFloat32RoundUp(Node* node) { |
+ X87OperandGenerator g(this); |
+ Emit(kX87Float32Round | MiscField::encode(kRoundUp), g.UseFixed(node, stX_0), |
+ g.Use(node->InputAt(0))); |
+} |
void InstructionSelector::VisitFloat64RoundUp(Node* node) { |
@@ -1311,11 +1315,12 @@ InstructionSelector::SupportedMachineOperatorFlags() { |
flags |= MachineOperatorBuilder::kWord32Popcnt; |
} |
- flags |= MachineOperatorBuilder::kFloat64RoundDown | |
+ flags |= MachineOperatorBuilder::kFloat32RoundDown | |
+ MachineOperatorBuilder::kFloat64RoundDown | |
+ MachineOperatorBuilder::kFloat32RoundUp | |
MachineOperatorBuilder::kFloat64RoundUp | |
MachineOperatorBuilder::kFloat64RoundTruncate | |
- MachineOperatorBuilder::kFloat64RoundTiesEven | |
- MachineOperatorBuilder::kFloat32RoundDown; |
+ MachineOperatorBuilder::kFloat64RoundTiesEven; |
return flags; |
} |