| 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/compiler/instruction-selector-impl.h" | 9 #include "src/compiler/instruction-selector-impl.h" |
| 10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
| (...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 case IrOpcode::kFloat64Sqrt: | 692 case IrOpcode::kFloat64Sqrt: |
| 693 case IrOpcode::kFloat64Floor: | 693 case IrOpcode::kFloat64Floor: |
| 694 case IrOpcode::kFloat64Ceil: | 694 case IrOpcode::kFloat64Ceil: |
| 695 case IrOpcode::kFloat64RoundTruncate: | 695 case IrOpcode::kFloat64RoundTruncate: |
| 696 case IrOpcode::kFloat64RoundTiesAway: | 696 case IrOpcode::kFloat64RoundTiesAway: |
| 697 return kMachFloat64; | 697 return kMachFloat64; |
| 698 case IrOpcode::kFloat64Equal: | 698 case IrOpcode::kFloat64Equal: |
| 699 case IrOpcode::kFloat64LessThan: | 699 case IrOpcode::kFloat64LessThan: |
| 700 case IrOpcode::kFloat64LessThanOrEqual: | 700 case IrOpcode::kFloat64LessThanOrEqual: |
| 701 return kMachBool; | 701 return kMachBool; |
| 702 case IrOpcode::kFloat64ExtractLowWord32: |
| 703 case IrOpcode::kFloat64ExtractHighWord32: |
| 704 return kMachInt32; |
| 705 case IrOpcode::kFloat64InsertLowWord32: |
| 706 case IrOpcode::kFloat64InsertHighWord32: |
| 707 return kMachFloat64; |
| 702 default: | 708 default: |
| 703 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", | 709 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
| 704 node->opcode(), node->op()->mnemonic(), node->id()); | 710 node->opcode(), node->op()->mnemonic(), node->id()); |
| 705 } | 711 } |
| 706 return kMachNone; | 712 return kMachNone; |
| 707 } | 713 } |
| 708 | 714 |
| 709 | 715 |
| 710 void InstructionSelector::VisitNode(Node* node) { | 716 void InstructionSelector::VisitNode(Node* node) { |
| 711 DCHECK_NOT_NULL(schedule()->block(node)); // should only use scheduled nodes. | 717 DCHECK_NOT_NULL(schedule()->block(node)); // should only use scheduled nodes. |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 case IrOpcode::kFloat64LessThanOrEqual: | 902 case IrOpcode::kFloat64LessThanOrEqual: |
| 897 return VisitFloat64LessThanOrEqual(node); | 903 return VisitFloat64LessThanOrEqual(node); |
| 898 case IrOpcode::kFloat64Floor: | 904 case IrOpcode::kFloat64Floor: |
| 899 return MarkAsDouble(node), VisitFloat64Floor(node); | 905 return MarkAsDouble(node), VisitFloat64Floor(node); |
| 900 case IrOpcode::kFloat64Ceil: | 906 case IrOpcode::kFloat64Ceil: |
| 901 return MarkAsDouble(node), VisitFloat64Ceil(node); | 907 return MarkAsDouble(node), VisitFloat64Ceil(node); |
| 902 case IrOpcode::kFloat64RoundTruncate: | 908 case IrOpcode::kFloat64RoundTruncate: |
| 903 return MarkAsDouble(node), VisitFloat64RoundTruncate(node); | 909 return MarkAsDouble(node), VisitFloat64RoundTruncate(node); |
| 904 case IrOpcode::kFloat64RoundTiesAway: | 910 case IrOpcode::kFloat64RoundTiesAway: |
| 905 return MarkAsDouble(node), VisitFloat64RoundTiesAway(node); | 911 return MarkAsDouble(node), VisitFloat64RoundTiesAway(node); |
| 912 case IrOpcode::kFloat64ExtractLowWord32: |
| 913 return VisitFloat64ExtractLowWord32(node); |
| 914 case IrOpcode::kFloat64ExtractHighWord32: |
| 915 return VisitFloat64ExtractHighWord32(node); |
| 916 case IrOpcode::kFloat64InsertLowWord32: |
| 917 return MarkAsDouble(node), VisitFloat64InsertLowWord32(node); |
| 918 case IrOpcode::kFloat64InsertHighWord32: |
| 919 return MarkAsDouble(node), VisitFloat64InsertHighWord32(node); |
| 906 case IrOpcode::kLoadStackPointer: | 920 case IrOpcode::kLoadStackPointer: |
| 907 return VisitLoadStackPointer(node); | 921 return VisitLoadStackPointer(node); |
| 908 case IrOpcode::kCheckedLoad: { | 922 case IrOpcode::kCheckedLoad: { |
| 909 MachineType rep = OpParameter<MachineType>(node); | 923 MachineType rep = OpParameter<MachineType>(node); |
| 910 MarkAsRepresentation(rep, node); | 924 MarkAsRepresentation(rep, node); |
| 911 return VisitCheckedLoad(node); | 925 return VisitCheckedLoad(node); |
| 912 } | 926 } |
| 913 case IrOpcode::kCheckedStore: | 927 case IrOpcode::kCheckedStore: |
| 914 return VisitCheckedStore(node); | 928 return VisitCheckedStore(node); |
| 915 default: | 929 default: |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1257 MachineOperatorBuilder::Flags | 1271 MachineOperatorBuilder::Flags |
| 1258 InstructionSelector::SupportedMachineOperatorFlags() { | 1272 InstructionSelector::SupportedMachineOperatorFlags() { |
| 1259 return MachineOperatorBuilder::Flag::kNoFlags; | 1273 return MachineOperatorBuilder::Flag::kNoFlags; |
| 1260 } | 1274 } |
| 1261 | 1275 |
| 1262 #endif // !V8_TURBOFAN_BACKEND | 1276 #endif // !V8_TURBOFAN_BACKEND |
| 1263 | 1277 |
| 1264 } // namespace compiler | 1278 } // namespace compiler |
| 1265 } // namespace internal | 1279 } // namespace internal |
| 1266 } // namespace v8 | 1280 } // namespace v8 |
| OLD | NEW |