diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2018-10-31 09:58:48 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2018-10-31 02:58:48 -0700 |
commit | 7803ec5ee2a547043fb6708a08ddb1361ba91202 (patch) | |
tree | dcf5f28df3603081cc04cbce0864e469f2e8d39c /libcpp | |
parent | 8f5603d363a4e0453d2c38c7103aeb0bdca85c4e (diff) | |
download | gcc-7803ec5ee2a547043fb6708a08ddb1361ba91202.zip gcc-7803ec5ee2a547043fb6708a08ddb1361ba91202.tar.gz gcc-7803ec5ee2a547043fb6708a08ddb1361ba91202.tar.bz2 |
aarch64: Improve atomic-op lse generation
Fix constraints; avoid unnecessary split. Drop the use of the atomic_op
iterator in favor of the ATOMIC_LDOP iterator; this is simplier and more
logical for ldclr aka bic.
* config/aarch64/aarch64.c (aarch64_emit_bic): Remove.
(aarch64_atomic_ldop_supported_p): Remove.
(aarch64_gen_atomic_ldop): Remove.
* config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>):
Fully expand LSE operations here.
(atomic_fetch_<atomic_optab><ALLI>): Likewise.
(atomic_<atomic_optab>_fetch<ALLI>): Likewise.
(aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator
and use ATOMIC_LDOP instead; use register_operand for the input;
drop the split and emit insns directly.
(aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise.
(aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove.
(@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove.
From-SVN: r265660
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions