| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/base/bits.h" | 6 #include "src/base/bits.h" |
| 7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
| 10 | 10 |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 Emit(kMips64Ext, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)), | 532 Emit(kMips64Ext, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)), |
| 533 g.TempImmediate(0), g.TempImmediate(32)); | 533 g.TempImmediate(0), g.TempImmediate(32)); |
| 534 } | 534 } |
| 535 | 535 |
| 536 | 536 |
| 537 void InstructionSelector::VisitTruncateFloat64ToFloat32(Node* node) { | 537 void InstructionSelector::VisitTruncateFloat64ToFloat32(Node* node) { |
| 538 VisitRR(this, kMips64CvtSD, node); | 538 VisitRR(this, kMips64CvtSD, node); |
| 539 } | 539 } |
| 540 | 540 |
| 541 | 541 |
| 542 void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) { |
| 543 switch (TruncationModeOf(node->op())) { |
| 544 case TruncationMode::kJavaScript: |
| 545 return VisitRR(this, kArchTruncateDoubleToI, node); |
| 546 case TruncationMode::kRoundToZero: |
| 547 return VisitRR(this, kMips64TruncWD, node); |
| 548 } |
| 549 UNREACHABLE(); |
| 550 } |
| 551 |
| 552 |
| 542 void InstructionSelector::VisitFloat32Add(Node* node) { | 553 void InstructionSelector::VisitFloat32Add(Node* node) { |
| 543 VisitRRR(this, kMips64AddS, node); | 554 VisitRRR(this, kMips64AddS, node); |
| 544 } | 555 } |
| 545 | 556 |
| 546 | 557 |
| 547 void InstructionSelector::VisitFloat64Add(Node* node) { | 558 void InstructionSelector::VisitFloat64Add(Node* node) { |
| 548 VisitRRR(this, kMips64AddD, node); | 559 VisitRRR(this, kMips64AddD, node); |
| 549 } | 560 } |
| 550 | 561 |
| 551 | 562 |
| (...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1300 // static | 1311 // static |
| 1301 MachineOperatorBuilder::Flags | 1312 MachineOperatorBuilder::Flags |
| 1302 InstructionSelector::SupportedMachineOperatorFlags() { | 1313 InstructionSelector::SupportedMachineOperatorFlags() { |
| 1303 return MachineOperatorBuilder::kFloat64RoundDown | | 1314 return MachineOperatorBuilder::kFloat64RoundDown | |
| 1304 MachineOperatorBuilder::kFloat64RoundTruncate; | 1315 MachineOperatorBuilder::kFloat64RoundTruncate; |
| 1305 } | 1316 } |
| 1306 | 1317 |
| 1307 } // namespace compiler | 1318 } // namespace compiler |
| 1308 } // namespace internal | 1319 } // namespace internal |
| 1309 } // namespace v8 | 1320 } // namespace v8 |
| OLD | NEW |