-XX:+PrintPreciseBiasedLockingStatistics on amd64 (any OS) causes random
failures at runtime.
The BiasedLockingCounters structure containing the counters is
malloc'ed and ends up being far from the code cache. In the
following MacroAssembler method, check_reach returns false:
void incl(Address dst)
{
check_reach(dst) ? Assembler::incl(dst) :
Assembler::incl(Address(rscratch1));
}
dst is the malloc'ed space for the counters. Looks like
we fail to initialize the register rscratch1 with dst,
and just increment at whatever address is in R10 (rscratch1).