135 ciField* field() const { return _field; } 136 const Type* element() const { return _element; } 137 bool is_rewritable() const { return _is_rewritable; } 138 bool is_volatile() const { return (_field ? _field->is_volatile() : false); } 139 int general_index() const { return (_general_index != 0) ? _general_index : _index; } 140 141 void set_rewritable(bool z) { _is_rewritable = z; } 142 void set_field(ciField* f) { 143 assert(!_field,""); 144 _field = f; 145 if (f->is_final() || f->is_stable()) { 146 // In the case of @Stable, multiple writes are possible but may be assumed to be no-ops. 147 _is_rewritable = false; 148 } 149 } 150 void set_element(const Type* e) { 151 assert(_element == NULL, ""); 152 _element = e; 153 } 154 155 void print_on(outputStream* st) PRODUCT_RETURN; 156 }; 157 158 enum { 159 logAliasCacheSize = 6, 160 AliasCacheSize = (1<<logAliasCacheSize) 161 }; 162 struct AliasCacheEntry { const TypePtr* _adr_type; int _index; }; // simple duple type 163 enum { 164 trapHistLength = MethodData::_trap_hist_limit 165 }; 166 167 // Constant entry of the constant table. 168 class Constant { 169 private: 170 BasicType _type; 171 union { 172 jvalue _value; 173 Metadata* _metadata; 174 } _v; | 135 ciField* field() const { return _field; } 136 const Type* element() const { return _element; } 137 bool is_rewritable() const { return _is_rewritable; } 138 bool is_volatile() const { return (_field ? _field->is_volatile() : false); } 139 int general_index() const { return (_general_index != 0) ? _general_index : _index; } 140 141 void set_rewritable(bool z) { _is_rewritable = z; } 142 void set_field(ciField* f) { 143 assert(!_field,""); 144 _field = f; 145 if (f->is_final() || f->is_stable()) { 146 // In the case of @Stable, multiple writes are possible but may be assumed to be no-ops. 147 _is_rewritable = false; 148 } 149 } 150 void set_element(const Type* e) { 151 assert(_element == NULL, ""); 152 _element = e; 153 } 154 155 BasicType basic_type() const; 156 157 void print_on(outputStream* st) PRODUCT_RETURN; 158 }; 159 160 enum { 161 logAliasCacheSize = 6, 162 AliasCacheSize = (1<<logAliasCacheSize) 163 }; 164 struct AliasCacheEntry { const TypePtr* _adr_type; int _index; }; // simple duple type 165 enum { 166 trapHistLength = MethodData::_trap_hist_limit 167 }; 168 169 // Constant entry of the constant table. 170 class Constant { 171 private: 172 BasicType _type; 173 union { 174 jvalue _value; 175 Metadata* _metadata; 176 } _v; |