aarch64: Use x30 as temporary in SVE TLSDESC patterns
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 9 Apr 2021 12:43:14 +0000 (13:43 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Fri, 9 Apr 2021 12:43:14 +0000 (13:43 +0100)
commitba2913f618ab2fecf15355f936028a39b5a9db87
tree4b67b0eb8f9cfdbaa0333ca0fe5b347fb6dc9b69
parent40ccb47b505b528244ee305923681c0ae3b6f4d5
aarch64: Use x30 as temporary in SVE TLSDESC patterns

gcc.dg/torture/tls/tls-reload-1.c started ICEing for SVE some time
during the GCC 11 cycle (not sure when).  The problem is that we
had an output reload on a call_insn, which isn't a supported
combination.

This patch uses LR_REGNUM instead.  The resulting "blr x30"
might not perform as well on some CPUs, but in this context
the difference shouldn't be noticeable.

gcc/
* config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
as the temporary register.
gcc/config/aarch64/aarch64.md