diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2019-09-25 21:48:41 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2019-09-25 14:48:41 -0700 |
commit | 88a51d68c4aaa61adb36a9cad6f25ef214bde853 (patch) | |
tree | 507f11146d1c716be08bc7c89a285061ca7cd93b | |
parent | 736a6efc4fd2159f0f6092d1767697ef16b51b3a (diff) | |
download | gcc-88a51d68c4aaa61adb36a9cad6f25ef214bde853.zip gcc-88a51d68c4aaa61adb36a9cad6f25ef214bde853.tar.gz gcc-88a51d68c4aaa61adb36a9cad6f25ef214bde853.tar.bz2 |
aarch64: Fix store-exclusive in load-operate LSE helpers
PR target/91834
* config/aarch64/lse.S (LDNM): Ensure STXR output does not
overlap the inputs.
From-SVN: r276133
-rw-r--r-- | libgcc/ChangeLog | 6 | ||||
-rw-r--r-- | libgcc/config/aarch64/lse.S | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 261ea7b..541a802 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-25 Richard Henderson <richard.henderson@linaro.org> + + PR target/91834 + * config/aarch64/lse.S (LDNM): Ensure STXR output does not + overlap the inputs. + 2019-09-25 Shaokun Zhang <zhangshaokun@hisilicon.com> * config/aarch64/sync-cache.c (__aarch64_sync_cache_range): Add support for diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S index a5f6673..c797938 100644 --- a/libgcc/config/aarch64/lse.S +++ b/libgcc/config/aarch64/lse.S @@ -227,8 +227,8 @@ STARTFN NAME(LDNM) 8: mov s(tmp0), s(0) 0: LDXR s(0), [x1] OP s(tmp1), s(0), s(tmp0) - STXR w(tmp1), s(tmp1), [x1] - cbnz w(tmp1), 0b + STXR w(tmp2), s(tmp1), [x1] + cbnz w(tmp2), 0b ret ENDFN NAME(LDNM) |