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 192efd6800110bd64d72e88731a8a8f99fb67a52..360a343487aa546caa626981379fd7029601bf5f 100644 |
--- a/src/compiler/x87/instruction-selector-x87.cc |
+++ b/src/compiler/x87/instruction-selector-x87.cc |
@@ -855,7 +855,11 @@ void InstructionSelector::VisitFloat64RoundDown(Node* node) { |
void InstructionSelector::VisitFloat32RoundUp(Node* node) { UNREACHABLE(); } |
-void InstructionSelector::VisitFloat64RoundUp(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitFloat64RoundUp(Node* node) { |
+ X87OperandGenerator g(this); |
+ Emit(kX87Float64Round | MiscField::encode(kRoundUp), g.UseFixed(node, stX_0), |
+ g.Use(node->InputAt(0))); |
+} |
void InstructionSelector::VisitFloat32RoundTruncate(Node* node) { |
@@ -1302,6 +1306,7 @@ InstructionSelector::SupportedMachineOperatorFlags() { |
} |
flags |= MachineOperatorBuilder::kFloat64RoundDown | |
+ MachineOperatorBuilder::kFloat64RoundUp | |
MachineOperatorBuilder::kFloat64RoundTruncate; |
return flags; |
} |