AArch64: Fix PR103085
authorWilco Dijkstra <wdijkstr@arm.com>
Fri, 5 Nov 2021 15:05:15 +0000 (15:05 +0000)
committerWilco Dijkstra <wdijkstr@arm.com>
Fri, 5 Nov 2021 15:36:32 +0000 (15:36 +0000)
commitb33b2678342c655ff8ddb9fab379b26f656adc03
treed6333e2dec4ddb709119e844aba71fa3502fc255
parenta505e1fae4378254275ec292bd5299a16357de90
AArch64: Fix PR103085

The stack protector implementation hides symbols in a const unspec, which means
movdi/movsi patterns must always support const on symbol operands and
explicitly strip away the unspec. Do this for the recently added GOT
alternatives. Add a test to ensure stack-protector tests GOT accesses as well.

2021-11-05  Wilco Dijkstra  <wdijkstr@arm.com>

PR target/103085
* config/aarch64/aarch64.c (aarch64_mov_operand_p): Strip the salt
first.
* config/aarch64/constraints.md: Support const in Usw.

gcc/testsuite/
PR target/103085
* gcc.target/aarch64/pr103085.c: New test
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/constraints.md
gcc/testsuite/gcc.target/aarch64/pr103085.c [new file with mode: 0644]