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 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
640 void InstructionSelector::VisitFloat32Sqrt(Node* node) { | 640 void InstructionSelector::VisitFloat32Sqrt(Node* node) { |
641 VisitRR(this, kMipsSqrtS, node); | 641 VisitRR(this, kMipsSqrtS, node); |
642 } | 642 } |
643 | 643 |
644 | 644 |
645 void InstructionSelector::VisitFloat64Sqrt(Node* node) { | 645 void InstructionSelector::VisitFloat64Sqrt(Node* node) { |
646 VisitRR(this, kMipsSqrtD, node); | 646 VisitRR(this, kMipsSqrtD, node); |
647 } | 647 } |
648 | 648 |
649 | 649 |
650 void InstructionSelector::VisitFloat32RoundDown(Node* node) { UNREACHABLE(); } | 650 void InstructionSelector::VisitFloat32RoundDown(Node* node) { |
| 651 VisitRR(this, kMipsFloat32RoundDown, node); |
| 652 } |
651 | 653 |
652 | 654 |
653 void InstructionSelector::VisitFloat64RoundDown(Node* node) { | 655 void InstructionSelector::VisitFloat64RoundDown(Node* node) { |
654 VisitRR(this, kMipsFloat64RoundDown, node); | 656 VisitRR(this, kMipsFloat64RoundDown, node); |
655 } | 657 } |
656 | 658 |
657 | 659 |
658 void InstructionSelector::VisitFloat32RoundUp(Node* node) { UNREACHABLE(); } | 660 void InstructionSelector::VisitFloat32RoundUp(Node* node) { |
| 661 VisitRR(this, kMipsFloat32RoundUp, node); |
| 662 } |
659 | 663 |
660 | 664 |
661 void InstructionSelector::VisitFloat64RoundUp(Node* node) { | 665 void InstructionSelector::VisitFloat64RoundUp(Node* node) { |
662 VisitRR(this, kMipsFloat64RoundUp, node); | 666 VisitRR(this, kMipsFloat64RoundUp, node); |
663 } | 667 } |
664 | 668 |
665 | 669 |
666 void InstructionSelector::VisitFloat32RoundTruncate(Node* node) { | 670 void InstructionSelector::VisitFloat32RoundTruncate(Node* node) { |
667 UNREACHABLE(); | 671 VisitRR(this, kMipsFloat32RoundTruncate, node); |
668 } | 672 } |
669 | 673 |
670 | 674 |
671 void InstructionSelector::VisitFloat64RoundTruncate(Node* node) { | 675 void InstructionSelector::VisitFloat64RoundTruncate(Node* node) { |
672 VisitRR(this, kMipsFloat64RoundTruncate, node); | 676 VisitRR(this, kMipsFloat64RoundTruncate, node); |
673 } | 677 } |
674 | 678 |
675 | 679 |
676 void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) { | 680 void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) { |
677 UNREACHABLE(); | 681 UNREACHABLE(); |
678 } | 682 } |
679 | 683 |
680 | 684 |
681 void InstructionSelector::VisitFloat32RoundTiesEven(Node* node) { | 685 void InstructionSelector::VisitFloat32RoundTiesEven(Node* node) { |
682 UNREACHABLE(); | 686 VisitRR(this, kMipsFloat32RoundTiesEven, node); |
683 } | 687 } |
684 | 688 |
685 | 689 |
686 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { | 690 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { |
687 VisitRR(this, kMipsFloat64RoundTiesEven, node); | 691 VisitRR(this, kMipsFloat64RoundTiesEven, node); |
688 } | 692 } |
689 | 693 |
690 | 694 |
691 void InstructionSelector::EmitPrepareArguments(NodeVector* arguments, | 695 void InstructionSelector::EmitPrepareArguments(NodeVector* arguments, |
692 const CallDescriptor* descriptor, | 696 const CallDescriptor* descriptor, |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && | 1196 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && |
1193 IsFp64Mode()) { | 1197 IsFp64Mode()) { |
1194 flags |= MachineOperatorBuilder::kFloat64RoundDown | | 1198 flags |= MachineOperatorBuilder::kFloat64RoundDown | |
1195 MachineOperatorBuilder::kFloat64RoundUp | | 1199 MachineOperatorBuilder::kFloat64RoundUp | |
1196 MachineOperatorBuilder::kFloat64RoundTruncate | | 1200 MachineOperatorBuilder::kFloat64RoundTruncate | |
1197 MachineOperatorBuilder::kFloat64RoundTiesEven; | 1201 MachineOperatorBuilder::kFloat64RoundTiesEven; |
1198 } | 1202 } |
1199 return flags | MachineOperatorBuilder::kFloat64Min | | 1203 return flags | MachineOperatorBuilder::kFloat64Min | |
1200 MachineOperatorBuilder::kFloat64Max | | 1204 MachineOperatorBuilder::kFloat64Max | |
1201 MachineOperatorBuilder::kFloat32Min | | 1205 MachineOperatorBuilder::kFloat32Min | |
1202 MachineOperatorBuilder::kFloat32Max; | 1206 MachineOperatorBuilder::kFloat32Max | |
| 1207 MachineOperatorBuilder::kFloat32RoundDown | |
| 1208 MachineOperatorBuilder::kFloat32RoundUp | |
| 1209 MachineOperatorBuilder::kFloat32RoundTruncate | |
| 1210 MachineOperatorBuilder::kFloat32RoundTiesEven; |
1203 } | 1211 } |
1204 | 1212 |
1205 } // namespace compiler | 1213 } // namespace compiler |
1206 } // namespace internal | 1214 } // namespace internal |
1207 } // namespace v8 | 1215 } // namespace v8 |
OLD | NEW |