[aarch64-port-dev ] RFR(XS): 8211320: Aarch64: unsafe.compareAndSetByte() and unsafe.compareAndSetShort() c2 intrinsics broken with negative expected value

Andrew Haley aph at redhat.com
Mon Oct 1 13:30:18 UTC 2018

On 10/01/2018 02:19 PM, Andrew Dinn wrote:
> So, in this
> one case, where the load does not (cannot) do sign extension, in order
> to get the correct comparison the caller or callee must massage the
> register value with an unsigned extend before calling cmpxchg. So, what
> I had assumed you were suggesting was that the callee, cmpxchg, should
> perform the unsigned extension on the input value.

Yes, I am, but in a way that does not alter the input operand. Whatever
it does must not have any side effects beyond clobbering rscratch1.

Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

More information about the hotspot-compiler-dev mailing list