aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2022-11-17 11:16:54 +0000
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2022-11-17 11:30:08 +0000
commit06c8f2ebf062f64e8f4228ec47bdd003df9ef5ed (patch)
treeef8f80d1eb63e28c916b3f44820ef5fadf48e32f /gcc
parent822a0823c012b912f0108a4da257cd97cbcdb7a3 (diff)
downloadgcc-06c8f2ebf062f64e8f4228ec47bdd003df9ef5ed.zip
gcc-06c8f2ebf062f64e8f4228ec47bdd003df9ef5ed.tar.gz
gcc-06c8f2ebf062f64e8f4228ec47bdd003df9ef5ed.tar.bz2
aarch64: Add mode size check on LDAPR-extend patterns
Add an extra safety check as suggested by Richard. Tested on aarch64-none-linux-gnu. gcc/ChangeLog: * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): Add mode size check to condition. (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/atomics.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md
index 9670bef..1805012 100644
--- a/gcc/config/aarch64/atomics.md
+++ b/gcc/config/aarch64/atomics.md
@@ -711,7 +711,7 @@
[(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
(match_operand:SI 2 "const_int_operand")] ;; model
UNSPECV_LDAP)))]
- "TARGET_RCPC"
+ "TARGET_RCPC && (<GPI:sizen> > <ALLX:sizen>)"
"ldapr<ALLX:atomic_sfx>\t%<GPI:w>0, %1"
)
@@ -722,7 +722,7 @@
[(match_operand:ALLX 1 "aarch64_sync_memory_operand" "Q")
(match_operand:SI 2 "const_int_operand")] ;; model
UNSPECV_LDAP)))]
- "TARGET_RCPC"
+ "TARGET_RCPC && (<GPI:sizen> > <ALLX:sizen>)"
"ldaprs<ALLX:atomic_sfx>\t%<GPI:w>0, %1"
)