aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgcc/ChangeLog6
-rw-r--r--libgcc/config/aarch64/lse.S4
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)