Mercurial > hg > graal-jvmci-8
comparison src/share/vm/utilities/accessFlags.hpp @ 6100:71afdabfd05b
7168280: Eliminate the generic signature index slot from field array for field without generic signature.
Summary: Only allocate the generic signature index slot in the field array for field with generic signature attribute.
Reviewed-by: coleenp, dlong
author | jiangli |
---|---|
date | Mon, 21 May 2012 14:10:35 -0400 |
parents | e6b1331a51d2 |
children | 1d7922586cf6 |
comparison
equal
deleted
inserted
replaced
6069:03d61caacd1e | 6100:71afdabfd05b |
---|---|
78 // (e.g., ACC_ENUM). | 78 // (e.g., ACC_ENUM). |
79 // Note that the class-related ACC_ANNOTATION bit conflicts with these flags. | 79 // Note that the class-related ACC_ANNOTATION bit conflicts with these flags. |
80 JVM_ACC_FIELD_ACCESS_WATCHED = 0x00002000, // field access is watched by JVMTI | 80 JVM_ACC_FIELD_ACCESS_WATCHED = 0x00002000, // field access is watched by JVMTI |
81 JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000, // field modification is watched by JVMTI | 81 JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000, // field modification is watched by JVMTI |
82 JVM_ACC_FIELD_INTERNAL = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT | 82 JVM_ACC_FIELD_INTERNAL = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT |
83 JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature | |
83 | 84 |
84 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | | 85 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | |
85 JVM_ACC_FIELD_MODIFICATION_WATCHED | | 86 JVM_ACC_FIELD_MODIFICATION_WATCHED | |
86 JVM_ACC_FIELD_INTERNAL, | 87 JVM_ACC_FIELD_INTERNAL | |
88 JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE, | |
87 | 89 |
88 // flags accepted by set_field_flags() | 90 // flags accepted by set_field_flags() |
89 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS | 91 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS |
90 | 92 |
91 }; | 93 }; |
154 // field flags | 156 // field flags |
155 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } | 157 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } |
156 bool is_field_modification_watched() const | 158 bool is_field_modification_watched() const |
157 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } | 159 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } |
158 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } | 160 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } |
161 bool field_has_generic_signature() const | |
162 { return (_flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE) != 0; } | |
159 | 163 |
160 // get .class file flags | 164 // get .class file flags |
161 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } | 165 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } |
162 | 166 |
163 // Initialization | 167 // Initialization |
223 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); | 227 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
224 } else { | 228 } else { |
225 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); | 229 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
226 } | 230 } |
227 } | 231 } |
232 void set_field_has_generic_signature() | |
233 { | |
234 atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE); | |
235 } | |
228 | 236 |
229 // Conversion | 237 // Conversion |
230 jshort as_short() const { return (jshort)_flags; } | 238 jshort as_short() const { return (jshort)_flags; } |
231 jint as_int() const { return _flags; } | 239 jint as_int() const { return _flags; } |
232 | 240 |