comparison src/share/vm/ci/ciInstanceKlass.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents 52fed2ec0afb
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
33 friend class ciMethod; 33 friend class ciMethod;
34 friend class ciField; 34 friend class ciField;
35 friend class ciBytecodeStream; 35 friend class ciBytecodeStream;
36 36
37 private: 37 private:
38 bool _is_shared;
39
40 jobject _loader; 38 jobject _loader;
41 jobject _protection_domain; 39 jobject _protection_domain;
42 40
41 bool _is_shared;
43 bool _is_initialized; 42 bool _is_initialized;
44 bool _is_linked; 43 bool _is_linked;
45 bool _has_finalizer; 44 bool _has_finalizer;
46 bool _has_subklass; 45 bool _has_subklass;
46 bool _has_nonstatic_fields;
47
47 ciFlags _flags; 48 ciFlags _flags;
48 jint _nonstatic_field_size; 49 jint _nonstatic_field_size;
49 jint _nonstatic_oop_map_size; 50 jint _nonstatic_oop_map_size;
50 51
51 // Lazy fields get filled in only upon request. 52 // Lazy fields get filled in only upon request.
130 >> LogHeapWordSize); 131 >> LogHeapWordSize);
131 } 132 }
132 jint nonstatic_field_size() { 133 jint nonstatic_field_size() {
133 assert(is_loaded(), "must be loaded"); 134 assert(is_loaded(), "must be loaded");
134 return _nonstatic_field_size; } 135 return _nonstatic_field_size; }
136 jint has_nonstatic_fields() {
137 assert(is_loaded(), "must be loaded");
138 return _has_nonstatic_fields; }
135 jint nonstatic_oop_map_size() { 139 jint nonstatic_oop_map_size() {
136 assert(is_loaded(), "must be loaded"); 140 assert(is_loaded(), "must be loaded");
137 return _nonstatic_oop_map_size; } 141 return _nonstatic_oop_map_size; }
138 ciInstanceKlass* super(); 142 ciInstanceKlass* super();
139 jint nof_implementors() { 143 jint nof_implementors() {
162 166
163 ciInstanceKlass* unique_concrete_subklass(); 167 ciInstanceKlass* unique_concrete_subklass();
164 bool has_finalizable_subclass(); 168 bool has_finalizable_subclass();
165 169
166 bool contains_field_offset(int offset) { 170 bool contains_field_offset(int offset) {
167 return (offset/wordSize) >= instanceOopDesc::header_size() 171 return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size());
168 && (offset/wordSize)-instanceOopDesc::header_size() < nonstatic_field_size();
169 } 172 }
170 173
171 // Get the instance of java.lang.Class corresponding to 174 // Get the instance of java.lang.Class corresponding to
172 // this klass. This instance is used for locking of 175 // this klass. This instance is used for locking of
173 // synchronized static methods of this klass. 176 // synchronized static methods of this klass.