[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 10:43:51 UTC 2018

On 10/01/2018 11:09 AM, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/8211320/webrev.00/
> Intrinsics for unsafe.compareAndSetByte() and
> unsafe.compareAndSetShort() don't properly deal with sign extension:
> load exclusive doesn't sign extend loaded value but comparison is done
> with sign extended value.

Ooh, that's tricky. I wonder if we should do this inside cmpxchg().
Mind you, that would cause cmpxchg() to have a side effect on an input

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