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/compiler-source-position-table.h" | 10 #include "src/compiler/compiler-source-position-table.h" |
(...skipping 1619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1630 case IrOpcode::kSimd128Not: | 1630 case IrOpcode::kSimd128Not: |
1631 return MarkAsSimd128(node), VisitSimd128Not(node); | 1631 return MarkAsSimd128(node), VisitSimd128Not(node); |
1632 case IrOpcode::kSimd32x4Select: | 1632 case IrOpcode::kSimd32x4Select: |
1633 return MarkAsSimd128(node), VisitSimd32x4Select(node); | 1633 return MarkAsSimd128(node), VisitSimd32x4Select(node); |
1634 case IrOpcode::kSimd16x8Select: | 1634 case IrOpcode::kSimd16x8Select: |
1635 return MarkAsSimd128(node), VisitSimd16x8Select(node); | 1635 return MarkAsSimd128(node), VisitSimd16x8Select(node); |
1636 case IrOpcode::kSimd8x16Select: | 1636 case IrOpcode::kSimd8x16Select: |
1637 return MarkAsSimd128(node), VisitSimd8x16Select(node); | 1637 return MarkAsSimd128(node), VisitSimd8x16Select(node); |
1638 case IrOpcode::kSimd1x4Zero: | 1638 case IrOpcode::kSimd1x4Zero: |
1639 return MarkAsSimd1x4(node), VisitSimd1x4Zero(node); | 1639 return MarkAsSimd1x4(node), VisitSimd1x4Zero(node); |
| 1640 case IrOpcode::kSimd1x4And: |
| 1641 return MarkAsSimd1x4(node), VisitSimd1x4And(node); |
| 1642 case IrOpcode::kSimd1x4Or: |
| 1643 return MarkAsSimd1x4(node), VisitSimd1x4Or(node); |
| 1644 case IrOpcode::kSimd1x4Xor: |
| 1645 return MarkAsSimd1x4(node), VisitSimd1x4Xor(node); |
| 1646 case IrOpcode::kSimd1x4Not: |
| 1647 return MarkAsSimd1x4(node), VisitSimd1x4Not(node); |
| 1648 case IrOpcode::kSimd1x4AnyTrue: |
| 1649 return MarkAsWord32(node), VisitSimd1x4AnyTrue(node); |
| 1650 case IrOpcode::kSimd1x4AllTrue: |
| 1651 return MarkAsWord32(node), VisitSimd1x4AllTrue(node); |
1640 case IrOpcode::kSimd1x8Zero: | 1652 case IrOpcode::kSimd1x8Zero: |
1641 return MarkAsSimd1x8(node), VisitSimd1x8Zero(node); | 1653 return MarkAsSimd1x8(node), VisitSimd1x8Zero(node); |
| 1654 case IrOpcode::kSimd1x8And: |
| 1655 return MarkAsSimd1x8(node), VisitSimd1x8And(node); |
| 1656 case IrOpcode::kSimd1x8Or: |
| 1657 return MarkAsSimd1x8(node), VisitSimd1x8Or(node); |
| 1658 case IrOpcode::kSimd1x8Xor: |
| 1659 return MarkAsSimd1x8(node), VisitSimd1x8Xor(node); |
| 1660 case IrOpcode::kSimd1x8Not: |
| 1661 return MarkAsSimd1x8(node), VisitSimd1x8Not(node); |
| 1662 case IrOpcode::kSimd1x8AnyTrue: |
| 1663 return MarkAsWord32(node), VisitSimd1x8AnyTrue(node); |
| 1664 case IrOpcode::kSimd1x8AllTrue: |
| 1665 return MarkAsWord32(node), VisitSimd1x8AllTrue(node); |
1642 case IrOpcode::kSimd1x16Zero: | 1666 case IrOpcode::kSimd1x16Zero: |
1643 return MarkAsSimd1x16(node), VisitSimd1x16Zero(node); | 1667 return MarkAsSimd1x16(node), VisitSimd1x16Zero(node); |
| 1668 case IrOpcode::kSimd1x16And: |
| 1669 return MarkAsSimd1x16(node), VisitSimd1x16And(node); |
| 1670 case IrOpcode::kSimd1x16Or: |
| 1671 return MarkAsSimd1x16(node), VisitSimd1x16Or(node); |
| 1672 case IrOpcode::kSimd1x16Xor: |
| 1673 return MarkAsSimd1x16(node), VisitSimd1x16Xor(node); |
| 1674 case IrOpcode::kSimd1x16Not: |
| 1675 return MarkAsSimd1x16(node), VisitSimd1x16Not(node); |
| 1676 case IrOpcode::kSimd1x16AnyTrue: |
| 1677 return MarkAsWord32(node), VisitSimd1x16AnyTrue(node); |
| 1678 case IrOpcode::kSimd1x16AllTrue: |
| 1679 return MarkAsWord32(node), VisitSimd1x16AllTrue(node); |
1644 default: | 1680 default: |
1645 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", | 1681 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", |
1646 node->opcode(), node->op()->mnemonic(), node->id()); | 1682 node->opcode(), node->op()->mnemonic(), node->id()); |
1647 break; | 1683 break; |
1648 } | 1684 } |
1649 } | 1685 } |
1650 | 1686 |
1651 void InstructionSelector::VisitLoadStackPointer(Node* node) { | 1687 void InstructionSelector::VisitLoadStackPointer(Node* node) { |
1652 OperandGenerator g(this); | 1688 OperandGenerator g(this); |
1653 Emit(kArchStackPointer, g.DefineAsRegister(node)); | 1689 Emit(kArchStackPointer, g.DefineAsRegister(node)); |
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2247 | 2283 |
2248 void InstructionSelector::VisitSimd128Xor(Node* node) { UNIMPLEMENTED(); } | 2284 void InstructionSelector::VisitSimd128Xor(Node* node) { UNIMPLEMENTED(); } |
2249 | 2285 |
2250 void InstructionSelector::VisitSimd128Not(Node* node) { UNIMPLEMENTED(); } | 2286 void InstructionSelector::VisitSimd128Not(Node* node) { UNIMPLEMENTED(); } |
2251 | 2287 |
2252 void InstructionSelector::VisitSimd32x4Select(Node* node) { UNIMPLEMENTED(); } | 2288 void InstructionSelector::VisitSimd32x4Select(Node* node) { UNIMPLEMENTED(); } |
2253 | 2289 |
2254 void InstructionSelector::VisitSimd16x8Select(Node* node) { UNIMPLEMENTED(); } | 2290 void InstructionSelector::VisitSimd16x8Select(Node* node) { UNIMPLEMENTED(); } |
2255 | 2291 |
2256 void InstructionSelector::VisitSimd8x16Select(Node* node) { UNIMPLEMENTED(); } | 2292 void InstructionSelector::VisitSimd8x16Select(Node* node) { UNIMPLEMENTED(); } |
| 2293 |
| 2294 void InstructionSelector::VisitSimd1x4And(Node* node) { UNIMPLEMENTED(); } |
| 2295 |
| 2296 void InstructionSelector::VisitSimd1x4Or(Node* node) { UNIMPLEMENTED(); } |
| 2297 |
| 2298 void InstructionSelector::VisitSimd1x4Xor(Node* node) { UNIMPLEMENTED(); } |
| 2299 |
| 2300 void InstructionSelector::VisitSimd1x4Not(Node* node) { UNIMPLEMENTED(); } |
| 2301 |
| 2302 void InstructionSelector::VisitSimd1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } |
| 2303 |
| 2304 void InstructionSelector::VisitSimd1x4AllTrue(Node* node) { UNIMPLEMENTED(); } |
| 2305 |
| 2306 void InstructionSelector::VisitSimd1x8And(Node* node) { UNIMPLEMENTED(); } |
| 2307 |
| 2308 void InstructionSelector::VisitSimd1x8Or(Node* node) { UNIMPLEMENTED(); } |
| 2309 |
| 2310 void InstructionSelector::VisitSimd1x8Xor(Node* node) { UNIMPLEMENTED(); } |
| 2311 |
| 2312 void InstructionSelector::VisitSimd1x8Not(Node* node) { UNIMPLEMENTED(); } |
| 2313 |
| 2314 void InstructionSelector::VisitSimd1x8AnyTrue(Node* node) { UNIMPLEMENTED(); } |
| 2315 |
| 2316 void InstructionSelector::VisitSimd1x8AllTrue(Node* node) { UNIMPLEMENTED(); } |
| 2317 |
| 2318 void InstructionSelector::VisitSimd1x16And(Node* node) { UNIMPLEMENTED(); } |
| 2319 |
| 2320 void InstructionSelector::VisitSimd1x16Or(Node* node) { UNIMPLEMENTED(); } |
| 2321 |
| 2322 void InstructionSelector::VisitSimd1x16Xor(Node* node) { UNIMPLEMENTED(); } |
| 2323 |
| 2324 void InstructionSelector::VisitSimd1x16Not(Node* node) { UNIMPLEMENTED(); } |
| 2325 |
| 2326 void InstructionSelector::VisitSimd1x16AnyTrue(Node* node) { UNIMPLEMENTED(); } |
| 2327 |
| 2328 void InstructionSelector::VisitSimd1x16AllTrue(Node* node) { UNIMPLEMENTED(); } |
2257 #endif // !V8_TARGET_ARCH_ARM | 2329 #endif // !V8_TARGET_ARCH_ARM |
2258 | 2330 |
2259 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } | 2331 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } |
2260 | 2332 |
2261 void InstructionSelector::VisitParameter(Node* node) { | 2333 void InstructionSelector::VisitParameter(Node* node) { |
2262 OperandGenerator g(this); | 2334 OperandGenerator g(this); |
2263 int index = ParameterIndexOf(node->op()); | 2335 int index = ParameterIndexOf(node->op()); |
2264 InstructionOperand op = | 2336 InstructionOperand op = |
2265 linkage()->ParameterHasSecondaryLocation(index) | 2337 linkage()->ParameterHasSecondaryLocation(index) |
2266 ? g.DefineAsDualLocation( | 2338 ? g.DefineAsDualLocation( |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2626 return new (instruction_zone()) FrameStateDescriptor( | 2698 return new (instruction_zone()) FrameStateDescriptor( |
2627 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2699 instruction_zone(), state_info.type(), state_info.bailout_id(), |
2628 state_info.state_combine(), parameters, locals, stack, | 2700 state_info.state_combine(), parameters, locals, stack, |
2629 state_info.shared_info(), outer_state); | 2701 state_info.shared_info(), outer_state); |
2630 } | 2702 } |
2631 | 2703 |
2632 | 2704 |
2633 } // namespace compiler | 2705 } // namespace compiler |
2634 } // namespace internal | 2706 } // namespace internal |
2635 } // namespace v8 | 2707 } // namespace v8 |
OLD | NEW |