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 7dda86efdc61150eaa41cae3eebdc88f163cf166..d350738e0b32e084cd42e43b255aedfb632bf0f1 100644 |
--- a/src/compiler/x87/instruction-selector-x87.cc |
+++ b/src/compiler/x87/instruction-selector-x87.cc |
@@ -647,6 +647,23 @@ void InstructionSelector::VisitTruncateFloat64ToFloat32(Node* node) { |
} |
+void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) { |
+ X87OperandGenerator g(this); |
+ |
+ switch (TruncationModeOf(node->op())) { |
+ case TruncationMode::kJavaScript: |
+ Emit(kArchTruncateDoubleToI, g.DefineAsRegister(node), |
+ g.Use(node->InputAt(0))); |
+ return; |
+ case TruncationMode::kRoundToZero: |
+ Emit(kX87Float64ToInt32, g.DefineAsRegister(node), |
+ g.Use(node->InputAt(0))); |
+ return; |
+ } |
+ UNREACHABLE(); |
+} |
+ |
+ |
void InstructionSelector::VisitFloat32Add(Node* node) { |
X87OperandGenerator g(this); |
Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(0))); |