< prev index next > src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Mark.java
Print this page
hashBits = db.lookupLongConstant("markWord::hash_bits").longValue();
lockShift = db.lookupLongConstant("markWord::lock_shift").longValue();
biasedLockShift = db.lookupLongConstant("markWord::biased_lock_shift").longValue();
ageShift = db.lookupLongConstant("markWord::age_shift").longValue();
hashShift = db.lookupLongConstant("markWord::hash_shift").longValue();
+ if (VM.getVM().isLP64()) {
+ klassShift = db.lookupLongConstant("markWord::klass_shift").longValue();
+ }
lockMask = db.lookupLongConstant("markWord::lock_mask").longValue();
lockMaskInPlace = db.lookupLongConstant("markWord::lock_mask_in_place").longValue();
biasedLockMask = db.lookupLongConstant("markWord::biased_lock_mask").longValue();
biasedLockMaskInPlace = db.lookupLongConstant("markWord::biased_lock_mask_in_place").longValue();
biasedLockBitInPlace = db.lookupLongConstant("markWord::biased_lock_bit_in_place").longValue();
private static long lockShift;
private static long biasedLockShift;
private static long ageShift;
private static long hashShift;
+ private static long klassShift;
private static long lockMask;
private static long lockMaskInPlace;
private static long biasedLockMask;
private static long biasedLockMaskInPlace;
/* Constants in markWord used by CMS. */
private static long cmsShift;
private static long cmsMask;
private static long sizeShift;
+ public static long getKlassShift() {
+ return klassShift;
+ }
+
public Mark(Address addr) {
super(addr);
}
public long value() {
public boolean hasNoHash() {
return hash() == noHash;
}
+ public Klass getKlass() {
+ assert(VM.getVM().isCompactObjectHeadersEnabled());
+ assert(!hasMonitor());
+ return (Klass)Metadata.instantiateWrapperFor(addr.getCompKlassAddressAt(0));
+ }
+
// Debugging
public void printOn(PrintStream tty) {
if (isLocked()) {
tty.print("locked(0x" +
Long.toHexString(value()) + ")->");
< prev index next >