On Tue, Oct 02, 2018 at 11:19:08AM -0500, Richard Henderson wrote: > 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.
OK. Thanks, James > > * 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. > --- > gcc/config/aarch64/aarch64-protos.h | 2 - > gcc/config/aarch64/aarch64.c | 176 ------------------------- > gcc/config/aarch64/atomics.md | 197 +++++++++++++++------------- > gcc/config/aarch64/iterators.md | 5 +- > 4 files changed, 108 insertions(+), 272 deletions(-) >