| 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 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { | 516 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { |
| 517 VisitRR(this, kMipsCvtDUw, node); | 517 VisitRR(this, kMipsCvtDUw, node); |
| 518 } | 518 } |
| 519 | 519 |
| 520 | 520 |
| 521 void InstructionSelector::VisitTruncateFloat32ToInt32(Node* node) { | 521 void InstructionSelector::VisitTruncateFloat32ToInt32(Node* node) { |
| 522 VisitRR(this, kMipsTruncWS, node); | 522 VisitRR(this, kMipsTruncWS, node); |
| 523 } | 523 } |
| 524 | 524 |
| 525 | 525 |
| 526 void InstructionSelector::VisitTruncateFloat32ToUint32(Node* node) { |
| 527 UNIMPLEMENTED(); |
| 528 } |
| 529 |
| 530 |
| 526 void InstructionSelector::VisitChangeFloat64ToInt32(Node* node) { | 531 void InstructionSelector::VisitChangeFloat64ToInt32(Node* node) { |
| 527 MipsOperandGenerator g(this); | 532 MipsOperandGenerator g(this); |
| 528 Node* value = node->InputAt(0); | 533 Node* value = node->InputAt(0); |
| 529 // Match ChangeFloat64ToInt32(Float64Round##OP) to corresponding instruction | 534 // Match ChangeFloat64ToInt32(Float64Round##OP) to corresponding instruction |
| 530 // which does rounding and conversion to integer format. | 535 // which does rounding and conversion to integer format. |
| 531 if (CanCover(node, value)) { | 536 if (CanCover(node, value)) { |
| 532 switch (value->opcode()) { | 537 switch (value->opcode()) { |
| 533 case IrOpcode::kFloat64RoundDown: | 538 case IrOpcode::kFloat64RoundDown: |
| 534 Emit(kMipsFloorWD, g.DefineAsRegister(node), | 539 Emit(kMipsFloorWD, g.DefineAsRegister(node), |
| 535 g.UseRegister(value->InputAt(0))); | 540 g.UseRegister(value->InputAt(0))); |
| (...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 MachineOperatorBuilder::kFloat32Max | | 1342 MachineOperatorBuilder::kFloat32Max | |
| 1338 MachineOperatorBuilder::kFloat32RoundDown | | 1343 MachineOperatorBuilder::kFloat32RoundDown | |
| 1339 MachineOperatorBuilder::kFloat32RoundUp | | 1344 MachineOperatorBuilder::kFloat32RoundUp | |
| 1340 MachineOperatorBuilder::kFloat32RoundTruncate | | 1345 MachineOperatorBuilder::kFloat32RoundTruncate | |
| 1341 MachineOperatorBuilder::kFloat32RoundTiesEven; | 1346 MachineOperatorBuilder::kFloat32RoundTiesEven; |
| 1342 } | 1347 } |
| 1343 | 1348 |
| 1344 } // namespace compiler | 1349 } // namespace compiler |
| 1345 } // namespace internal | 1350 } // namespace internal |
| 1346 } // namespace v8 | 1351 } // namespace v8 |
| OLD | NEW |