RFR: AArch64 remaining CAS-obj impls
Roman Kennke
rkennke at redhat.com
Wed Nov 16 17:50:29 UTC 2016
AArch64 was lacking weak-cas-obj and compare-and-exchange-obj for
Shenandoah. This patch implements the various intrinsics for those. All
reuse the existing Shenandoah retry loop, with some little extensions:
- weak now short-circuits if the store-exclusive fails
- exchange gets the old value
The implementation is done as closely as possible to the other
cmpxchg() implementations in MacroAssembler.
The patch also:
- removes setting of res. This is not necessary if we are careful the
condition codes are right when we get to 'done'. intrinsics that need
it, use cset later to set the target register.
- Changes bool to enum operand_size to distinguish between narrow and
ordinary oops, just like the other cmpxchg.
Tests: jcstress
Ok to push?
http://cr.openjdk.java.net/~rkennke/aarch64-cas/webrev.00/
Roman
More information about the shenandoah-dev
mailing list