https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91452

--- Comment #2 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
Author: rsandifo
Date: Tue Oct  1 08:55:28 2019
New Revision: 276392

URL: https://gcc.gnu.org/viewcvs?rev=276392&root=gcc&view=rev
Log:
[AArch64] Use calls for SVE TLSDESC

One (unintended) side effect of the patches to support multiple
ABIs is that we can now represent tlsdesc calls as normal calls
on SVE targets.  This is likely to be handled more efficiently than
clobber_high, and for example fixes the long-standing failure in
gcc.target/aarch64/sve/tls_preserve_1.c.

2019-10-01  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        PR target/91452
        * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
        * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
        * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
        Handle ARM_PCS_TLSDESC.
        (aarch64_tlsdesc_abi_id): New function.
        * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
        rtx instead of a list of clobbers and clobber_highs.
        (tlsdesc_small_<mode>): Update accordingly.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-protos.h
    trunk/gcc/config/aarch64/aarch64.c
    trunk/gcc/config/aarch64/aarch64.h
    trunk/gcc/config/aarch64/aarch64.md

Reply via email to