OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef V8_COMPILER_OPCODES_H_ | 5 #ifndef V8_COMPILER_OPCODES_H_ |
6 #define V8_COMPILER_OPCODES_H_ | 6 #define V8_COMPILER_OPCODES_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/globals.h" | 10 #include "src/globals.h" |
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 V(Int32PairMul) \ | 545 V(Int32PairMul) \ |
546 V(Word32PairShl) \ | 546 V(Word32PairShl) \ |
547 V(Word32PairShr) \ | 547 V(Word32PairShr) \ |
548 V(Word32PairSar) \ | 548 V(Word32PairSar) \ |
549 V(ProtectedLoad) \ | 549 V(ProtectedLoad) \ |
550 V(ProtectedStore) \ | 550 V(ProtectedStore) \ |
551 V(AtomicLoad) \ | 551 V(AtomicLoad) \ |
552 V(AtomicStore) \ | 552 V(AtomicStore) \ |
553 V(UnsafePointerAdd) | 553 V(UnsafePointerAdd) |
554 | 554 |
555 #define MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \ | 555 #define MACHINE_SIMD_OP_LIST(V) \ |
556 V(Float32x4Splat) \ | 556 V(Float32x4Splat) \ |
557 V(Float32x4ReplaceLane) \ | 557 V(Float32x4ExtractLane) \ |
558 V(Float32x4Abs) \ | 558 V(Float32x4ReplaceLane) \ |
559 V(Float32x4Neg) \ | 559 V(Float32x4Abs) \ |
560 V(Float32x4Sqrt) \ | 560 V(Float32x4Neg) \ |
561 V(Float32x4RecipApprox) \ | 561 V(Float32x4Sqrt) \ |
562 V(Float32x4RecipSqrtApprox) \ | 562 V(Float32x4RecipApprox) \ |
563 V(Float32x4Add) \ | 563 V(Float32x4RecipSqrtApprox) \ |
564 V(Float32x4Sub) \ | 564 V(Float32x4Add) \ |
565 V(Float32x4Mul) \ | 565 V(Float32x4Sub) \ |
566 V(Float32x4Div) \ | 566 V(Float32x4Mul) \ |
567 V(Float32x4Min) \ | 567 V(Float32x4Div) \ |
568 V(Float32x4Max) \ | 568 V(Float32x4Min) \ |
569 V(Float32x4MinNum) \ | 569 V(Float32x4Max) \ |
570 V(Float32x4MaxNum) \ | 570 V(Float32x4MinNum) \ |
571 V(Float32x4Equal) \ | 571 V(Float32x4MaxNum) \ |
572 V(Float32x4NotEqual) \ | 572 V(Float32x4Equal) \ |
573 V(Float32x4LessThan) \ | 573 V(Float32x4NotEqual) \ |
574 V(Float32x4LessThanOrEqual) \ | 574 V(Float32x4LessThan) \ |
575 V(Float32x4GreaterThan) \ | 575 V(Float32x4LessThanOrEqual) \ |
576 V(Float32x4GreaterThanOrEqual) \ | 576 V(Float32x4GreaterThan) \ |
577 V(Float32x4FromInt32x4) \ | 577 V(Float32x4GreaterThanOrEqual) \ |
578 V(Float32x4FromUint32x4) \ | 578 V(Float32x4FromInt32x4) \ |
579 V(Int32x4Splat) \ | 579 V(Float32x4FromUint32x4) \ |
580 V(Int32x4ReplaceLane) \ | 580 V(Int32x4Splat) \ |
581 V(Int32x4Neg) \ | 581 V(Int32x4ExtractLane) \ |
582 V(Int32x4Add) \ | 582 V(Int32x4ReplaceLane) \ |
583 V(Int32x4Sub) \ | 583 V(Int32x4Neg) \ |
584 V(Int32x4Mul) \ | 584 V(Int32x4Add) \ |
585 V(Int32x4Min) \ | 585 V(Int32x4Sub) \ |
586 V(Int32x4Max) \ | 586 V(Int32x4Mul) \ |
587 V(Int32x4ShiftLeftByScalar) \ | 587 V(Int32x4Min) \ |
588 V(Int32x4ShiftRightByScalar) \ | 588 V(Int32x4Max) \ |
589 V(Int32x4Equal) \ | 589 V(Int32x4ShiftLeftByScalar) \ |
590 V(Int32x4NotEqual) \ | 590 V(Int32x4ShiftRightByScalar) \ |
591 V(Int32x4LessThan) \ | 591 V(Int32x4Equal) \ |
592 V(Int32x4LessThanOrEqual) \ | 592 V(Int32x4NotEqual) \ |
593 V(Int32x4GreaterThan) \ | 593 V(Int32x4LessThan) \ |
594 V(Int32x4GreaterThanOrEqual) \ | 594 V(Int32x4LessThanOrEqual) \ |
595 V(Int32x4FromFloat32x4) \ | 595 V(Int32x4GreaterThan) \ |
596 V(Uint32x4Min) \ | 596 V(Int32x4GreaterThanOrEqual) \ |
597 V(Uint32x4Max) \ | 597 V(Int32x4FromFloat32x4) \ |
598 V(Uint32x4ShiftLeftByScalar) \ | 598 V(Uint32x4Min) \ |
599 V(Uint32x4ShiftRightByScalar) \ | 599 V(Uint32x4Max) \ |
600 V(Uint32x4LessThan) \ | 600 V(Uint32x4ShiftLeftByScalar) \ |
601 V(Uint32x4LessThanOrEqual) \ | 601 V(Uint32x4ShiftRightByScalar) \ |
602 V(Uint32x4GreaterThan) \ | 602 V(Uint32x4LessThan) \ |
603 V(Uint32x4GreaterThanOrEqual) \ | 603 V(Uint32x4LessThanOrEqual) \ |
604 V(Uint32x4FromFloat32x4) \ | 604 V(Uint32x4GreaterThan) \ |
605 V(Bool32x4And) \ | 605 V(Uint32x4GreaterThanOrEqual) \ |
606 V(Bool32x4Or) \ | 606 V(Uint32x4FromFloat32x4) \ |
607 V(Bool32x4Xor) \ | 607 V(Int16x8Splat) \ |
608 V(Bool32x4Not) \ | 608 V(Int16x8ExtractLane) \ |
609 V(Int16x8Splat) \ | 609 V(Int16x8ReplaceLane) \ |
610 V(Int16x8ReplaceLane) \ | 610 V(Int16x8Neg) \ |
611 V(Int16x8Neg) \ | 611 V(Int16x8Add) \ |
612 V(Int16x8Add) \ | 612 V(Int16x8AddSaturate) \ |
613 V(Int16x8AddSaturate) \ | 613 V(Int16x8Sub) \ |
614 V(Int16x8Sub) \ | 614 V(Int16x8SubSaturate) \ |
615 V(Int16x8SubSaturate) \ | 615 V(Int16x8Mul) \ |
616 V(Int16x8Mul) \ | 616 V(Int16x8Min) \ |
617 V(Int16x8Min) \ | 617 V(Int16x8Max) \ |
618 V(Int16x8Max) \ | 618 V(Int16x8ShiftLeftByScalar) \ |
619 V(Int16x8ShiftLeftByScalar) \ | 619 V(Int16x8ShiftRightByScalar) \ |
620 V(Int16x8ShiftRightByScalar) \ | 620 V(Int16x8Equal) \ |
621 V(Int16x8Equal) \ | 621 V(Int16x8NotEqual) \ |
622 V(Int16x8NotEqual) \ | 622 V(Int16x8LessThan) \ |
623 V(Int16x8LessThan) \ | 623 V(Int16x8LessThanOrEqual) \ |
624 V(Int16x8LessThanOrEqual) \ | 624 V(Int16x8GreaterThan) \ |
625 V(Int16x8GreaterThan) \ | 625 V(Int16x8GreaterThanOrEqual) \ |
626 V(Int16x8GreaterThanOrEqual) \ | 626 V(Uint16x8AddSaturate) \ |
627 V(Uint16x8AddSaturate) \ | 627 V(Uint16x8SubSaturate) \ |
628 V(Uint16x8SubSaturate) \ | 628 V(Uint16x8Min) \ |
629 V(Uint16x8Min) \ | 629 V(Uint16x8Max) \ |
630 V(Uint16x8Max) \ | 630 V(Uint16x8ShiftLeftByScalar) \ |
631 V(Uint16x8ShiftLeftByScalar) \ | 631 V(Uint16x8ShiftRightByScalar) \ |
632 V(Uint16x8ShiftRightByScalar) \ | 632 V(Uint16x8LessThan) \ |
633 V(Uint16x8LessThan) \ | 633 V(Uint16x8LessThanOrEqual) \ |
634 V(Uint16x8LessThanOrEqual) \ | 634 V(Uint16x8GreaterThan) \ |
635 V(Uint16x8GreaterThan) \ | 635 V(Uint16x8GreaterThanOrEqual) \ |
636 V(Uint16x8GreaterThanOrEqual) \ | 636 V(Int8x16Splat) \ |
637 V(Bool16x8And) \ | 637 V(Int8x16ExtractLane) \ |
638 V(Bool16x8Or) \ | 638 V(Int8x16ReplaceLane) \ |
639 V(Bool16x8Xor) \ | 639 V(Int8x16Neg) \ |
640 V(Bool16x8Not) \ | 640 V(Int8x16Add) \ |
641 V(Int8x16Splat) \ | 641 V(Int8x16AddSaturate) \ |
642 V(Int8x16ReplaceLane) \ | 642 V(Int8x16Sub) \ |
643 V(Int8x16Neg) \ | 643 V(Int8x16SubSaturate) \ |
644 V(Int8x16Add) \ | 644 V(Int8x16Mul) \ |
645 V(Int8x16AddSaturate) \ | 645 V(Int8x16Min) \ |
646 V(Int8x16Sub) \ | 646 V(Int8x16Max) \ |
647 V(Int8x16SubSaturate) \ | 647 V(Int8x16ShiftLeftByScalar) \ |
648 V(Int8x16Mul) \ | 648 V(Int8x16ShiftRightByScalar) \ |
649 V(Int8x16Min) \ | 649 V(Int8x16Equal) \ |
650 V(Int8x16Max) \ | 650 V(Int8x16NotEqual) \ |
651 V(Int8x16ShiftLeftByScalar) \ | 651 V(Int8x16LessThan) \ |
652 V(Int8x16ShiftRightByScalar) \ | 652 V(Int8x16LessThanOrEqual) \ |
653 V(Int8x16Equal) \ | 653 V(Int8x16GreaterThan) \ |
654 V(Int8x16NotEqual) \ | 654 V(Int8x16GreaterThanOrEqual) \ |
655 V(Int8x16LessThan) \ | 655 V(Uint8x16AddSaturate) \ |
656 V(Int8x16LessThanOrEqual) \ | 656 V(Uint8x16SubSaturate) \ |
657 V(Int8x16GreaterThan) \ | 657 V(Uint8x16Min) \ |
658 V(Int8x16GreaterThanOrEqual) \ | 658 V(Uint8x16Max) \ |
659 V(Uint8x16AddSaturate) \ | 659 V(Uint8x16ShiftLeftByScalar) \ |
660 V(Uint8x16SubSaturate) \ | 660 V(Uint8x16ShiftRightByScalar) \ |
661 V(Uint8x16Min) \ | 661 V(Uint8x16LessThan) \ |
662 V(Uint8x16Max) \ | 662 V(Uint8x16LessThanOrEqual) \ |
663 V(Uint8x16ShiftLeftByScalar) \ | 663 V(Uint8x16GreaterThan) \ |
664 V(Uint8x16ShiftRightByScalar) \ | 664 V(Uint8x16GreaterThanOrEqual) \ |
665 V(Uint8x16LessThan) \ | 665 V(Simd128Load) \ |
666 V(Uint8x16LessThanOrEqual) \ | 666 V(Simd128Load1) \ |
667 V(Uint8x16GreaterThan) \ | 667 V(Simd128Load2) \ |
668 V(Uint8x16GreaterThanOrEqual) \ | 668 V(Simd128Load3) \ |
669 V(Bool8x16And) \ | 669 V(Simd128Store) \ |
670 V(Bool8x16Or) \ | 670 V(Simd128Store1) \ |
671 V(Bool8x16Xor) \ | 671 V(Simd128Store2) \ |
672 V(Bool8x16Not) \ | 672 V(Simd128Store3) \ |
673 V(Simd128Zero) \ | 673 V(Simd128Zero) \ |
674 V(Simd128And) \ | 674 V(Simd128And) \ |
675 V(Simd128Or) \ | 675 V(Simd128Or) \ |
676 V(Simd128Xor) \ | 676 V(Simd128Xor) \ |
677 V(Simd128Not) \ | 677 V(Simd128Not) \ |
678 V(Simd32x4Select) \ | 678 V(Simd32x4Select) \ |
679 V(Simd32x4Swizzle) \ | 679 V(Simd32x4Swizzle) \ |
680 V(Simd32x4Shuffle) \ | 680 V(Simd32x4Shuffle) \ |
681 V(Simd16x8Select) \ | 681 V(Simd16x8Select) \ |
682 V(Simd16x8Swizzle) \ | 682 V(Simd16x8Swizzle) \ |
683 V(Simd16x8Shuffle) \ | 683 V(Simd16x8Shuffle) \ |
684 V(Simd8x16Select) \ | 684 V(Simd8x16Select) \ |
685 V(Simd8x16Swizzle) \ | 685 V(Simd8x16Swizzle) \ |
686 V(Simd8x16Shuffle) \ | 686 V(Simd8x16Shuffle) \ |
687 V(Simd1x4Zero) \ | 687 V(Simd1x4Zero) \ |
688 V(Simd1x8Zero) \ | 688 V(Simd1x4And) \ |
689 V(Simd1x16Zero) | 689 V(Simd1x4Or) \ |
690 | 690 V(Simd1x4Xor) \ |
691 #define MACHINE_SIMD_RETURN_NUM_OP_LIST(V) \ | 691 V(Simd1x4Not) \ |
692 V(Float32x4ExtractLane) \ | 692 V(Simd1x4AnyTrue) \ |
693 V(Int32x4ExtractLane) \ | 693 V(Simd1x4AllTrue) \ |
694 V(Int16x8ExtractLane) \ | 694 V(Simd1x8Zero) \ |
695 V(Int8x16ExtractLane) | 695 V(Simd1x8And) \ |
696 | 696 V(Simd1x8Or) \ |
697 #define MACHINE_SIMD_RETURN_BOOL_OP_LIST(V) \ | 697 V(Simd1x8Xor) \ |
698 V(Bool32x4AnyTrue) \ | 698 V(Simd1x8Not) \ |
699 V(Bool32x4AllTrue) \ | 699 V(Simd1x8AnyTrue) \ |
700 V(Bool16x8AnyTrue) \ | 700 V(Simd1x8AllTrue) \ |
701 V(Bool16x8AllTrue) \ | 701 V(Simd1x16Zero) \ |
702 V(Bool8x16AnyTrue) \ | 702 V(Simd1x16And) \ |
703 V(Bool8x16AllTrue) | 703 V(Simd1x16Or) \ |
704 | 704 V(Simd1x16Xor) \ |
705 #define MACHINE_SIMD_GENERIC_OP_LIST(V) \ | 705 V(Simd1x16Not) \ |
706 V(Simd128Load) \ | 706 V(Simd1x16AnyTrue) \ |
707 V(Simd128Load1) \ | 707 V(Simd1x16AllTrue) |
708 V(Simd128Load2) \ | |
709 V(Simd128Load3) \ | |
710 V(Simd128Store) \ | |
711 V(Simd128Store1) \ | |
712 V(Simd128Store2) \ | |
713 V(Simd128Store3) | |
714 | |
715 #define MACHINE_SIMD_OP_LIST(V) \ | |
716 MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \ | |
717 MACHINE_SIMD_RETURN_NUM_OP_LIST(V) \ | |
718 MACHINE_SIMD_RETURN_BOOL_OP_LIST(V) \ | |
719 MACHINE_SIMD_GENERIC_OP_LIST(V) | |
720 | 708 |
721 #define VALUE_OP_LIST(V) \ | 709 #define VALUE_OP_LIST(V) \ |
722 COMMON_OP_LIST(V) \ | 710 COMMON_OP_LIST(V) \ |
723 SIMPLIFIED_OP_LIST(V) \ | 711 SIMPLIFIED_OP_LIST(V) \ |
724 MACHINE_OP_LIST(V) \ | 712 MACHINE_OP_LIST(V) \ |
725 MACHINE_SIMD_OP_LIST(V) \ | 713 MACHINE_SIMD_OP_LIST(V) \ |
726 JS_OP_LIST(V) | 714 JS_OP_LIST(V) |
727 | 715 |
728 // The combination of all operators at all levels and the common operators. | 716 // The combination of all operators at all levels and the common operators. |
729 #define ALL_OP_LIST(V) \ | 717 #define ALL_OP_LIST(V) \ |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
800 } | 788 } |
801 }; | 789 }; |
802 | 790 |
803 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, IrOpcode::Value); | 791 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, IrOpcode::Value); |
804 | 792 |
805 } // namespace compiler | 793 } // namespace compiler |
806 } // namespace internal | 794 } // namespace internal |
807 } // namespace v8 | 795 } // namespace v8 |
808 | 796 |
809 #endif // V8_COMPILER_OPCODES_H_ | 797 #endif // V8_COMPILER_OPCODES_H_ |
OLD | NEW |