< prev index next >

src/hotspot/share/opto/subnode.hpp

Print this page




 160 
 161 //------------------------------CmpUNode---------------------------------------
 162 // Compare 2 unsigned values (integer or pointer), returning condition codes (-1, 0 or 1).
 163 class CmpUNode : public CmpNode {
 164 public:
 165   CmpUNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 166   virtual int Opcode() const;
 167   virtual const Type *sub( const Type *, const Type * ) const;
 168   const Type* Value(PhaseGVN* phase) const;
 169   bool is_index_range_check() const;
 170 };
 171 
 172 //------------------------------CmpPNode---------------------------------------
 173 // Compare 2 pointer values, returning condition codes (-1, 0 or 1).
 174 class CmpPNode : public CmpNode {
 175 public:
 176   CmpPNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 177   virtual int Opcode() const;
 178   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 179   virtual const Type *sub( const Type *, const Type * ) const;

 180 };
 181 
 182 //------------------------------CmpNNode--------------------------------------
 183 // Compare 2 narrow oop values, returning condition codes (-1, 0 or 1).
 184 class CmpNNode : public CmpNode {
 185 public:
 186   CmpNNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 187   virtual int Opcode() const;
 188   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 189   virtual const Type *sub( const Type *, const Type * ) const;
 190 };
 191 
 192 //------------------------------CmpLNode---------------------------------------
 193 // Compare 2 long values, returning condition codes (-1, 0 or 1).
 194 class CmpLNode : public CmpNode {
 195 public:
 196   CmpLNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 197   virtual int    Opcode() const;

 198   virtual const Type *sub( const Type *, const Type * ) const;
 199 };
 200 
 201 //------------------------------CmpULNode---------------------------------------
 202 // Compare 2 unsigned long values, returning condition codes (-1, 0 or 1).
 203 class CmpULNode : public CmpNode {
 204 public:
 205   CmpULNode(Node* in1, Node* in2) : CmpNode(in1, in2) { }
 206   virtual int Opcode() const;
 207   virtual const Type* sub(const Type*, const Type*) const;
 208 };
 209 
 210 //------------------------------CmpL3Node--------------------------------------
 211 // Compare 2 long values, returning integer value (-1, 0 or 1).
 212 class CmpL3Node : public CmpLNode {
 213 public:
 214   CmpL3Node( Node *in1, Node *in2 ) : CmpLNode(in1,in2) {
 215     // Since it is not consumed by Bools, it is not really a Cmp.
 216     init_class_id(Class_Sub);
 217   }




 160 
 161 //------------------------------CmpUNode---------------------------------------
 162 // Compare 2 unsigned values (integer or pointer), returning condition codes (-1, 0 or 1).
 163 class CmpUNode : public CmpNode {
 164 public:
 165   CmpUNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 166   virtual int Opcode() const;
 167   virtual const Type *sub( const Type *, const Type * ) const;
 168   const Type* Value(PhaseGVN* phase) const;
 169   bool is_index_range_check() const;
 170 };
 171 
 172 //------------------------------CmpPNode---------------------------------------
 173 // Compare 2 pointer values, returning condition codes (-1, 0 or 1).
 174 class CmpPNode : public CmpNode {
 175 public:
 176   CmpPNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 177   virtual int Opcode() const;
 178   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 179   virtual const Type *sub( const Type *, const Type * ) const;
 180   Node* has_perturbed_operand() const;
 181 };
 182 
 183 //------------------------------CmpNNode--------------------------------------
 184 // Compare 2 narrow oop values, returning condition codes (-1, 0 or 1).
 185 class CmpNNode : public CmpNode {
 186 public:
 187   CmpNNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 188   virtual int Opcode() const;
 189   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 190   virtual const Type *sub( const Type *, const Type * ) const;
 191 };
 192 
 193 //------------------------------CmpLNode---------------------------------------
 194 // Compare 2 long values, returning condition codes (-1, 0 or 1).
 195 class CmpLNode : public CmpNode {
 196 public:
 197   CmpLNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 198   virtual int    Opcode() const;
 199   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
 200   virtual const Type *sub( const Type *, const Type * ) const;
 201 };
 202 
 203 //------------------------------CmpULNode---------------------------------------
 204 // Compare 2 unsigned long values, returning condition codes (-1, 0 or 1).
 205 class CmpULNode : public CmpNode {
 206 public:
 207   CmpULNode(Node* in1, Node* in2) : CmpNode(in1, in2) { }
 208   virtual int Opcode() const;
 209   virtual const Type* sub(const Type*, const Type*) const;
 210 };
 211 
 212 //------------------------------CmpL3Node--------------------------------------
 213 // Compare 2 long values, returning integer value (-1, 0 or 1).
 214 class CmpL3Node : public CmpLNode {
 215 public:
 216   CmpL3Node( Node *in1, Node *in2 ) : CmpLNode(in1,in2) {
 217     // Since it is not consumed by Bools, it is not really a Cmp.
 218     init_class_id(Class_Sub);
 219   }


< prev index next >