< prev index next >
src/share/vm/opto/intrinsicnode.hpp
Print this page
*** 35,45 ****
// hit (cache is checked with exposed code in gen_subtype_check()). Return
// not zero for a miss or zero for a hit.
class PartialSubtypeCheckNode : public Node {
public:
PartialSubtypeCheckNode(Node* c, Node* sub, Node* super) : Node(c,sub,super) {}
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeRawPtr::BOTTOM; }
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------StrIntrinsic-------------------------------
--- 35,45 ----
// hit (cache is checked with exposed code in gen_subtype_check()). Return
// not zero for a miss or zero for a hit.
class PartialSubtypeCheckNode : public Node {
public:
PartialSubtypeCheckNode(Node* c, Node* sub, Node* super) : Node(c,sub,super) {}
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeRawPtr::BOTTOM; }
virtual uint ideal_reg() const { return Op_RegP; }
};
//------------------------------StrIntrinsic-------------------------------
*** 85,135 ****
class StrCompNode: public StrIntrinsicNode {
public:
StrCompNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//------------------------------StrEquals-------------------------------------
class StrEqualsNode: public StrIntrinsicNode {
public:
StrEqualsNode(Node* control, Node* char_array_mem,
Node* s1, Node* s2, Node* c, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, s2, c, encoding) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------StrIndexOf-------------------------------------
class StrIndexOfNode: public StrIntrinsicNode {
public:
StrIndexOfNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//------------------------------StrIndexOfChar-------------------------------------
class StrIndexOfCharNode: public StrIntrinsicNode {
public:
StrIndexOfCharNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* c, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, c, encoding) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//--------------------------StrCompressedCopy-------------------------------
class StrCompressedCopyNode: public StrIntrinsicNode {
public:
StrCompressedCopyNode(Node* control, Node* arymem,
Node* s1, Node* s2, Node* c):
StrIntrinsicNode(control, arymem, s1, s2, c, none) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
};
--- 85,135 ----
class StrCompNode: public StrIntrinsicNode {
public:
StrCompNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//------------------------------StrEquals-------------------------------------
class StrEqualsNode: public StrIntrinsicNode {
public:
StrEqualsNode(Node* control, Node* char_array_mem,
Node* s1, Node* s2, Node* c, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, s2, c, encoding) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------StrIndexOf-------------------------------------
class StrIndexOfNode: public StrIntrinsicNode {
public:
StrIndexOfNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//------------------------------StrIndexOfChar-------------------------------------
class StrIndexOfCharNode: public StrIntrinsicNode {
public:
StrIndexOfCharNode(Node* control, Node* char_array_mem,
Node* s1, Node* c1, Node* c, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, c1, c, encoding) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
};
//--------------------------StrCompressedCopy-------------------------------
class StrCompressedCopyNode: public StrIntrinsicNode {
public:
StrCompressedCopyNode(Node* control, Node* arymem,
Node* s1, Node* s2, Node* c):
StrIntrinsicNode(control, arymem, s1, s2, c, none) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::INT; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
};
*** 137,147 ****
class StrInflatedCopyNode: public StrIntrinsicNode {
public:
StrInflatedCopyNode(Node* control, Node* arymem,
Node* s1, Node* s2, Node* c):
StrIntrinsicNode(control, arymem, s1, s2, c, none) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return Type::MEMORY; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
};
--- 137,147 ----
class StrInflatedCopyNode: public StrIntrinsicNode {
public:
StrInflatedCopyNode(Node* control, Node* arymem,
Node* s1, Node* s2, Node* c):
StrIntrinsicNode(control, arymem, s1, s2, c, none) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return Type::MEMORY; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
};
*** 149,178 ****
class AryEqNode: public StrIntrinsicNode {
public:
AryEqNode(Node* control, Node* char_array_mem,
Node* s1, Node* s2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, s2, encoding) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------HasNegatives---------------------------------
class HasNegativesNode: public StrIntrinsicNode {
public:
HasNegativesNode(Node* control, Node* char_array_mem, Node* s1, Node* c1):
StrIntrinsicNode(control, char_array_mem, s1, c1, none) {};
! virtual int Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------EncodeISOArray--------------------------------
// encode char[] to byte[] in ISO_8859_1
class EncodeISOArrayNode: public Node {
public:
EncodeISOArrayNode(Node* control, Node* arymem, Node* s1, Node* s2, Node* c): Node(control, arymem, s1, s2, c) {};
! virtual int Opcode() const;
virtual bool depends_only_on_test() const { return false; }
virtual const Type* bottom_type() const { return TypeInt::INT; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual uint match_edge(uint idx) const;
virtual uint ideal_reg() const { return Op_RegI; }
--- 149,178 ----
class AryEqNode: public StrIntrinsicNode {
public:
AryEqNode(Node* control, Node* char_array_mem,
Node* s1, Node* s2, ArgEncoding encoding):
StrIntrinsicNode(control, char_array_mem, s1, s2, encoding) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------HasNegatives---------------------------------
class HasNegativesNode: public StrIntrinsicNode {
public:
HasNegativesNode(Node* control, Node* char_array_mem, Node* s1, Node* c1):
StrIntrinsicNode(control, char_array_mem, s1, c1, none) {};
! virtual uint Opcode() const;
virtual const Type* bottom_type() const { return TypeInt::BOOL; }
};
//------------------------------EncodeISOArray--------------------------------
// encode char[] to byte[] in ISO_8859_1
class EncodeISOArrayNode: public Node {
public:
EncodeISOArrayNode(Node* control, Node* arymem, Node* s1, Node* s2, Node* c): Node(control, arymem, s1, s2, c) {};
! virtual uint Opcode() const;
virtual bool depends_only_on_test() const { return false; }
virtual const Type* bottom_type() const { return TypeInt::INT; }
virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
virtual uint match_edge(uint idx) const;
virtual uint ideal_reg() const { return Op_RegI; }
< prev index next >