RFR: AArch64 remaining CAS-obj impls

Roman Kennke rkennke at redhat.com
Thu Nov 17 12:08:20 UTC 2016


Am Donnerstag, den 17.11.2016, 11:48 +0000 schrieb Andrew Haley:
> On 17/11/16 10:07, Roman Kennke wrote:
> > 
> > I found one more bug in my implementation. For compareAndExchangeN,
> > we
> > need to restore the uncompressed old-value into the result register
> > before leaving.
> > 
> > http://cr.openjdk.java.net/~rkennke/aarch64-cas/webrev.01/
> > 
> > Ok now?
> 
> What does this mean?
> 
> +        __ cmpxchg_oop_shenandoah(addr, cmpval, newval,
> Assembler::word, true, true, false);
> 
> No cheating by looking at the declaration of cmpxchg_oop_shenandoah!

;-)

I know, it is not the crytal clear diamond of software engineering :-)

In my defense, it's mostly adopted from existing code, and at least
it's consistent.

I agree it should be refactored, and if we go and do that, then for all
of the similar cmpxchg() methods in MacroAssembler.

Roman



More information about the shenandoah-dev mailing list