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/assembler-inl.h" | 9 #include "src/assembler-inl.h" |
10 #include "src/base/adapters.h" | 10 #include "src/base/adapters.h" |
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1696 case IrOpcode::kS128Zero: | 1696 case IrOpcode::kS128Zero: |
1697 return MarkAsSimd128(node), VisitS128Zero(node); | 1697 return MarkAsSimd128(node), VisitS128Zero(node); |
1698 case IrOpcode::kS128And: | 1698 case IrOpcode::kS128And: |
1699 return MarkAsSimd128(node), VisitS128And(node); | 1699 return MarkAsSimd128(node), VisitS128And(node); |
1700 case IrOpcode::kS128Or: | 1700 case IrOpcode::kS128Or: |
1701 return MarkAsSimd128(node), VisitS128Or(node); | 1701 return MarkAsSimd128(node), VisitS128Or(node); |
1702 case IrOpcode::kS128Xor: | 1702 case IrOpcode::kS128Xor: |
1703 return MarkAsSimd128(node), VisitS128Xor(node); | 1703 return MarkAsSimd128(node), VisitS128Xor(node); |
1704 case IrOpcode::kS128Not: | 1704 case IrOpcode::kS128Not: |
1705 return MarkAsSimd128(node), VisitS128Not(node); | 1705 return MarkAsSimd128(node), VisitS128Not(node); |
| 1706 case IrOpcode::kS32x4ZipLeft: |
| 1707 return MarkAsSimd128(node), VisitS32x4ZipLeft(node); |
| 1708 case IrOpcode::kS32x4ZipRight: |
| 1709 return MarkAsSimd128(node), VisitS32x4ZipRight(node); |
| 1710 case IrOpcode::kS32x4UnzipLeft: |
| 1711 return MarkAsSimd128(node), VisitS32x4UnzipLeft(node); |
| 1712 case IrOpcode::kS32x4UnzipRight: |
| 1713 return MarkAsSimd128(node), VisitS32x4UnzipRight(node); |
| 1714 case IrOpcode::kS32x4TransposeLeft: |
| 1715 return MarkAsSimd128(node), VisitS32x4TransposeLeft(node); |
| 1716 case IrOpcode::kS32x4TransposeRight: |
| 1717 return MarkAsSimd128(node), VisitS32x4TransposeRight(node); |
1706 case IrOpcode::kS32x4Select: | 1718 case IrOpcode::kS32x4Select: |
1707 return MarkAsSimd128(node), VisitS32x4Select(node); | 1719 return MarkAsSimd128(node), VisitS32x4Select(node); |
| 1720 case IrOpcode::kS16x8ZipLeft: |
| 1721 return MarkAsSimd128(node), VisitS16x8ZipLeft(node); |
| 1722 case IrOpcode::kS16x8ZipRight: |
| 1723 return MarkAsSimd128(node), VisitS16x8ZipRight(node); |
| 1724 case IrOpcode::kS16x8UnzipLeft: |
| 1725 return MarkAsSimd128(node), VisitS16x8UnzipLeft(node); |
| 1726 case IrOpcode::kS16x8UnzipRight: |
| 1727 return MarkAsSimd128(node), VisitS16x8UnzipRight(node); |
| 1728 case IrOpcode::kS16x8TransposeLeft: |
| 1729 return MarkAsSimd128(node), VisitS16x8TransposeLeft(node); |
| 1730 case IrOpcode::kS16x8TransposeRight: |
| 1731 return MarkAsSimd128(node), VisitS16x8TransposeRight(node); |
1708 case IrOpcode::kS16x8Select: | 1732 case IrOpcode::kS16x8Select: |
1709 return MarkAsSimd128(node), VisitS16x8Select(node); | 1733 return MarkAsSimd128(node), VisitS16x8Select(node); |
| 1734 case IrOpcode::kS8x16ZipLeft: |
| 1735 return MarkAsSimd128(node), VisitS8x16ZipLeft(node); |
| 1736 case IrOpcode::kS8x16ZipRight: |
| 1737 return MarkAsSimd128(node), VisitS8x16ZipRight(node); |
| 1738 case IrOpcode::kS8x16UnzipLeft: |
| 1739 return MarkAsSimd128(node), VisitS8x16UnzipLeft(node); |
| 1740 case IrOpcode::kS8x16UnzipRight: |
| 1741 return MarkAsSimd128(node), VisitS8x16UnzipRight(node); |
| 1742 case IrOpcode::kS8x16TransposeLeft: |
| 1743 return MarkAsSimd128(node), VisitS8x16TransposeLeft(node); |
| 1744 case IrOpcode::kS8x16TransposeRight: |
| 1745 return MarkAsSimd128(node), VisitS8x16TransposeRight(node); |
1710 case IrOpcode::kS8x16Select: | 1746 case IrOpcode::kS8x16Select: |
1711 return MarkAsSimd128(node), VisitS8x16Select(node); | 1747 return MarkAsSimd128(node), VisitS8x16Select(node); |
| 1748 case IrOpcode::kS8x16Concat: |
| 1749 return MarkAsSimd128(node), VisitS8x16Concat(node); |
| 1750 case IrOpcode::kS32x2Reverse: |
| 1751 return MarkAsSimd128(node), VisitS32x2Reverse(node); |
| 1752 case IrOpcode::kS16x4Reverse: |
| 1753 return MarkAsSimd128(node), VisitS16x4Reverse(node); |
| 1754 case IrOpcode::kS16x2Reverse: |
| 1755 return MarkAsSimd128(node), VisitS16x2Reverse(node); |
| 1756 case IrOpcode::kS8x8Reverse: |
| 1757 return MarkAsSimd128(node), VisitS8x8Reverse(node); |
| 1758 case IrOpcode::kS8x4Reverse: |
| 1759 return MarkAsSimd128(node), VisitS8x4Reverse(node); |
| 1760 case IrOpcode::kS8x2Reverse: |
| 1761 return MarkAsSimd128(node), VisitS8x2Reverse(node); |
1712 case IrOpcode::kS1x4Zero: | 1762 case IrOpcode::kS1x4Zero: |
1713 return MarkAsSimd1x4(node), VisitS1x4Zero(node); | 1763 return MarkAsSimd1x4(node), VisitS1x4Zero(node); |
1714 case IrOpcode::kS1x4And: | 1764 case IrOpcode::kS1x4And: |
1715 return MarkAsSimd1x4(node), VisitS1x4And(node); | 1765 return MarkAsSimd1x4(node), VisitS1x4And(node); |
1716 case IrOpcode::kS1x4Or: | 1766 case IrOpcode::kS1x4Or: |
1717 return MarkAsSimd1x4(node), VisitS1x4Or(node); | 1767 return MarkAsSimd1x4(node), VisitS1x4Or(node); |
1718 case IrOpcode::kS1x4Xor: | 1768 case IrOpcode::kS1x4Xor: |
1719 return MarkAsSimd1x4(node), VisitS1x4Xor(node); | 1769 return MarkAsSimd1x4(node), VisitS1x4Xor(node); |
1720 case IrOpcode::kS1x4Not: | 1770 case IrOpcode::kS1x4Not: |
1721 return MarkAsSimd1x4(node), VisitS1x4Not(node); | 1771 return MarkAsSimd1x4(node), VisitS1x4Not(node); |
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2384 void InstructionSelector::VisitS1x16Zero(Node* node) { UNIMPLEMENTED(); } | 2434 void InstructionSelector::VisitS1x16Zero(Node* node) { UNIMPLEMENTED(); } |
2385 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2435 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2386 // !V8_TARGET_ARCH_MIPS64 | 2436 // !V8_TARGET_ARCH_MIPS64 |
2387 | 2437 |
2388 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ | 2438 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && \ |
2389 !V8_TARGET_ARCH_MIPS64 | 2439 !V8_TARGET_ARCH_MIPS64 |
2390 void InstructionSelector::VisitS32x4Select(Node* node) { UNIMPLEMENTED(); } | 2440 void InstructionSelector::VisitS32x4Select(Node* node) { UNIMPLEMENTED(); } |
2391 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2441 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2392 // !V8_TARGET_ARCH_MIPS64 | 2442 // !V8_TARGET_ARCH_MIPS64 |
2393 | 2443 |
| 2444 #if !V8_TARGET_ARCH_ARM |
| 2445 void InstructionSelector::VisitS32x4ZipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2446 |
| 2447 void InstructionSelector::VisitS32x4ZipRight(Node* node) { UNIMPLEMENTED(); } |
| 2448 |
| 2449 void InstructionSelector::VisitS32x4UnzipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2450 |
| 2451 void InstructionSelector::VisitS32x4UnzipRight(Node* node) { UNIMPLEMENTED(); } |
| 2452 |
| 2453 void InstructionSelector::VisitS32x4TransposeLeft(Node* node) { |
| 2454 UNIMPLEMENTED(); |
| 2455 } |
| 2456 |
| 2457 void InstructionSelector::VisitS32x4TransposeRight(Node* node) { |
| 2458 UNIMPLEMENTED(); |
| 2459 } |
| 2460 |
| 2461 void InstructionSelector::VisitS16x8ZipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2462 |
| 2463 void InstructionSelector::VisitS16x8ZipRight(Node* node) { UNIMPLEMENTED(); } |
| 2464 |
| 2465 void InstructionSelector::VisitS16x8UnzipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2466 |
| 2467 void InstructionSelector::VisitS16x8UnzipRight(Node* node) { UNIMPLEMENTED(); } |
| 2468 |
| 2469 void InstructionSelector::VisitS16x8TransposeLeft(Node* node) { |
| 2470 UNIMPLEMENTED(); |
| 2471 } |
| 2472 |
| 2473 void InstructionSelector::VisitS16x8TransposeRight(Node* node) { |
| 2474 UNIMPLEMENTED(); |
| 2475 } |
| 2476 #endif // !V8_TARGET_ARCH_ARM |
| 2477 |
2394 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM | 2478 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2395 void InstructionSelector::VisitS16x8Select(Node* node) { UNIMPLEMENTED(); } | 2479 void InstructionSelector::VisitS16x8Select(Node* node) { UNIMPLEMENTED(); } |
| 2480 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2396 | 2481 |
| 2482 #if !V8_TARGET_ARCH_ARM |
| 2483 void InstructionSelector::VisitS8x16ZipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2484 |
| 2485 void InstructionSelector::VisitS8x16ZipRight(Node* node) { UNIMPLEMENTED(); } |
| 2486 |
| 2487 void InstructionSelector::VisitS8x16UnzipLeft(Node* node) { UNIMPLEMENTED(); } |
| 2488 |
| 2489 void InstructionSelector::VisitS8x16UnzipRight(Node* node) { UNIMPLEMENTED(); } |
| 2490 |
| 2491 void InstructionSelector::VisitS8x16TransposeLeft(Node* node) { |
| 2492 UNIMPLEMENTED(); |
| 2493 } |
| 2494 |
| 2495 void InstructionSelector::VisitS8x16TransposeRight(Node* node) { |
| 2496 UNIMPLEMENTED(); |
| 2497 } |
| 2498 #endif // !V8_TARGET_ARCH_ARM |
| 2499 |
| 2500 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2397 void InstructionSelector::VisitS8x16Select(Node* node) { UNIMPLEMENTED(); } | 2501 void InstructionSelector::VisitS8x16Select(Node* node) { UNIMPLEMENTED(); } |
2398 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM | 2502 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2399 | 2503 |
2400 #if !V8_TARGET_ARCH_ARM | 2504 #if !V8_TARGET_ARCH_ARM |
| 2505 void InstructionSelector::VisitS8x16Concat(Node* node) { UNIMPLEMENTED(); } |
| 2506 |
| 2507 void InstructionSelector::VisitS32x2Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2508 |
| 2509 void InstructionSelector::VisitS16x4Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2510 |
| 2511 void InstructionSelector::VisitS16x2Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2512 |
| 2513 void InstructionSelector::VisitS8x8Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2514 |
| 2515 void InstructionSelector::VisitS8x4Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2516 |
| 2517 void InstructionSelector::VisitS8x2Reverse(Node* node) { UNIMPLEMENTED(); } |
| 2518 |
2401 void InstructionSelector::VisitS1x4And(Node* node) { UNIMPLEMENTED(); } | 2519 void InstructionSelector::VisitS1x4And(Node* node) { UNIMPLEMENTED(); } |
2402 | 2520 |
2403 void InstructionSelector::VisitS1x4Or(Node* node) { UNIMPLEMENTED(); } | 2521 void InstructionSelector::VisitS1x4Or(Node* node) { UNIMPLEMENTED(); } |
2404 | 2522 |
2405 void InstructionSelector::VisitS1x4Xor(Node* node) { UNIMPLEMENTED(); } | 2523 void InstructionSelector::VisitS1x4Xor(Node* node) { UNIMPLEMENTED(); } |
2406 | 2524 |
2407 void InstructionSelector::VisitS1x4Not(Node* node) { UNIMPLEMENTED(); } | 2525 void InstructionSelector::VisitS1x4Not(Node* node) { UNIMPLEMENTED(); } |
2408 | 2526 |
2409 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } | 2527 void InstructionSelector::VisitS1x4AnyTrue(Node* node) { UNIMPLEMENTED(); } |
2410 | 2528 |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2807 return new (instruction_zone()) FrameStateDescriptor( | 2925 return new (instruction_zone()) FrameStateDescriptor( |
2808 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2926 instruction_zone(), state_info.type(), state_info.bailout_id(), |
2809 state_info.state_combine(), parameters, locals, stack, | 2927 state_info.state_combine(), parameters, locals, stack, |
2810 state_info.shared_info(), outer_state); | 2928 state_info.shared_info(), outer_state); |
2811 } | 2929 } |
2812 | 2930 |
2813 | 2931 |
2814 } // namespace compiler | 2932 } // namespace compiler |
2815 } // namespace internal | 2933 } // namespace internal |
2816 } // namespace v8 | 2934 } // namespace v8 |
OLD | NEW |