443
444 public final int osThreadInterruptedOffset = getFieldOffset("OSThread::_interrupted", Integer.class, "jint");
445
446 public final long markOopDescHashShift = getConstant("markOopDesc::hash_shift", Long.class);
447
448 public final int biasedLockMaskInPlace = getConstant("markOopDesc::biased_lock_mask_in_place", Integer.class);
449 public final int ageMaskInPlace = getConstant("markOopDesc::age_mask_in_place", Integer.class);
450 public final int epochMaskInPlace = getConstant("markOopDesc::epoch_mask_in_place", Integer.class);
451 public final long markOopDescHashMask = getConstant("markOopDesc::hash_mask", Long.class);
452 public final long markOopDescHashMaskInPlace = getConstant("markOopDesc::hash_mask_in_place", Long.class);
453
454 public final int unlockedMask = getConstant("markOopDesc::unlocked_value", Integer.class);
455 public final int monitorMask = getConstant("markOopDesc::monitor_value", Integer.class, -1);
456 public final int biasedLockPattern = getConstant("markOopDesc::biased_lock_pattern", Integer.class);
457
458 // This field has no type in vmStructs.cpp
459 public final int objectMonitorOwner = getFieldOffset("ObjectMonitor::_owner", Integer.class, null, -1);
460 public final int objectMonitorRecursions = getFieldOffset("ObjectMonitor::_recursions", Integer.class, "intptr_t", -1);
461 public final int objectMonitorCxq = getFieldOffset("ObjectMonitor::_cxq", Integer.class, "ObjectWaiter*", -1);
462 public final int objectMonitorEntryList = getFieldOffset("ObjectMonitor::_EntryList", Integer.class, "ObjectWaiter*", -1);
463
464 public final int markWordNoHashInPlace = getConstant("markOopDesc::no_hash_in_place", Integer.class);
465 public final int markWordNoLockInPlace = getConstant("markOopDesc::no_lock_in_place", Integer.class);
466
467 /**
468 * See {@code markOopDesc::prototype()}.
469 */
470 public long arrayPrototypeMarkWord() {
471 return markWordNoHashInPlace | markWordNoLockInPlace;
472 }
473
474 /**
475 * See {@code markOopDesc::copy_set_hash()}.
476 */
477 public long tlabIntArrayMarkWord() {
478 long tmp = arrayPrototypeMarkWord() & (~markOopDescHashMaskInPlace);
479 tmp |= ((0x2 & markOopDescHashMask) << markOopDescHashShift);
480 return tmp;
481 }
482
|
443
444 public final int osThreadInterruptedOffset = getFieldOffset("OSThread::_interrupted", Integer.class, "jint");
445
446 public final long markOopDescHashShift = getConstant("markOopDesc::hash_shift", Long.class);
447
448 public final int biasedLockMaskInPlace = getConstant("markOopDesc::biased_lock_mask_in_place", Integer.class);
449 public final int ageMaskInPlace = getConstant("markOopDesc::age_mask_in_place", Integer.class);
450 public final int epochMaskInPlace = getConstant("markOopDesc::epoch_mask_in_place", Integer.class);
451 public final long markOopDescHashMask = getConstant("markOopDesc::hash_mask", Long.class);
452 public final long markOopDescHashMaskInPlace = getConstant("markOopDesc::hash_mask_in_place", Long.class);
453
454 public final int unlockedMask = getConstant("markOopDesc::unlocked_value", Integer.class);
455 public final int monitorMask = getConstant("markOopDesc::monitor_value", Integer.class, -1);
456 public final int biasedLockPattern = getConstant("markOopDesc::biased_lock_pattern", Integer.class);
457
458 // This field has no type in vmStructs.cpp
459 public final int objectMonitorOwner = getFieldOffset("ObjectMonitor::_owner", Integer.class, null, -1);
460 public final int objectMonitorRecursions = getFieldOffset("ObjectMonitor::_recursions", Integer.class, "intptr_t", -1);
461 public final int objectMonitorCxq = getFieldOffset("ObjectMonitor::_cxq", Integer.class, "ObjectWaiter*", -1);
462 public final int objectMonitorEntryList = getFieldOffset("ObjectMonitor::_EntryList", Integer.class, "ObjectWaiter*", -1);
463 public final int objectMonitorSucc = getFieldOffset("ObjectMonitor::_succ", Integer.class, "Thread*", -1);
464
465 public final int markWordNoHashInPlace = getConstant("markOopDesc::no_hash_in_place", Integer.class);
466 public final int markWordNoLockInPlace = getConstant("markOopDesc::no_lock_in_place", Integer.class);
467
468 /**
469 * See {@code markOopDesc::prototype()}.
470 */
471 public long arrayPrototypeMarkWord() {
472 return markWordNoHashInPlace | markWordNoLockInPlace;
473 }
474
475 /**
476 * See {@code markOopDesc::copy_set_hash()}.
477 */
478 public long tlabIntArrayMarkWord() {
479 long tmp = arrayPrototypeMarkWord() & (~markOopDescHashMaskInPlace);
480 tmp |= ((0x2 & markOopDescHashMask) << markOopDescHashShift);
481 return tmp;
482 }
483
|