--- old/src/hotspot/cpu/aarch64/aarch64.ad 2018-10-24 13:34:55.670847482 +0200 +++ new/src/hotspot/cpu/aarch64/aarch64.ad 2018-10-24 13:34:47.021827404 +0200 @@ -8341,8 +8341,7 @@ "cmpxchg $res = $mem, $oldval, $newval\t# (byte, weak) if $mem == $oldval then $mem <-- $newval" %} ins_encode %{ - __ uxtbw(rscratch2, $oldval$$Register); - __ cmpxchg($mem$$Register, rscratch2, $newval$$Register, + __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::byte, /*acquire*/ false, /*release*/ true, /*weak*/ false, $res$$Register); __ sxtbw($res$$Register, $res$$Register); @@ -8358,8 +8357,7 @@ "cmpxchg $res = $mem, $oldval, $newval\t# (short, weak) if $mem == $oldval then $mem <-- $newval" %} ins_encode %{ - __ uxthw(rscratch2, $oldval$$Register); - __ cmpxchg($mem$$Register, rscratch2, $newval$$Register, + __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::halfword, /*acquire*/ false, /*release*/ true, /*weak*/ false, $res$$Register); __ sxthw($res$$Register, $res$$Register); @@ -8436,8 +8434,7 @@ "csetw $res, EQ\t# $res <-- (EQ ? 1 : 0)" %} ins_encode %{ - __ uxtbw(rscratch2, $oldval$$Register); - __ cmpxchg($mem$$Register, rscratch2, $newval$$Register, + __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::byte, /*acquire*/ false, /*release*/ true, /*weak*/ true, noreg); __ csetw($res$$Register, Assembler::EQ); @@ -8454,8 +8451,7 @@ "csetw $res, EQ\t# $res <-- (EQ ? 1 : 0)" %} ins_encode %{ - __ uxthw(rscratch2, $oldval$$Register); - __ cmpxchg($mem$$Register, rscratch2, $newval$$Register, + __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::halfword, /*acquire*/ false, /*release*/ true, /*weak*/ true, noreg); __ csetw($res$$Register, Assembler::EQ);