| 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 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1350 return VisitAtomicStore(node); | 1350 return VisitAtomicStore(node); |
| 1351 case IrOpcode::kProtectedLoad: | 1351 case IrOpcode::kProtectedLoad: |
| 1352 return VisitProtectedLoad(node); | 1352 return VisitProtectedLoad(node); |
| 1353 case IrOpcode::kUnsafePointerAdd: | 1353 case IrOpcode::kUnsafePointerAdd: |
| 1354 MarkAsRepresentation(MachineType::PointerRepresentation(), node); | 1354 MarkAsRepresentation(MachineType::PointerRepresentation(), node); |
| 1355 return VisitUnsafePointerAdd(node); | 1355 return VisitUnsafePointerAdd(node); |
| 1356 case IrOpcode::kCreateInt32x4: | 1356 case IrOpcode::kCreateInt32x4: |
| 1357 return MarkAsSimd128(node), VisitCreateInt32x4(node); | 1357 return MarkAsSimd128(node), VisitCreateInt32x4(node); |
| 1358 case IrOpcode::kInt32x4ExtractLane: | 1358 case IrOpcode::kInt32x4ExtractLane: |
| 1359 return MarkAsWord32(node), VisitInt32x4ExtractLane(node); | 1359 return MarkAsWord32(node), VisitInt32x4ExtractLane(node); |
| 1360 case IrOpcode::kInt32x4ReplaceLane: |
| 1361 return MarkAsSimd128(node), VisitInt32x4ReplaceLane(node); |
| 1362 case IrOpcode::kInt32x4Add: |
| 1363 return MarkAsSimd128(node), VisitInt32x4Add(node); |
| 1364 case IrOpcode::kInt32x4Sub: |
| 1365 return MarkAsSimd128(node), VisitInt32x4Sub(node); |
| 1360 default: | 1366 default: |
| 1361 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", | 1367 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
| 1362 node->opcode(), node->op()->mnemonic(), node->id()); | 1368 node->opcode(), node->op()->mnemonic(), node->id()); |
| 1363 break; | 1369 break; |
| 1364 } | 1370 } |
| 1365 } | 1371 } |
| 1366 | 1372 |
| 1367 void InstructionSelector::VisitLoadStackPointer(Node* node) { | 1373 void InstructionSelector::VisitLoadStackPointer(Node* node) { |
| 1368 OperandGenerator g(this); | 1374 OperandGenerator g(this); |
| 1369 Emit(kArchStackPointer, g.DefineAsRegister(node)); | 1375 Emit(kArchStackPointer, g.DefineAsRegister(node)); |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1683 | 1689 |
| 1684 void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); } | 1690 void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); } |
| 1685 #endif // V8_TARGET_ARCH_64_BIT | 1691 #endif // V8_TARGET_ARCH_64_BIT |
| 1686 | 1692 |
| 1687 #if !V8_TARGET_ARCH_X64 | 1693 #if !V8_TARGET_ARCH_X64 |
| 1688 void InstructionSelector::VisitCreateInt32x4(Node* node) { UNIMPLEMENTED(); } | 1694 void InstructionSelector::VisitCreateInt32x4(Node* node) { UNIMPLEMENTED(); } |
| 1689 | 1695 |
| 1690 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) { | 1696 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) { |
| 1691 UNIMPLEMENTED(); | 1697 UNIMPLEMENTED(); |
| 1692 } | 1698 } |
| 1699 |
| 1700 void InstructionSelector::VisitInt32x4ReplaceLane(Node* node) { |
| 1701 UNIMPLEMENTED(); |
| 1702 } |
| 1703 |
| 1704 void InstructionSelector::VisitInt32x4Add(Node* node) { UNIMPLEMENTED(); } |
| 1705 |
| 1706 void InstructionSelector::VisitInt32x4Sub(Node* node) { UNIMPLEMENTED(); } |
| 1693 #endif // !V8_TARGET_ARCH_X64 | 1707 #endif // !V8_TARGET_ARCH_X64 |
| 1694 | 1708 |
| 1695 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } | 1709 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } |
| 1696 | 1710 |
| 1697 void InstructionSelector::VisitParameter(Node* node) { | 1711 void InstructionSelector::VisitParameter(Node* node) { |
| 1698 OperandGenerator g(this); | 1712 OperandGenerator g(this); |
| 1699 int index = ParameterIndexOf(node->op()); | 1713 int index = ParameterIndexOf(node->op()); |
| 1700 InstructionOperand op = | 1714 InstructionOperand op = |
| 1701 linkage()->ParameterHasSecondaryLocation(index) | 1715 linkage()->ParameterHasSecondaryLocation(index) |
| 1702 ? g.DefineAsDualLocation( | 1716 ? g.DefineAsDualLocation( |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2099 return new (instruction_zone()) FrameStateDescriptor( | 2113 return new (instruction_zone()) FrameStateDescriptor( |
| 2100 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2114 instruction_zone(), state_info.type(), state_info.bailout_id(), |
| 2101 state_info.state_combine(), parameters, locals, stack, | 2115 state_info.state_combine(), parameters, locals, stack, |
| 2102 state_info.shared_info(), outer_state); | 2116 state_info.shared_info(), outer_state); |
| 2103 } | 2117 } |
| 2104 | 2118 |
| 2105 | 2119 |
| 2106 } // namespace compiler | 2120 } // namespace compiler |
| 2107 } // namespace internal | 2121 } // namespace internal |
| 2108 } // namespace v8 | 2122 } // namespace v8 |
| OLD | NEW |