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 ccd99581e4a8e9c3791f0dbaa0cf6d176cf14eef..e613726e6df6c09369c1b28e40258ddfc8c2264c 100644 |
--- a/src/compiler/x87/instruction-selector-x87.cc |
+++ b/src/compiler/x87/instruction-selector-x87.cc |
@@ -871,7 +871,9 @@ void InstructionSelector::VisitFloat64RoundUp(Node* node) { |
void InstructionSelector::VisitFloat32RoundTruncate(Node* node) { |
- UNREACHABLE(); |
+ X87OperandGenerator g(this); |
+ Emit(kX87Float32Round | MiscField::encode(kRoundToZero), |
+ g.UseFixed(node, stX_0), g.Use(node->InputAt(0))); |
} |
@@ -1319,6 +1321,7 @@ InstructionSelector::SupportedMachineOperatorFlags() { |
MachineOperatorBuilder::kFloat64RoundDown | |
MachineOperatorBuilder::kFloat32RoundUp | |
MachineOperatorBuilder::kFloat64RoundUp | |
+ MachineOperatorBuilder::kFloat32RoundTruncate | |
MachineOperatorBuilder::kFloat64RoundTruncate | |
MachineOperatorBuilder::kFloat64RoundTiesEven; |
return flags; |