[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:35:52 UTC 2018


Like this:

    bind(retry_load);
    load_exclusive(result, addr, size, acquire);
    if (size == xword) {
      cmp(result, expected);
    } else if (size == word) {
      cmpw(result, expected);
    } else if (size == hword) {
      eorw(rscratch1, result, expected);
      ands(zr, rscratch1, 0xffff);
    } else if (size == byte) {
      eorw(rscratch1, result, expected);
      ands(zr, rscratch1, 0xff);
    } else {
      ShouldNotReachHere();
    }

-- 
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