aboutsummaryrefslogtreecommitdiff
path: root/libcpp/directives.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2018-10-31 09:58:48 +0000
committerRichard Henderson <rth@gcc.gnu.org>2018-10-31 02:58:48 -0700
commit7803ec5ee2a547043fb6708a08ddb1361ba91202 (patch)
treedcf5f28df3603081cc04cbce0864e469f2e8d39c /libcpp/directives.c
parent8f5603d363a4e0453d2c38c7103aeb0bdca85c4e (diff)
downloadgcc-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/directives.c')
0 files changed, 0 insertions, 0 deletions