263 public final int prototypeMarkWordOffset = getFieldOffset("Klass::_prototype_header", Integer.class, "markOop"); 264 public final int subklassOffset = getFieldOffset("Klass::_subklass", Integer.class, "Klass*"); 265 public final int nextSiblingOffset = getFieldOffset("Klass::_next_sibling", Integer.class, "Klass*"); 266 public final int superCheckOffsetOffset = getFieldOffset("Klass::_super_check_offset", Integer.class, "juint"); 267 public final int secondarySuperCacheOffset = getFieldOffset("Klass::_secondary_super_cache", Integer.class, "Klass*"); 268 public final int secondarySupersOffset = getFieldOffset("Klass::_secondary_supers", Integer.class, "Array<Klass*>*"); 269 270 public final boolean classMirrorIsHandle; 271 public final int classMirrorOffset; 272 { 273 String name = "Klass::_java_mirror"; 274 int offset = -1; 275 boolean isHandle = false; 276 try { 277 offset = getFieldOffset(name, Integer.class, "oop"); 278 } catch (JVMCIError e) { 279 280 } 281 if (offset == -1) { 282 try { 283 offset = getFieldOffset(name, Integer.class, "jobject"); 284 isHandle = true; 285 } catch (JVMCIError e) { 286 287 } 288 } 289 if (offset == -1) { 290 throw new JVMCIError("cannot get offset of field " + name + " with type oop or jobject"); 291 } 292 classMirrorOffset = offset; 293 classMirrorIsHandle = isHandle; 294 } 295 296 public final int klassSuperKlassOffset = getFieldOffset("Klass::_super", Integer.class, "Klass*"); 297 public final int klassModifierFlagsOffset = getFieldOffset("Klass::_modifier_flags", Integer.class, "jint"); 298 public final int klassAccessFlagsOffset = getFieldOffset("Klass::_access_flags", Integer.class, "AccessFlags"); 299 public final int klassLayoutHelperOffset = getFieldOffset("Klass::_layout_helper", Integer.class, "jint"); 300 301 public final int klassLayoutHelperNeutralValue = getConstant("Klass::_lh_neutral_value", Integer.class); 302 public final int layoutHelperLog2ElementSizeShift = getConstant("Klass::_lh_log2_element_size_shift", Integer.class); 303 public final int layoutHelperLog2ElementSizeMask = getConstant("Klass::_lh_log2_element_size_mask", Integer.class); 304 public final int layoutHelperElementTypeShift = getConstant("Klass::_lh_element_type_shift", Integer.class); 305 public final int layoutHelperElementTypeMask = getConstant("Klass::_lh_element_type_mask", Integer.class); 306 public final int layoutHelperHeaderSizeShift = getConstant("Klass::_lh_header_size_shift", Integer.class); 307 public final int layoutHelperHeaderSizeMask = getConstant("Klass::_lh_header_size_mask", Integer.class); 308 public final int layoutHelperArrayTagShift = getConstant("Klass::_lh_array_tag_shift", Integer.class); 309 public final int layoutHelperArrayTagTypeValue = getConstant("Klass::_lh_array_tag_type_value", Integer.class); 310 public final int layoutHelperArrayTagObjectValue = getConstant("Klass::_lh_array_tag_obj_value", Integer.class); | 263 public final int prototypeMarkWordOffset = getFieldOffset("Klass::_prototype_header", Integer.class, "markOop"); 264 public final int subklassOffset = getFieldOffset("Klass::_subklass", Integer.class, "Klass*"); 265 public final int nextSiblingOffset = getFieldOffset("Klass::_next_sibling", Integer.class, "Klass*"); 266 public final int superCheckOffsetOffset = getFieldOffset("Klass::_super_check_offset", Integer.class, "juint"); 267 public final int secondarySuperCacheOffset = getFieldOffset("Klass::_secondary_super_cache", Integer.class, "Klass*"); 268 public final int secondarySupersOffset = getFieldOffset("Klass::_secondary_supers", Integer.class, "Array<Klass*>*"); 269 270 public final boolean classMirrorIsHandle; 271 public final int classMirrorOffset; 272 { 273 String name = "Klass::_java_mirror"; 274 int offset = -1; 275 boolean isHandle = false; 276 try { 277 offset = getFieldOffset(name, Integer.class, "oop"); 278 } catch (JVMCIError e) { 279 280 } 281 if (offset == -1) { 282 try { 283 offset = getFieldOffset(name, Integer.class, "OopHandle"); 284 isHandle = true; 285 } catch (JVMCIError e) { 286 287 } 288 } 289 if (offset == -1) { 290 throw new JVMCIError("cannot get offset of field " + name + " with type oop or OopHandle"); 291 } 292 classMirrorOffset = offset; 293 classMirrorIsHandle = isHandle; 294 } 295 296 public final int klassSuperKlassOffset = getFieldOffset("Klass::_super", Integer.class, "Klass*"); 297 public final int klassModifierFlagsOffset = getFieldOffset("Klass::_modifier_flags", Integer.class, "jint"); 298 public final int klassAccessFlagsOffset = getFieldOffset("Klass::_access_flags", Integer.class, "AccessFlags"); 299 public final int klassLayoutHelperOffset = getFieldOffset("Klass::_layout_helper", Integer.class, "jint"); 300 301 public final int klassLayoutHelperNeutralValue = getConstant("Klass::_lh_neutral_value", Integer.class); 302 public final int layoutHelperLog2ElementSizeShift = getConstant("Klass::_lh_log2_element_size_shift", Integer.class); 303 public final int layoutHelperLog2ElementSizeMask = getConstant("Klass::_lh_log2_element_size_mask", Integer.class); 304 public final int layoutHelperElementTypeShift = getConstant("Klass::_lh_element_type_shift", Integer.class); 305 public final int layoutHelperElementTypeMask = getConstant("Klass::_lh_element_type_mask", Integer.class); 306 public final int layoutHelperHeaderSizeShift = getConstant("Klass::_lh_header_size_shift", Integer.class); 307 public final int layoutHelperHeaderSizeMask = getConstant("Klass::_lh_header_size_mask", Integer.class); 308 public final int layoutHelperArrayTagShift = getConstant("Klass::_lh_array_tag_shift", Integer.class); 309 public final int layoutHelperArrayTagTypeValue = getConstant("Klass::_lh_array_tag_type_value", Integer.class); 310 public final int layoutHelperArrayTagObjectValue = getConstant("Klass::_lh_array_tag_obj_value", Integer.class); |