Hi,
I've had this in my patch stack after discovering the gas issue where we weren't warning on cases that were unpredictable according to the architecture. I would like to backport this fix to earlier GCC branches too. I did a few attempts but I haven't been able to trigger the unpredictable behaviour. Bootstrapped and regression tested on AArch64 , no regressions. Ok ? Thanks, Ramana * config/aarch64/atomics.md (aarch64_store_exclusive<mode>): Add early clobber.
commit 0608cb64b97368dc1bbea87e3a9541cfb832c015 Author: Ramana Radhakrishnan <ramana.radhakrish...@arm.com> Date: Tue Jun 12 16:03:24 2018 +0100 [Patch AArch64] Add early clobber for aarch64_store_exclusive. diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md index 68dc65c..cd8c44e 100644 --- a/gcc/config/aarch64/atomics.md +++ b/gcc/config/aarch64/atomics.md @@ -530,7 +530,7 @@ ) (define_insn "aarch64_store_exclusive<mode>" - [(set (match_operand:SI 0 "register_operand" "=r") + [(set (match_operand:SI 0 "register_operand" "=&r") (unspec_volatile:SI [(const_int 0)] UNSPECV_SX)) (set (match_operand:ALLI 1 "aarch64_sync_memory_operand" "=Q") (unspec_volatile:ALLI