619 };
620
621 class MoveF2INode : public Node {
622 public:
623 MoveF2INode( Node *value ) : Node(0,value) {}
624 virtual int Opcode() const;
625 virtual const Type *bottom_type() const { return TypeInt::INT; }
626 virtual uint ideal_reg() const { return Op_RegI; }
627 virtual const Type* Value( PhaseTransform *phase ) const;
628 };
629
630 class MoveD2LNode : public Node {
631 public:
632 MoveD2LNode( Node *value ) : Node(0,value) {}
633 virtual int Opcode() const;
634 virtual const Type *bottom_type() const { return TypeLong::LONG; }
635 virtual uint ideal_reg() const { return Op_RegL; }
636 virtual const Type* Value( PhaseTransform *phase ) const;
637 };
638
639 //---------- PopCountINode -----------------------------------------------------
640 // Population count (bit count) of an integer.
641 class PopCountINode : public Node {
642 public:
643 PopCountINode(Node* in1) : Node(0, in1) {}
644 virtual int Opcode() const;
645 const Type* bottom_type() const { return TypeInt::INT; }
646 virtual uint ideal_reg() const { return Op_RegI; }
647 };
648
649 //---------- PopCountLNode -----------------------------------------------------
650 // Population count (bit count) of a long.
651 class PopCountLNode : public Node {
652 public:
653 PopCountLNode(Node* in1) : Node(0, in1) {}
654 virtual int Opcode() const;
655 const Type* bottom_type() const { return TypeInt::INT; }
656 virtual uint ideal_reg() const { return Op_RegI; }
657 };
|
619 };
620
621 class MoveF2INode : public Node {
622 public:
623 MoveF2INode( Node *value ) : Node(0,value) {}
624 virtual int Opcode() const;
625 virtual const Type *bottom_type() const { return TypeInt::INT; }
626 virtual uint ideal_reg() const { return Op_RegI; }
627 virtual const Type* Value( PhaseTransform *phase ) const;
628 };
629
630 class MoveD2LNode : public Node {
631 public:
632 MoveD2LNode( Node *value ) : Node(0,value) {}
633 virtual int Opcode() const;
634 virtual const Type *bottom_type() const { return TypeLong::LONG; }
635 virtual uint ideal_reg() const { return Op_RegL; }
636 virtual const Type* Value( PhaseTransform *phase ) const;
637 };
638
639 //---------- CountLeadingZerosINode --------------------------------------------
640 // Count leading zeros (0-bit count starting from MSB) of an integer.
641 class CountLeadingZerosINode : public Node {
642 public:
643 CountLeadingZerosINode(Node* in1) : Node(0, in1) {}
644 virtual int Opcode() const;
645 const Type* bottom_type() const { return TypeInt::INT; }
646 virtual uint ideal_reg() const { return Op_RegI; }
647 };
648
649 //---------- CountLeadingZerosLNode --------------------------------------------
650 // Count leading zeros (0-bit count starting from MSB) of a long.
651 class CountLeadingZerosLNode : public Node {
652 public:
653 CountLeadingZerosLNode(Node* in1) : Node(0, in1) {}
654 virtual int Opcode() const;
655 const Type* bottom_type() const { return TypeInt::INT; }
656 virtual uint ideal_reg() const { return Op_RegI; }
657 };
658
659 //---------- CountTrailingZerosINode -------------------------------------------
660 // Count trailing zeros (0-bit count starting from LSB) of an integer.
661 class CountTrailingZerosINode : public Node {
662 public:
663 CountTrailingZerosINode(Node* in1) : Node(0, in1) {}
664 virtual int Opcode() const;
665 const Type* bottom_type() const { return TypeInt::INT; }
666 virtual uint ideal_reg() const { return Op_RegI; }
667 };
668
669 //---------- CountTrailingZerosLNode -------------------------------------------
670 // Count trailing zeros (0-bit count starting from LSB) of a long.
671 class CountTrailingZerosLNode : public Node {
672 public:
673 CountTrailingZerosLNode(Node* in1) : Node(0, in1) {}
674 virtual int Opcode() const;
675 const Type* bottom_type() const { return TypeInt::INT; }
676 virtual uint ideal_reg() const { return Op_RegI; }
677 };
678
679 //---------- PopCountINode -----------------------------------------------------
680 // Population count (bit count) of an integer.
681 class PopCountINode : public Node {
682 public:
683 PopCountINode(Node* in1) : Node(0, in1) {}
684 virtual int Opcode() const;
685 const Type* bottom_type() const { return TypeInt::INT; }
686 virtual uint ideal_reg() const { return Op_RegI; }
687 };
688
689 //---------- PopCountLNode -----------------------------------------------------
690 // Population count (bit count) of a long.
691 class PopCountLNode : public Node {
692 public:
693 PopCountLNode(Node* in1) : Node(0, in1) {}
694 virtual int Opcode() const;
695 const Type* bottom_type() const { return TypeInt::INT; }
696 virtual uint ideal_reg() const { return Op_RegI; }
697 };
|