< prev index next >

src/hotspot/share/c1/c1_Instruction.hpp

Print this page




 973  private:
 974   NullCheck*  _explicit_null_check;              // For explicit null check elimination
 975   NewValueTypeInstance* _vt;
 976 
 977  public:
 978   // creation
 979   LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before, bool mismatched = false)
 980   : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
 981   , _explicit_null_check(NULL), _vt(NULL) {}
 982 
 983   // accessors
 984   NullCheck* explicit_null_check() const         { return _explicit_null_check; }
 985 
 986   // setters
 987   // See LoadField::set_explicit_null_check for documentation
 988   void set_explicit_null_check(NullCheck* check) { _explicit_null_check = check; }
 989 
 990   ciType* exact_type() const;
 991   ciType* declared_type() const;
 992 
 993   NewValueTypeInstance* vt() { return _vt; }
 994   void set_vt(NewValueTypeInstance* vt) { _vt = vt; }
 995 
 996   // generic
 997   HASHING2(LoadIndexed, true, array()->subst(), index()->subst())
 998 };
 999 
1000 
1001 LEAF(StoreIndexed, AccessIndexed)
1002  private:
1003   Value       _value;
1004 
1005   ciMethod* _profiled_method;
1006   int       _profiled_bci;
1007   bool      _check_boolean;
1008 
1009  public:
1010   // creation
1011   StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before,
1012                bool check_boolean, bool mismatched = false)
1013   : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
1014   , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean)
1015   {
1016     set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object()));
1017     set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object()));




 973  private:
 974   NullCheck*  _explicit_null_check;              // For explicit null check elimination
 975   NewValueTypeInstance* _vt;
 976 
 977  public:
 978   // creation
 979   LoadIndexed(Value array, Value index, Value length, BasicType elt_type, ValueStack* state_before, bool mismatched = false)
 980   : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
 981   , _explicit_null_check(NULL), _vt(NULL) {}
 982 
 983   // accessors
 984   NullCheck* explicit_null_check() const         { return _explicit_null_check; }
 985 
 986   // setters
 987   // See LoadField::set_explicit_null_check for documentation
 988   void set_explicit_null_check(NullCheck* check) { _explicit_null_check = check; }
 989 
 990   ciType* exact_type() const;
 991   ciType* declared_type() const;
 992 
 993   NewValueTypeInstance* vt() const { return _vt; }
 994   void set_vt(NewValueTypeInstance* vt) { _vt = vt; }
 995 
 996   // generic
 997   HASHING3(LoadIndexed, true, array()->subst(), index()->subst(), vt())
 998 };
 999 
1000 
1001 LEAF(StoreIndexed, AccessIndexed)
1002  private:
1003   Value       _value;
1004 
1005   ciMethod* _profiled_method;
1006   int       _profiled_bci;
1007   bool      _check_boolean;
1008 
1009  public:
1010   // creation
1011   StoreIndexed(Value array, Value index, Value length, BasicType elt_type, Value value, ValueStack* state_before,
1012                bool check_boolean, bool mismatched = false)
1013   : AccessIndexed(array, index, length, elt_type, state_before, mismatched)
1014   , _value(value), _profiled_method(NULL), _profiled_bci(0), _check_boolean(check_boolean)
1015   {
1016     set_flag(NeedsWriteBarrierFlag, (as_ValueType(elt_type)->is_object()));
1017     set_flag(NeedsStoreCheckFlag, (as_ValueType(elt_type)->is_object()));


< prev index next >