196 ciField* field() const { return _field; } 197 const Type* element() const { return _element; } 198 bool is_rewritable() const { return _is_rewritable; } 199 bool is_volatile() const { return (_field ? _field->is_volatile() : false); } 200 int general_index() const { return (_general_index != 0) ? _general_index : _index; } 201 202 void set_rewritable(bool z) { _is_rewritable = z; } 203 void set_field(ciField* f) { 204 assert(!_field,""); 205 _field = f; 206 if (f->is_final() || f->is_stable()) { 207 // In the case of @Stable, multiple writes are possible but may be assumed to be no-ops. 208 _is_rewritable = false; 209 } 210 } 211 void set_element(const Type* e) { 212 assert(_element == NULL, ""); 213 _element = e; 214 } 215 216 void print_on(outputStream* st) PRODUCT_RETURN; 217 }; 218 219 enum { 220 logAliasCacheSize = 6, 221 AliasCacheSize = (1<<logAliasCacheSize) 222 }; 223 struct AliasCacheEntry { const TypePtr* _adr_type; int _index; }; // simple duple type 224 enum { 225 trapHistLength = MethodData::_trap_hist_limit 226 }; 227 228 // Constant entry of the constant table. 229 class Constant { 230 private: 231 BasicType _type; 232 union { 233 jvalue _value; 234 Metadata* _metadata; 235 } _v; | 196 ciField* field() const { return _field; } 197 const Type* element() const { return _element; } 198 bool is_rewritable() const { return _is_rewritable; } 199 bool is_volatile() const { return (_field ? _field->is_volatile() : false); } 200 int general_index() const { return (_general_index != 0) ? _general_index : _index; } 201 202 void set_rewritable(bool z) { _is_rewritable = z; } 203 void set_field(ciField* f) { 204 assert(!_field,""); 205 _field = f; 206 if (f->is_final() || f->is_stable()) { 207 // In the case of @Stable, multiple writes are possible but may be assumed to be no-ops. 208 _is_rewritable = false; 209 } 210 } 211 void set_element(const Type* e) { 212 assert(_element == NULL, ""); 213 _element = e; 214 } 215 216 BasicType basic_type() const; 217 218 void print_on(outputStream* st) PRODUCT_RETURN; 219 }; 220 221 enum { 222 logAliasCacheSize = 6, 223 AliasCacheSize = (1<<logAliasCacheSize) 224 }; 225 struct AliasCacheEntry { const TypePtr* _adr_type; int _index; }; // simple duple type 226 enum { 227 trapHistLength = MethodData::_trap_hist_limit 228 }; 229 230 // Constant entry of the constant table. 231 class Constant { 232 private: 233 BasicType _type; 234 union { 235 jvalue _value; 236 Metadata* _metadata; 237 } _v; |