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 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 case IrOpcode::kChangeInt32ToInt64: | 692 case IrOpcode::kChangeInt32ToInt64: |
693 return MarkAsWord64(node), VisitChangeInt32ToInt64(node); | 693 return MarkAsWord64(node), VisitChangeInt32ToInt64(node); |
694 case IrOpcode::kChangeUint32ToUint64: | 694 case IrOpcode::kChangeUint32ToUint64: |
695 return MarkAsWord64(node), VisitChangeUint32ToUint64(node); | 695 return MarkAsWord64(node), VisitChangeUint32ToUint64(node); |
696 case IrOpcode::kTruncateFloat64ToFloat32: | 696 case IrOpcode::kTruncateFloat64ToFloat32: |
697 return MarkAsFloat32(node), VisitTruncateFloat64ToFloat32(node); | 697 return MarkAsFloat32(node), VisitTruncateFloat64ToFloat32(node); |
698 case IrOpcode::kTruncateFloat64ToInt32: | 698 case IrOpcode::kTruncateFloat64ToInt32: |
699 return MarkAsWord32(node), VisitTruncateFloat64ToInt32(node); | 699 return MarkAsWord32(node), VisitTruncateFloat64ToInt32(node); |
700 case IrOpcode::kTruncateInt64ToInt32: | 700 case IrOpcode::kTruncateInt64ToInt32: |
701 return MarkAsWord32(node), VisitTruncateInt64ToInt32(node); | 701 return MarkAsWord32(node), VisitTruncateInt64ToInt32(node); |
| 702 case IrOpcode::kBitcastFloat32ToInt32: |
| 703 return MarkAsWord32(node), VisitBitcastFloat32ToInt32(node); |
| 704 case IrOpcode::kBitcastFloat64ToInt64: |
| 705 return MarkAsWord64(node), VisitBitcastFloat64ToInt64(node); |
| 706 case IrOpcode::kBitcastInt32ToFloat32: |
| 707 return MarkAsFloat32(node), VisitBitcastInt32ToFloat32(node); |
| 708 case IrOpcode::kBitcastInt64ToFloat64: |
| 709 return MarkAsFloat64(node), VisitBitcastInt64ToFloat64(node); |
702 case IrOpcode::kFloat32Add: | 710 case IrOpcode::kFloat32Add: |
703 return MarkAsFloat32(node), VisitFloat32Add(node); | 711 return MarkAsFloat32(node), VisitFloat32Add(node); |
704 case IrOpcode::kFloat32Sub: | 712 case IrOpcode::kFloat32Sub: |
705 return MarkAsFloat32(node), VisitFloat32Sub(node); | 713 return MarkAsFloat32(node), VisitFloat32Sub(node); |
706 case IrOpcode::kFloat32Mul: | 714 case IrOpcode::kFloat32Mul: |
707 return MarkAsFloat32(node), VisitFloat32Mul(node); | 715 return MarkAsFloat32(node), VisitFloat32Mul(node); |
708 case IrOpcode::kFloat32Div: | 716 case IrOpcode::kFloat32Div: |
709 return MarkAsFloat32(node), VisitFloat32Div(node); | 717 return MarkAsFloat32(node), VisitFloat32Div(node); |
710 case IrOpcode::kFloat32Min: | 718 case IrOpcode::kFloat32Min: |
711 return MarkAsFloat32(node), VisitFloat32Min(node); | 719 return MarkAsFloat32(node), VisitFloat32Min(node); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 | 905 |
898 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) { | 906 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) { |
899 UNIMPLEMENTED(); | 907 UNIMPLEMENTED(); |
900 } | 908 } |
901 | 909 |
902 | 910 |
903 void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) { | 911 void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) { |
904 UNIMPLEMENTED(); | 912 UNIMPLEMENTED(); |
905 } | 913 } |
906 | 914 |
| 915 |
| 916 void InstructionSelector::VisitBitcastFloat64ToInt64(Node* node) { |
| 917 UNIMPLEMENTED(); |
| 918 } |
| 919 |
| 920 |
| 921 void InstructionSelector::VisitBitcastInt64ToFloat64(Node* node) { |
| 922 UNIMPLEMENTED(); |
| 923 } |
| 924 |
907 #endif // V8_TARGET_ARCH_32_BIT | 925 #endif // V8_TARGET_ARCH_32_BIT |
908 | 926 |
909 | 927 |
910 void InstructionSelector::VisitFinish(Node* node) { | 928 void InstructionSelector::VisitFinish(Node* node) { |
911 OperandGenerator g(this); | 929 OperandGenerator g(this); |
912 Node* value = node->InputAt(0); | 930 Node* value = node->InputAt(0); |
913 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); | 931 Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); |
914 } | 932 } |
915 | 933 |
916 | 934 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1126 for (StateValuesAccess::TypedNode input_node : StateValuesAccess(stack)) { | 1144 for (StateValuesAccess::TypedNode input_node : StateValuesAccess(stack)) { |
1127 inputs->push_back(OperandForDeopt(&g, input_node.node, kind)); | 1145 inputs->push_back(OperandForDeopt(&g, input_node.node, kind)); |
1128 descriptor->SetType(value_index++, input_node.type); | 1146 descriptor->SetType(value_index++, input_node.type); |
1129 } | 1147 } |
1130 DCHECK(value_index == descriptor->GetSize()); | 1148 DCHECK(value_index == descriptor->GetSize()); |
1131 } | 1149 } |
1132 | 1150 |
1133 } // namespace compiler | 1151 } // namespace compiler |
1134 } // namespace internal | 1152 } // namespace internal |
1135 } // namespace v8 | 1153 } // namespace v8 |
OLD | NEW |