206 public final int stackReservedPages = getFlag("StackReservedPages", Integer.class, 0); |
206 public final int stackReservedPages = getFlag("StackReservedPages", Integer.class, 0); |
207 public final boolean useStackBanging = getFlag("UseStackBanging", Boolean.class); |
207 public final boolean useStackBanging = getFlag("UseStackBanging", Boolean.class); |
208 public final int stackBias = getConstant("STACK_BIAS", Integer.class); |
208 public final int stackBias = getConstant("STACK_BIAS", Integer.class); |
209 public final int vmPageSize = getFieldValue("CompilerToVM::Data::vm_page_size", Integer.class, "int"); |
209 public final int vmPageSize = getFieldValue("CompilerToVM::Data::vm_page_size", Integer.class, "int"); |
210 |
210 |
211 public final int markOffset = getFieldOffset("oopDesc::_mark", Integer.class, "markOop"); |
211 public final int markOffset = getFieldOffset("oopDesc::_mark", Integer.class, "markWord"); |
212 public final int hubOffset = getFieldOffset("oopDesc::_metadata._klass", Integer.class, "Klass*"); |
212 public final int hubOffset = getFieldOffset("oopDesc::_metadata._klass", Integer.class, "Klass*"); |
213 |
213 |
214 public final int prototypeMarkWordOffset = getFieldOffset("Klass::_prototype_header", Integer.class, "markOop"); |
214 public final int prototypeMarkWordOffset = getFieldOffset("Klass::_prototype_header", Integer.class, "markWord"); |
215 public final int subklassOffset = getFieldOffset("Klass::_subklass", Integer.class, "Klass*"); |
215 public final int subklassOffset = getFieldOffset("Klass::_subklass", Integer.class, "Klass*"); |
216 public final int nextSiblingOffset = getFieldOffset("Klass::_next_sibling", Integer.class, "Klass*"); |
216 public final int nextSiblingOffset = getFieldOffset("Klass::_next_sibling", Integer.class, "Klass*"); |
217 public final int superCheckOffsetOffset = getFieldOffset("Klass::_super_check_offset", Integer.class, "juint"); |
217 public final int superCheckOffsetOffset = getFieldOffset("Klass::_super_check_offset", Integer.class, "juint"); |
218 public final int secondarySuperCacheOffset = getFieldOffset("Klass::_secondary_super_cache", Integer.class, "Klass*"); |
218 public final int secondarySuperCacheOffset = getFieldOffset("Klass::_secondary_super_cache", Integer.class, "Klass*"); |
219 public final int secondarySupersOffset = getFieldOffset("Klass::_secondary_supers", Integer.class, "Array<Klass*>*"); |
219 public final int secondarySupersOffset = getFieldOffset("Klass::_secondary_supers", Integer.class, "Array<Klass*>*"); |
443 public final int frameInterpreterFrameSenderSpOffset = getConstant("frame::interpreter_frame_sender_sp_offset", Integer.class, intRequiredOnAMD64); |
443 public final int frameInterpreterFrameSenderSpOffset = getConstant("frame::interpreter_frame_sender_sp_offset", Integer.class, intRequiredOnAMD64); |
444 public final int frameInterpreterFrameLastSpOffset = getConstant("frame::interpreter_frame_last_sp_offset", Integer.class, intRequiredOnAMD64); |
444 public final int frameInterpreterFrameLastSpOffset = getConstant("frame::interpreter_frame_last_sp_offset", Integer.class, intRequiredOnAMD64); |
445 |
445 |
446 public final int osThreadInterruptedOffset = getFieldOffset("OSThread::_interrupted", Integer.class, "jint"); |
446 public final int osThreadInterruptedOffset = getFieldOffset("OSThread::_interrupted", Integer.class, "jint"); |
447 |
447 |
448 public final long markOopDescHashShift = getConstant("markOopDesc::hash_shift", Long.class); |
448 public final long markWordHashShift = getConstant("markWord::hash_shift", Long.class); |
449 |
449 |
450 public final int biasedLockMaskInPlace = getConstant("markOopDesc::biased_lock_mask_in_place", Integer.class); |
450 public final int biasedLockMaskInPlace = getConstant("markWord::biased_lock_mask_in_place", Integer.class); |
451 public final int ageMaskInPlace = getConstant("markOopDesc::age_mask_in_place", Integer.class); |
451 public final int ageMaskInPlace = getConstant("markWord::age_mask_in_place", Integer.class); |
452 public final int epochMaskInPlace = getConstant("markOopDesc::epoch_mask_in_place", Integer.class); |
452 public final int epochMaskInPlace = getConstant("markWord::epoch_mask_in_place", Integer.class); |
453 public final long markOopDescHashMask = getConstant("markOopDesc::hash_mask", Long.class); |
453 public final long markWordHashMask = getConstant("markWord::hash_mask", Long.class); |
454 public final long markOopDescHashMaskInPlace = getConstant("markOopDesc::hash_mask_in_place", Long.class); |
454 public final long markWordHashMaskInPlace = getConstant("markWord::hash_mask_in_place", Long.class); |
455 |
455 |
456 public final int unlockedMask = getConstant("markOopDesc::unlocked_value", Integer.class); |
456 public final int unlockedMask = getConstant("markWord::unlocked_value", Integer.class); |
457 public final int monitorMask = getConstant("markOopDesc::monitor_value", Integer.class, -1); |
457 public final int monitorMask = getConstant("markWord::monitor_value", Integer.class, -1); |
458 public final int biasedLockPattern = getConstant("markOopDesc::biased_lock_pattern", Integer.class); |
458 public final int biasedLockPattern = getConstant("markWord::biased_lock_pattern", Integer.class); |
459 |
459 |
460 // This field has no type in vmStructs.cpp |
460 // This field has no type in vmStructs.cpp |
461 public final int objectMonitorOwner = getFieldOffset("ObjectMonitor::_owner", Integer.class, null, -1); |
461 public final int objectMonitorOwner = getFieldOffset("ObjectMonitor::_owner", Integer.class, null, -1); |
462 public final int objectMonitorRecursions = getFieldOffset("ObjectMonitor::_recursions", Integer.class, "intptr_t", -1); |
462 public final int objectMonitorRecursions = getFieldOffset("ObjectMonitor::_recursions", Integer.class, "intptr_t", -1); |
463 public final int objectMonitorCxq = getFieldOffset("ObjectMonitor::_cxq", Integer.class, "ObjectWaiter*", -1); |
463 public final int objectMonitorCxq = getFieldOffset("ObjectMonitor::_cxq", Integer.class, "ObjectWaiter*", -1); |
464 public final int objectMonitorEntryList = getFieldOffset("ObjectMonitor::_EntryList", Integer.class, "ObjectWaiter*", -1); |
464 public final int objectMonitorEntryList = getFieldOffset("ObjectMonitor::_EntryList", Integer.class, "ObjectWaiter*", -1); |
465 public final int objectMonitorSucc = getFieldOffset("ObjectMonitor::_succ", Integer.class, "Thread*", -1); |
465 public final int objectMonitorSucc = getFieldOffset("ObjectMonitor::_succ", Integer.class, "Thread*", -1); |
466 |
466 |
467 public final int markWordNoHashInPlace = getConstant("markOopDesc::no_hash_in_place", Integer.class); |
467 public final int markWordNoHashInPlace = getConstant("markWord::no_hash_in_place", Integer.class); |
468 public final int markWordNoLockInPlace = getConstant("markOopDesc::no_lock_in_place", Integer.class); |
468 public final int markWordNoLockInPlace = getConstant("markWord::no_lock_in_place", Integer.class); |
469 |
469 |
470 /** |
470 /** |
471 * See {@code markOopDesc::prototype()}. |
471 * See {@code markWord::prototype()}. |
472 */ |
472 */ |
473 public long arrayPrototypeMarkWord() { |
473 public long arrayPrototypeMarkWord() { |
474 return markWordNoHashInPlace | markWordNoLockInPlace; |
474 return markWordNoHashInPlace | markWordNoLockInPlace; |
475 } |
475 } |
476 |
476 |
477 /** |
477 /** |
478 * See {@code markOopDesc::copy_set_hash()}. |
478 * See {@code markWord::copy_set_hash()}. |
479 */ |
479 */ |
480 public long tlabIntArrayMarkWord() { |
480 public long tlabIntArrayMarkWord() { |
481 long tmp = arrayPrototypeMarkWord() & (~markOopDescHashMaskInPlace); |
481 long tmp = arrayPrototypeMarkWord() & (~markWordHashMaskInPlace); |
482 tmp |= ((0x2 & markOopDescHashMask) << markOopDescHashShift); |
482 tmp |= ((0x2 & markWordHashMask) << markWordHashShift); |
483 return tmp; |
483 return tmp; |
484 } |
484 } |
485 |
485 |
486 /** |
486 /** |
487 * Mark word right shift to get identity hash code. |
487 * Mark word right shift to get identity hash code. |
488 */ |
488 */ |
489 public final int identityHashCodeShift = getConstant("markOopDesc::hash_shift", Integer.class); |
489 public final int identityHashCodeShift = getConstant("markWord::hash_shift", Integer.class); |
490 |
490 |
491 /** |
491 /** |
492 * Identity hash code value when uninitialized. |
492 * Identity hash code value when uninitialized. |
493 */ |
493 */ |
494 public final int uninitializedIdentityHashCodeValue = getConstant("markOopDesc::no_hash", Integer.class); |
494 public final int uninitializedIdentityHashCodeValue = getConstant("markWord::no_hash", Integer.class); |
495 |
495 |
496 public final int methodAccessFlagsOffset = getFieldOffset("Method::_access_flags", Integer.class, "AccessFlags"); |
496 public final int methodAccessFlagsOffset = getFieldOffset("Method::_access_flags", Integer.class, "AccessFlags"); |
497 public final int methodConstMethodOffset = getFieldOffset("Method::_constMethod", Integer.class, "ConstMethod*"); |
497 public final int methodConstMethodOffset = getFieldOffset("Method::_constMethod", Integer.class, "ConstMethod*"); |
498 public final int methodIntrinsicIdOffset = versioned.methodIntrinsicIdOffset; |
498 public final int methodIntrinsicIdOffset = versioned.methodIntrinsicIdOffset; |
499 public final int methodFlagsOffset = versioned.methodFlagsOffset; |
499 public final int methodFlagsOffset = versioned.methodFlagsOffset; |
563 |
563 |
564 public final int klassOffset = getFieldValue("java_lang_Class::_klass_offset", Integer.class, "int"); |
564 public final int klassOffset = getFieldValue("java_lang_Class::_klass_offset", Integer.class, "int"); |
565 public final int arrayKlassOffset = getFieldValue("java_lang_Class::_array_klass_offset", Integer.class, "int"); |
565 public final int arrayKlassOffset = getFieldValue("java_lang_Class::_array_klass_offset", Integer.class, "int"); |
566 |
566 |
567 public final int basicLockSize = getFieldValue("CompilerToVM::Data::sizeof_BasicLock", Integer.class, "int"); |
567 public final int basicLockSize = getFieldValue("CompilerToVM::Data::sizeof_BasicLock", Integer.class, "int"); |
568 public final int basicLockDisplacedHeaderOffset = getFieldOffset("BasicLock::_displaced_header", Integer.class, "markOop"); |
568 public final int basicLockDisplacedHeaderOffset = getFieldOffset("BasicLock::_displaced_header", Integer.class, "markWord"); |
569 |
569 |
570 public final int threadPollingPageOffset = getFieldOffset("Thread::_polling_page", Integer.class, "address", -1); |
570 public final int threadPollingPageOffset = getFieldOffset("Thread::_polling_page", Integer.class, "address", -1); |
571 public final int threadAllocatedBytesOffset = getFieldOffset("Thread::_allocated_bytes", Integer.class, "jlong"); |
571 public final int threadAllocatedBytesOffset = getFieldOffset("Thread::_allocated_bytes", Integer.class, "jlong"); |
572 |
572 |
573 public final int tlabRefillWasteIncrement = getFlag("TLABWasteIncrement", Integer.class); |
573 public final int tlabRefillWasteIncrement = getFlag("TLABWasteIncrement", Integer.class); |