aarch64: Fix SYMBOL_TINY_GOT handling for ILP32 [PR94201]
authorDuan bo <duanbo3@huawei.com>
Wed, 18 Mar 2020 10:18:39 +0000 (10:18 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 18 Mar 2020 11:50:04 +0000 (11:50 +0000)
commitd91480dee934478063fe5945b73ff3c108e40a91
tree43a863f30f27e06acdd2724d2c135263e646891f
parentcb26919c857f002fc17f7c478e7c8f0eb2a7c9b2
aarch64: Fix SYMBOL_TINY_GOT handling for ILP32 [PR94201]

The SYMBOL_TINY_GOT case in aarch64_load_symref_appropriately was
missing support for ILP32.  This caused an ICE on the testcase.

2020-03-18  Duan bo  <duanbo3@huawei.com>

gcc/
PR target/94201
* config/aarch64/aarch64.md (ldr_got_tiny): Delete.
(@ldr_got_tiny_<mode>): New pattern.
(ldr_got_tiny_sidi): Likewise.
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
them to handle SYMBOL_TINY_GOT for ILP32.

gcc/testsuite/
PR target/94201
* gcc.target/aarch64/pr94201.c:New test.
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/pr94201.c [new file with mode: 0644]