src/share/vm/opto/connode.hpp

changeset 599
c436414a719e
parent 598
885ed790ecf0
child 603
7793bd37a336
equal deleted inserted replaced
598:885ed790ecf0 599:c436414a719e
68 if (con == NULL) 68 if (con == NULL)
69 return new (C, 1) ConPNode( TypePtr::NULL_PTR ) ; 69 return new (C, 1) ConPNode( TypePtr::NULL_PTR ) ;
70 else 70 else
71 return new (C, 1) ConPNode( TypeRawPtr::make(con) ); 71 return new (C, 1) ConPNode( TypeRawPtr::make(con) );
72 } 72 }
73
74 static ConPNode* make( Compile *C, ciObject* con ) {
75 return new (C, 1) ConPNode( TypeOopPtr::make_from_constant(con) );
76 }
77
78 }; 73 };
79 74
80 75
81 //------------------------------ConNNode-------------------------------------- 76 //------------------------------ConNNode--------------------------------------
82 // Simple narrow oop constants 77 // Simple narrow oop constants
83 class ConNNode : public ConNode { 78 class ConNNode : public ConNode {
84 public: 79 public:
85 ConNNode( const TypeNarrowOop *t ) : ConNode(t) {} 80 ConNNode( const TypeNarrowOop *t ) : ConNode(t) {}
86 virtual int Opcode() const; 81 virtual int Opcode() const;
87
88 static ConNNode* make( Compile *C, ciObject* con ) {
89 return new (C, 1) ConNNode( TypeNarrowOop::make_from_constant(con) );
90 }
91
92 }; 82 };
93 83
94 84
95 //------------------------------ConLNode--------------------------------------- 85 //------------------------------ConLNode---------------------------------------
96 // Simple long constants 86 // Simple long constants
208 public: 198 public:
209 CMovePNode( Node *c, Node *bol, Node *left, Node *right, const TypePtr* t ) : CMoveNode(bol,left,right,t) { init_req(Control,c); } 199 CMovePNode( Node *c, Node *bol, Node *left, Node *right, const TypePtr* t ) : CMoveNode(bol,left,right,t) { init_req(Control,c); }
210 virtual int Opcode() const; 200 virtual int Opcode() const;
211 }; 201 };
212 202
213 //------------------------------ConstraintCastNode------------------------------------- 203 //------------------------------CMoveNNode-------------------------------------
204 class CMoveNNode : public CMoveNode {
205 public:
206 CMoveNNode( Node *c, Node *bol, Node *left, Node *right, const Type* t ) : CMoveNode(bol,left,right,t) { init_req(Control,c); }
207 virtual int Opcode() const;
208 };
209
210 //------------------------------ConstraintCastNode-----------------------------
214 // cast to a different range 211 // cast to a different range
215 class ConstraintCastNode: public TypeNode { 212 class ConstraintCastNode: public TypeNode {
216 public: 213 public:
217 ConstraintCastNode (Node *n, const Type *t ): TypeNode(t,2) { 214 ConstraintCastNode (Node *n, const Type *t ): TypeNode(t,2) {
218 init_class_id(Class_ConstraintCast); 215 init_class_id(Class_ConstraintCast);
280 virtual int Opcode() const; 277 virtual int Opcode() const;
281 virtual Node *Identity( PhaseTransform *phase ); 278 virtual Node *Identity( PhaseTransform *phase );
282 virtual const Type *Value( PhaseTransform *phase ) const; 279 virtual const Type *Value( PhaseTransform *phase ) const;
283 virtual uint ideal_reg() const { return Op_RegN; } 280 virtual uint ideal_reg() const { return Op_RegN; }
284 281
285 static Node* encode(PhaseGVN* phase, Node* value); 282 static Node* encode(PhaseTransform* phase, Node* value);
286 virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp ); 283 virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp );
287 }; 284 };
288 285
289 //------------------------------DecodeN-------------------------------- 286 //------------------------------DecodeN--------------------------------
290 // Converts a narrow oop into a real oop ptr. 287 // Converts a narrow oop into a real oop ptr.
300 virtual int Opcode() const; 297 virtual int Opcode() const;
301 virtual Node *Identity( PhaseTransform *phase ); 298 virtual Node *Identity( PhaseTransform *phase );
302 virtual const Type *Value( PhaseTransform *phase ) const; 299 virtual const Type *Value( PhaseTransform *phase ) const;
303 virtual uint ideal_reg() const { return Op_RegP; } 300 virtual uint ideal_reg() const { return Op_RegP; }
304 301
305 static Node* decode(PhaseGVN* phase, Node* value); 302 static Node* decode(PhaseTransform* phase, Node* value);
306 }; 303 };
307 304
308 //------------------------------Conv2BNode------------------------------------- 305 //------------------------------Conv2BNode-------------------------------------
309 // Convert int/pointer to a Boolean. Map zero to zero, all else to 1. 306 // Convert int/pointer to a Boolean. Map zero to zero, all else to 1.
310 class Conv2BNode : public Node { 307 class Conv2BNode : public Node {

mercurial