< prev index next >

src/share/vm/opto/intrinsicnode.hpp

Print this page

        

*** 35,47 **** // 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------------------------------- // Base class for Ideal nodes used in String intrinsic code. class StrIntrinsicNode: public Node { --- 35,47 ---- // 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 Opcodes Opcode() const; virtual const Type* bottom_type() const { return TypeRawPtr::BOTTOM; } ! virtual Opcodes ideal_reg() const { return Opcodes::Op_RegP; } }; //------------------------------StrIntrinsic------------------------------- // Base class for Ideal nodes used in String intrinsic code. class StrIntrinsicNode: public Node {
*** 73,83 **** } virtual bool depends_only_on_test() const { return false; } virtual const TypePtr* adr_type() const { return TypeAryPtr::BYTES; } virtual uint match_edge(uint idx) const; ! virtual uint ideal_reg() const { return Op_RegI; } virtual Node* Ideal(PhaseGVN* phase, bool can_reshape); virtual const Type* Value(PhaseGVN* phase) const; ArgEncoding encoding() const { return _encoding; } }; --- 73,83 ---- } virtual bool depends_only_on_test() const { return false; } virtual const TypePtr* adr_type() const { return TypeAryPtr::BYTES; } virtual uint match_edge(uint idx) const; ! virtual Opcodes ideal_reg() const { return Opcodes::Op_RegI; } virtual Node* Ideal(PhaseGVN* phase, bool can_reshape); virtual const Type* Value(PhaseGVN* phase) const; ArgEncoding encoding() const { return _encoding; } };
*** 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 Opcodes 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 Opcodes 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 Opcodes 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 Opcodes 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 Opcodes 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 Opcodes 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,183 **** 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; } virtual Node* Ideal(PhaseGVN* phase, bool can_reshape); virtual const Type* Value(PhaseGVN* phase) const; }; #endif // SHARE_VM_OPTO_INTRINSICNODE_HPP --- 149,183 ---- 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 Opcodes 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 Opcodes 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 Opcodes 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 Opcodes ideal_reg() const { return Opcodes::Op_RegI; } virtual Node* Ideal(PhaseGVN* phase, bool can_reshape); virtual const Type* Value(PhaseGVN* phase) const; }; #endif // SHARE_VM_OPTO_INTRINSICNODE_HPP
< prev index next >