< prev index next >
src/share/vm/opto/castnode.hpp
Print this page
*** 45,55 ****
init_req(1, n);
}
virtual Node* Identity(PhaseGVN* phase);
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
! virtual int Opcode() const;
virtual uint ideal_reg() const = 0;
virtual bool depends_only_on_test() const { return !_carry_dependency; }
bool carry_dependency() const { return _carry_dependency; }
TypeNode* dominating_cast(PhaseTransform *phase) const;
static Node* make_cast(int opcode, Node* c, Node *n, const Type *t, bool carry_dependency);
--- 45,55 ----
init_req(1, n);
}
virtual Node* Identity(PhaseGVN* phase);
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
! virtual uint Opcode() const;
virtual uint ideal_reg() const = 0;
virtual bool depends_only_on_test() const { return !_carry_dependency; }
bool carry_dependency() const { return _carry_dependency; }
TypeNode* dominating_cast(PhaseTransform *phase) const;
static Node* make_cast(int opcode, Node* c, Node *n, const Type *t, bool carry_dependency);
*** 71,81 ****
public:
CastIINode(Node* n, const Type* t, bool carry_dependency = false, bool range_check_dependency = false)
: ConstraintCastNode(n, t, carry_dependency), _range_check_dependency(range_check_dependency) {
init_class_id(Class_CastII);
}
! virtual int Opcode() const;
virtual uint ideal_reg() const { return Op_RegI; }
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
const bool has_range_check() {
#ifdef _LP64
--- 71,81 ----
public:
CastIINode(Node* n, const Type* t, bool carry_dependency = false, bool range_check_dependency = false)
: ConstraintCastNode(n, t, carry_dependency), _range_check_dependency(range_check_dependency) {
init_class_id(Class_CastII);
}
! virtual uint Opcode() const;
virtual uint ideal_reg() const { return Op_RegI; }
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
const bool has_range_check() {
#ifdef _LP64
*** 96,106 ****
class CastPPNode: public ConstraintCastNode {
public:
CastPPNode (Node *n, const Type *t, bool carry_dependency = false)
: ConstraintCastNode(n, t, carry_dependency) {
}
! virtual int Opcode() const;
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------CheckCastPPNode--------------------------------
// for _checkcast, cast pointer to pointer (different type), without JOIN,
--- 96,106 ----
class CastPPNode: public ConstraintCastNode {
public:
CastPPNode (Node *n, const Type *t, bool carry_dependency = false)
: ConstraintCastNode(n, t, carry_dependency) {
}
! virtual uint Opcode() const;
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------CheckCastPPNode--------------------------------
// for _checkcast, cast pointer to pointer (different type), without JOIN,
*** 112,132 ****
init_req(0, c);
}
virtual Node* Identity(PhaseGVN* phase);
virtual const Type* Value(PhaseGVN* phase) const;
! virtual int Opcode() const;
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------CastX2PNode-------------------------------------
// convert a machine-pointer-sized integer to a raw pointer
class CastX2PNode : public Node {
public:
CastX2PNode( Node *n ) : Node(NULL, n) {}
! virtual int Opcode() const;
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual Node* Identity(PhaseGVN* phase);
virtual uint ideal_reg() const { return Op_RegP; }
virtual const Type *bottom_type() const { return TypeRawPtr::BOTTOM; }
--- 112,132 ----
init_req(0, c);
}
virtual Node* Identity(PhaseGVN* phase);
virtual const Type* Value(PhaseGVN* phase) const;
! virtual uint Opcode() const;
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------CastX2PNode-------------------------------------
// convert a machine-pointer-sized integer to a raw pointer
class CastX2PNode : public Node {
public:
CastX2PNode( Node *n ) : Node(NULL, n) {}
! virtual uint Opcode() const;
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual Node* Identity(PhaseGVN* phase);
virtual uint ideal_reg() const { return Op_RegP; }
virtual const Type *bottom_type() const { return TypeRawPtr::BOTTOM; }
*** 136,146 ****
// Used in both 32-bit and 64-bit land.
// Used for card-marks and unsafe pointer math.
class CastP2XNode : public Node {
public:
CastP2XNode( Node *ctrl, Node *n ) : Node(ctrl, n) {}
! virtual int Opcode() const;
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual Node* Identity(PhaseGVN* phase);
virtual uint ideal_reg() const { return Op_RegX; }
virtual const Type *bottom_type() const { return TypeX_X; }
--- 136,146 ----
// Used in both 32-bit and 64-bit land.
// Used for card-marks and unsafe pointer math.
class CastP2XNode : public Node {
public:
CastP2XNode( Node *ctrl, Node *n ) : Node(ctrl, n) {}
! virtual uint Opcode() const;
virtual const Type* Value(PhaseGVN* phase) const;
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual Node* Identity(PhaseGVN* phase);
virtual uint ideal_reg() const { return Op_RegX; }
virtual const Type *bottom_type() const { return TypeX_X; }
< prev index next >