< prev index next >

src/hotspot/share/opto/castnode.hpp

Print this page




 132   virtual uint ideal_reg() const { return Op_RegP; }
 133   virtual const Type *bottom_type() const { return TypeRawPtr::BOTTOM; }
 134 };
 135 
 136 //------------------------------CastP2XNode-------------------------------------
 137 // Used in both 32-bit and 64-bit land.
 138 // Used for card-marks and unsafe pointer math.
 139 class CastP2XNode : public Node {
 140   public:
 141   CastP2XNode( Node *ctrl, Node *n ) : Node(ctrl, n) {}
 142   virtual int Opcode() const;
 143   virtual const Type* Value(PhaseGVN* phase) const;
 144   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 145   virtual Node* Identity(PhaseGVN* phase);
 146   virtual uint ideal_reg() const { return Op_RegX; }
 147   virtual const Type *bottom_type() const { return TypeX_X; }
 148   // Return false to keep node from moving away from an associated card mark.
 149   virtual bool depends_only_on_test() const { return false; }
 150 };
 151 

















 152 
 153 
 154 #endif // SHARE_OPTO_CASTNODE_HPP


 132   virtual uint ideal_reg() const { return Op_RegP; }
 133   virtual const Type *bottom_type() const { return TypeRawPtr::BOTTOM; }
 134 };
 135 
 136 //------------------------------CastP2XNode-------------------------------------
 137 // Used in both 32-bit and 64-bit land.
 138 // Used for card-marks and unsafe pointer math.
 139 class CastP2XNode : public Node {
 140   public:
 141   CastP2XNode( Node *ctrl, Node *n ) : Node(ctrl, n) {}
 142   virtual int Opcode() const;
 143   virtual const Type* Value(PhaseGVN* phase) const;
 144   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 145   virtual Node* Identity(PhaseGVN* phase);
 146   virtual uint ideal_reg() const { return Op_RegX; }
 147   virtual const Type *bottom_type() const { return TypeX_X; }
 148   // Return false to keep node from moving away from an associated card mark.
 149   virtual bool depends_only_on_test() const { return false; }
 150 };
 151 
 152 // convert between a 32 bit integer and a compressed pointer 
 153 class CastI2NNode : public TypeNode {
 154   public:
 155   CastI2NNode(Node *n, const Type *t) : TypeNode(t, 2) {
 156     init_req(1, n);
 157   }
 158   virtual int Opcode() const;
 159   virtual uint ideal_reg() const { return Op_RegN; }
 160 };
 161 
 162 class CastN2INode : public Node {
 163   public:
 164   CastN2INode(Node *n) : Node(NULL, n) {}
 165   virtual int Opcode() const;
 166   virtual uint ideal_reg() const { return Op_RegI; }
 167   virtual const Type *bottom_type() const { return TypeInt::INT; }
 168 };
 169 
 170 
 171 #endif // SHARE_OPTO_CASTNODE_HPP
< prev index next >