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/compiler/instruction-selector.h" | 5 #include "src/compiler/instruction-selector.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/adapters.h" | 9 #include "src/base/adapters.h" |
10 #include "src/compiler/instruction-selector-impl.h" | 10 #include "src/compiler/instruction-selector-impl.h" |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 case IrOpcode::kInt64Mod: | 667 case IrOpcode::kInt64Mod: |
668 return MarkAsWord64(node), VisitInt64Mod(node); | 668 return MarkAsWord64(node), VisitInt64Mod(node); |
669 case IrOpcode::kInt64LessThan: | 669 case IrOpcode::kInt64LessThan: |
670 return VisitInt64LessThan(node); | 670 return VisitInt64LessThan(node); |
671 case IrOpcode::kInt64LessThanOrEqual: | 671 case IrOpcode::kInt64LessThanOrEqual: |
672 return VisitInt64LessThanOrEqual(node); | 672 return VisitInt64LessThanOrEqual(node); |
673 case IrOpcode::kUint64Div: | 673 case IrOpcode::kUint64Div: |
674 return MarkAsWord64(node), VisitUint64Div(node); | 674 return MarkAsWord64(node), VisitUint64Div(node); |
675 case IrOpcode::kUint64LessThan: | 675 case IrOpcode::kUint64LessThan: |
676 return VisitUint64LessThan(node); | 676 return VisitUint64LessThan(node); |
| 677 case IrOpcode::kUint64LessThanOrEqual: |
| 678 return VisitUint64LessThanOrEqual(node); |
677 case IrOpcode::kUint64Mod: | 679 case IrOpcode::kUint64Mod: |
678 return MarkAsWord64(node), VisitUint64Mod(node); | 680 return MarkAsWord64(node), VisitUint64Mod(node); |
679 case IrOpcode::kChangeFloat32ToFloat64: | 681 case IrOpcode::kChangeFloat32ToFloat64: |
680 return MarkAsFloat64(node), VisitChangeFloat32ToFloat64(node); | 682 return MarkAsFloat64(node), VisitChangeFloat32ToFloat64(node); |
681 case IrOpcode::kChangeInt32ToFloat64: | 683 case IrOpcode::kChangeInt32ToFloat64: |
682 return MarkAsFloat64(node), VisitChangeInt32ToFloat64(node); | 684 return MarkAsFloat64(node), VisitChangeInt32ToFloat64(node); |
683 case IrOpcode::kChangeUint32ToFloat64: | 685 case IrOpcode::kChangeUint32ToFloat64: |
684 return MarkAsFloat64(node), VisitChangeUint32ToFloat64(node); | 686 return MarkAsFloat64(node), VisitChangeUint32ToFloat64(node); |
685 case IrOpcode::kChangeFloat64ToInt32: | 687 case IrOpcode::kChangeFloat64ToInt32: |
686 return MarkAsWord32(node), VisitChangeFloat64ToInt32(node); | 688 return MarkAsWord32(node), VisitChangeFloat64ToInt32(node); |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 inputs[index * 2 + 2 + 0] = g.TempImmediate(value); | 830 inputs[index * 2 + 2 + 0] = g.TempImmediate(value); |
829 inputs[index * 2 + 2 + 1] = g.Label(branch); | 831 inputs[index * 2 + 2 + 1] = g.Label(branch); |
830 } | 832 } |
831 Emit(kArchLookupSwitch, 0, nullptr, input_count, inputs, 0, nullptr); | 833 Emit(kArchLookupSwitch, 0, nullptr, input_count, inputs, 0, nullptr); |
832 } | 834 } |
833 | 835 |
834 | 836 |
835 #endif // V8_TURBOFAN_BACKEND | 837 #endif // V8_TURBOFAN_BACKEND |
836 | 838 |
837 // 32 bit targets do not implement the following instructions. | 839 // 32 bit targets do not implement the following instructions. |
838 #if V8_TARGET_ARCH_32_BIT && !V8_TARGET_ARCH_X64 && V8_TURBOFAN_BACKEND | 840 #if !V8_TURBOFAN_BACKEND_64 |
839 | 841 |
840 void InstructionSelector::VisitWord64And(Node* node) { UNIMPLEMENTED(); } | 842 void InstructionSelector::VisitWord64And(Node* node) { UNIMPLEMENTED(); } |
841 | 843 |
842 | 844 |
843 void InstructionSelector::VisitWord64Or(Node* node) { UNIMPLEMENTED(); } | 845 void InstructionSelector::VisitWord64Or(Node* node) { UNIMPLEMENTED(); } |
844 | 846 |
845 | 847 |
846 void InstructionSelector::VisitWord64Xor(Node* node) { UNIMPLEMENTED(); } | 848 void InstructionSelector::VisitWord64Xor(Node* node) { UNIMPLEMENTED(); } |
847 | 849 |
848 | 850 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
883 | 885 |
884 void InstructionSelector::VisitUint64Div(Node* node) { UNIMPLEMENTED(); } | 886 void InstructionSelector::VisitUint64Div(Node* node) { UNIMPLEMENTED(); } |
885 | 887 |
886 | 888 |
887 void InstructionSelector::VisitInt64Mod(Node* node) { UNIMPLEMENTED(); } | 889 void InstructionSelector::VisitInt64Mod(Node* node) { UNIMPLEMENTED(); } |
888 | 890 |
889 | 891 |
890 void InstructionSelector::VisitUint64LessThan(Node* node) { UNIMPLEMENTED(); } | 892 void InstructionSelector::VisitUint64LessThan(Node* node) { UNIMPLEMENTED(); } |
891 | 893 |
892 | 894 |
| 895 void InstructionSelector::VisitUint64LessThanOrEqual(Node* node) { |
| 896 UNIMPLEMENTED(); |
| 897 } |
| 898 |
| 899 |
893 void InstructionSelector::VisitUint64Mod(Node* node) { UNIMPLEMENTED(); } | 900 void InstructionSelector::VisitUint64Mod(Node* node) { UNIMPLEMENTED(); } |
894 | 901 |
895 | 902 |
896 void InstructionSelector::VisitChangeInt32ToInt64(Node* node) { | 903 void InstructionSelector::VisitChangeInt32ToInt64(Node* node) { |
897 UNIMPLEMENTED(); | 904 UNIMPLEMENTED(); |
898 } | 905 } |
899 | 906 |
900 | 907 |
901 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) { | 908 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) { |
902 UNIMPLEMENTED(); | 909 UNIMPLEMENTED(); |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 MachineOperatorBuilder::Flags | 1159 MachineOperatorBuilder::Flags |
1153 InstructionSelector::SupportedMachineOperatorFlags() { | 1160 InstructionSelector::SupportedMachineOperatorFlags() { |
1154 return MachineOperatorBuilder::Flag::kNoFlags; | 1161 return MachineOperatorBuilder::Flag::kNoFlags; |
1155 } | 1162 } |
1156 | 1163 |
1157 #endif // !V8_TURBOFAN_BACKEND | 1164 #endif // !V8_TURBOFAN_BACKEND |
1158 | 1165 |
1159 } // namespace compiler | 1166 } // namespace compiler |
1160 } // namespace internal | 1167 } // namespace internal |
1161 } // namespace v8 | 1168 } // namespace v8 |
OLD | NEW |