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(-)
> 

Reply via email to