< prev index next >

src/share/vm/opto/intrinsicnode.hpp

Print this page




  60   StrIntrinsicNode(Node* control, Node* char_array_mem,
  61                    Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
  62   Node(control, char_array_mem, s1, c1, s2, c2), _encoding(encoding) {
  63   }
  64 
  65   StrIntrinsicNode(Node* control, Node* char_array_mem,
  66                    Node* s1, Node* s2, Node* c, ArgEncoding encoding):
  67   Node(control, char_array_mem, s1, s2, c), _encoding(encoding) {
  68   }
  69 
  70   StrIntrinsicNode(Node* control, Node* char_array_mem,
  71                    Node* s1, Node* s2, ArgEncoding encoding):
  72   Node(control, char_array_mem, s1, s2), _encoding(encoding) {
  73   }
  74 
  75   virtual bool depends_only_on_test() const { return false; }
  76   virtual const TypePtr* adr_type() const { return TypeAryPtr::BYTES; }
  77   virtual uint match_edge(uint idx) const;
  78   virtual uint ideal_reg() const { return Op_RegI; }
  79   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
  80   virtual const Type* Value(PhaseTransform* phase) const;
  81   ArgEncoding encoding() const { return _encoding; }
  82 };
  83 
  84 //------------------------------StrComp-------------------------------------
  85 class StrCompNode: public StrIntrinsicNode {
  86  public:
  87   StrCompNode(Node* control, Node* char_array_mem,
  88               Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
  89   StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
  90   virtual int Opcode() const;
  91   virtual const Type* bottom_type() const { return TypeInt::INT; }
  92 };
  93 
  94 //------------------------------StrEquals-------------------------------------
  95 class StrEqualsNode: public StrIntrinsicNode {
  96  public:
  97   StrEqualsNode(Node* control, Node* char_array_mem,
  98                 Node* s1, Node* s2, Node* c, ArgEncoding encoding):
  99   StrIntrinsicNode(control, char_array_mem, s1, s2, c, encoding) {};
 100   virtual int Opcode() const;


 160  public:
 161   HasNegativesNode(Node* control, Node* char_array_mem, Node* s1, Node* c1):
 162   StrIntrinsicNode(control, char_array_mem, s1, c1, none) {};
 163   virtual int Opcode() const;
 164   virtual const Type* bottom_type() const { return TypeInt::BOOL; }
 165 };
 166 
 167 
 168 //------------------------------EncodeISOArray--------------------------------
 169 // encode char[] to byte[] in ISO_8859_1
 170 class EncodeISOArrayNode: public Node {
 171  public:
 172   EncodeISOArrayNode(Node* control, Node* arymem, Node* s1, Node* s2, Node* c): Node(control, arymem, s1, s2, c) {};
 173   virtual int Opcode() const;
 174   virtual bool depends_only_on_test() const { return false; }
 175   virtual const Type* bottom_type() const { return TypeInt::INT; }
 176   virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
 177   virtual uint match_edge(uint idx) const;
 178   virtual uint ideal_reg() const { return Op_RegI; }
 179   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
 180   virtual const Type* Value(PhaseTransform* phase) const;
 181 };
 182 
 183 #endif // SHARE_VM_OPTO_INTRINSICNODE_HPP


  60   StrIntrinsicNode(Node* control, Node* char_array_mem,
  61                    Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
  62   Node(control, char_array_mem, s1, c1, s2, c2), _encoding(encoding) {
  63   }
  64 
  65   StrIntrinsicNode(Node* control, Node* char_array_mem,
  66                    Node* s1, Node* s2, Node* c, ArgEncoding encoding):
  67   Node(control, char_array_mem, s1, s2, c), _encoding(encoding) {
  68   }
  69 
  70   StrIntrinsicNode(Node* control, Node* char_array_mem,
  71                    Node* s1, Node* s2, ArgEncoding encoding):
  72   Node(control, char_array_mem, s1, s2), _encoding(encoding) {
  73   }
  74 
  75   virtual bool depends_only_on_test() const { return false; }
  76   virtual const TypePtr* adr_type() const { return TypeAryPtr::BYTES; }
  77   virtual uint match_edge(uint idx) const;
  78   virtual uint ideal_reg() const { return Op_RegI; }
  79   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
  80   virtual const Type* Value(PhaseGVN* phase) const;
  81   ArgEncoding encoding() const { return _encoding; }
  82 };
  83 
  84 //------------------------------StrComp-------------------------------------
  85 class StrCompNode: public StrIntrinsicNode {
  86  public:
  87   StrCompNode(Node* control, Node* char_array_mem,
  88               Node* s1, Node* c1, Node* s2, Node* c2, ArgEncoding encoding):
  89   StrIntrinsicNode(control, char_array_mem, s1, c1, s2, c2, encoding) {};
  90   virtual int Opcode() const;
  91   virtual const Type* bottom_type() const { return TypeInt::INT; }
  92 };
  93 
  94 //------------------------------StrEquals-------------------------------------
  95 class StrEqualsNode: public StrIntrinsicNode {
  96  public:
  97   StrEqualsNode(Node* control, Node* char_array_mem,
  98                 Node* s1, Node* s2, Node* c, ArgEncoding encoding):
  99   StrIntrinsicNode(control, char_array_mem, s1, s2, c, encoding) {};
 100   virtual int Opcode() const;


 160  public:
 161   HasNegativesNode(Node* control, Node* char_array_mem, Node* s1, Node* c1):
 162   StrIntrinsicNode(control, char_array_mem, s1, c1, none) {};
 163   virtual int Opcode() const;
 164   virtual const Type* bottom_type() const { return TypeInt::BOOL; }
 165 };
 166 
 167 
 168 //------------------------------EncodeISOArray--------------------------------
 169 // encode char[] to byte[] in ISO_8859_1
 170 class EncodeISOArrayNode: public Node {
 171  public:
 172   EncodeISOArrayNode(Node* control, Node* arymem, Node* s1, Node* s2, Node* c): Node(control, arymem, s1, s2, c) {};
 173   virtual int Opcode() const;
 174   virtual bool depends_only_on_test() const { return false; }
 175   virtual const Type* bottom_type() const { return TypeInt::INT; }
 176   virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
 177   virtual uint match_edge(uint idx) const;
 178   virtual uint ideal_reg() const { return Op_RegI; }
 179   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
 180   virtual const Type* Value(PhaseGVN* phase) const;
 181 };
 182 
 183 #endif // SHARE_VM_OPTO_INTRINSICNODE_HPP
< prev index next >