< prev index next >

src/share/vm/opto/subnode.hpp

Print this page
rev 5781 : 8173770: Image conversion improvements
Reviewed-by: kvn, vlivanov, dlong, rhalade, mschoene, iignatyev


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









 193 //------------------------------CmpL3Node--------------------------------------
 194 // Compare 2 long values, returning integer value (-1, 0 or 1).
 195 class CmpL3Node : public CmpLNode {
 196 public:
 197   CmpL3Node( Node *in1, Node *in2 ) : CmpLNode(in1,in2) {
 198     // Since it is not consumed by Bools, it is not really a Cmp.
 199     init_class_id(Class_Sub);
 200   }
 201   virtual int    Opcode() const;
 202   virtual uint ideal_reg() const { return Op_RegI; }
 203 };
 204 
 205 //------------------------------CmpFNode---------------------------------------
 206 // Compare 2 float values, returning condition codes (-1, 0 or 1).
 207 // This implements the Java bytecode fcmpl, so unordered returns -1.
 208 // Operands may not commute.
 209 class CmpFNode : public CmpNode {
 210 public:
 211   CmpFNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 212   virtual int Opcode() const;




 173 
 174 //------------------------------CmpNNode--------------------------------------
 175 // Compare 2 narrow oop values, returning condition codes (-1, 0 or 1).
 176 class CmpNNode : public CmpNode {
 177 public:
 178   CmpNNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 179   virtual int Opcode() const;
 180   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 181   virtual const Type *sub( const Type *, const Type * ) const;
 182 };
 183 
 184 //------------------------------CmpLNode---------------------------------------
 185 // Compare 2 long values, returning condition codes (-1, 0 or 1).
 186 class CmpLNode : public CmpNode {
 187 public:
 188   CmpLNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 189   virtual int    Opcode() const;
 190   virtual const Type *sub( const Type *, const Type * ) const;
 191 };
 192 
 193 //------------------------------CmpULNode---------------------------------------
 194 // Compare 2 unsigned long values, returning condition codes (-1, 0 or 1).
 195 class CmpULNode : public CmpNode {
 196 public:
 197   CmpULNode(Node* in1, Node* in2) : CmpNode(in1, in2) { }
 198   virtual int Opcode() const;
 199   virtual const Type* sub(const Type*, const Type*) const;
 200 };
 201 
 202 //------------------------------CmpL3Node--------------------------------------
 203 // Compare 2 long values, returning integer value (-1, 0 or 1).
 204 class CmpL3Node : public CmpLNode {
 205 public:
 206   CmpL3Node( Node *in1, Node *in2 ) : CmpLNode(in1,in2) {
 207     // Since it is not consumed by Bools, it is not really a Cmp.
 208     init_class_id(Class_Sub);
 209   }
 210   virtual int    Opcode() const;
 211   virtual uint ideal_reg() const { return Op_RegI; }
 212 };
 213 
 214 //------------------------------CmpFNode---------------------------------------
 215 // Compare 2 float values, returning condition codes (-1, 0 or 1).
 216 // This implements the Java bytecode fcmpl, so unordered returns -1.
 217 // Operands may not commute.
 218 class CmpFNode : public CmpNode {
 219 public:
 220   CmpFNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 221   virtual int Opcode() const;


< prev index next >