Condition code not set after CAS on aarch64
Roman Kennke
rkennke at redhat.com
Wed Nov 16 15:59:29 UTC 2016
Am Mittwoch, den 16.11.2016, 15:56 +0000 schrieb Andrew Haley:
> On 16/11/16 14:04, Roman Kennke wrote:
> >
> > Am Freitag, den 28.10.2016, 13:35 +0200 schrieb Roland Westrelin:
> > >
> > > http://cr.openjdk.java.net/~roland/shenandoah/aarch64-cas-cc/webr
> > > ev.0
> > > 0/
> > >
> > > Instructions that set the condition code got dropped...
> >
> > The condition code gets set in
> > MacroAssembler::cmpxchg_oop_shenandoah() already. Setting it
> > afterwards using cset might actually be harmful because I am not
> > sure
> > that the condition flags are correct.
> >
> > I'd revert the whole changeset:
> > http://cr.openjdk.java.net/~roland/shenandoah/aarch64-cas-cc/webrev
> > .00/
> >
> > Ok to revert?
>
> No.
>
> CSET doesn't set a condition code, it sets a register.
> We need the register.
Yes. And we set that register in cmpxchg_oop_shenandoah(). The
condition code might be foobar after the loop.
Roman
More information about the shenandoah-dev
mailing list