src/share/vm/opto/connode.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6823354 Cdiff src/share/vm/opto/connode.hpp
src/share/vm/opto/connode.hpp
Print this page
rev 743 : [mq]: 6823354
*** 634,657 ****
virtual const Type *bottom_type() const { return TypeLong::LONG; }
virtual uint ideal_reg() const { return Op_RegL; }
virtual const Type* Value( PhaseTransform *phase ) const;
};
//---------- PopCountINode -----------------------------------------------------
// Population count (bit count) of an integer.
! class PopCountINode : public Node {
public:
! PopCountINode(Node* in1) : Node(0, in1) {}
virtual int Opcode() const;
- const Type* bottom_type() const { return TypeInt::INT; }
- virtual uint ideal_reg() const { return Op_RegI; }
};
//---------- PopCountLNode -----------------------------------------------------
// Population count (bit count) of a long.
! class PopCountLNode : public Node {
public:
! PopCountLNode(Node* in1) : Node(0, in1) {}
virtual int Opcode() const;
- const Type* bottom_type() const { return TypeInt::INT; }
- virtual uint ideal_reg() const { return Op_RegI; }
};
--- 634,697 ----
virtual const Type *bottom_type() const { return TypeLong::LONG; }
virtual uint ideal_reg() const { return Op_RegL; }
virtual const Type* Value( PhaseTransform *phase ) const;
};
+ //---------- CountBitsNode -----------------------------------------------------
+ class CountBitsNode : public Node {
+ public:
+ CountBitsNode(Node* in1) : Node(0, in1) {}
+ const Type* bottom_type() const { return TypeInt::INT; }
+ virtual uint ideal_reg() const { return Op_RegI; }
+ };
+
+ //---------- CountLeadingZerosINode --------------------------------------------
+ // Count leading zeros (0-bit count starting from MSB) of an integer.
+ class CountLeadingZerosINode : public CountBitsNode {
+ public:
+ CountLeadingZerosINode(Node* in1) : CountBitsNode(in1) {}
+ virtual int Opcode() const;
+ virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
+ };
+
+ //---------- CountLeadingZerosLNode --------------------------------------------
+ // Count leading zeros (0-bit count starting from MSB) of a long.
+ class CountLeadingZerosLNode : public CountBitsNode {
+ public:
+ CountLeadingZerosLNode(Node* in1) : CountBitsNode(in1) {}
+ virtual int Opcode() const;
+ virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
+ };
+
+ //---------- CountTrailingZerosINode -------------------------------------------
+ // Count trailing zeros (0-bit count starting from LSB) of an integer.
+ class CountTrailingZerosINode : public CountBitsNode {
+ public:
+ CountTrailingZerosINode(Node* in1) : CountBitsNode(in1) {}
+ virtual int Opcode() const;
+ virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
+ };
+
+ //---------- CountTrailingZerosLNode -------------------------------------------
+ // Count trailing zeros (0-bit count starting from LSB) of a long.
+ class CountTrailingZerosLNode : public CountBitsNode {
+ public:
+ CountTrailingZerosLNode(Node* in1) : CountBitsNode(in1) {}
+ virtual int Opcode() const;
+ virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
+ };
+
//---------- PopCountINode -----------------------------------------------------
// Population count (bit count) of an integer.
! class PopCountINode : public CountBitsNode {
public:
! PopCountINode(Node* in1) : CountBitsNode(in1) {}
virtual int Opcode() const;
};
//---------- PopCountLNode -----------------------------------------------------
// Population count (bit count) of a long.
! class PopCountLNode : public CountBitsNode {
public:
! PopCountLNode(Node* in1) : CountBitsNode(in1) {}
virtual int Opcode() const;
};
src/share/vm/opto/connode.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File