diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2017-07-24 18:06:37 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2017-07-24 18:06:37 +0000 |
commit | d47d34bb22f756731475ea700d165f4d855d712f (patch) | |
tree | 8022ed66e237c03caf3f6178e0821d7d27350ecf /gcc/cfgrtl.c | |
parent | 26bca0ed48bcbd292d08bb2e83276658d6ea5434 (diff) | |
download | gcc-d47d34bb22f756731475ea700d165f4d855d712f.zip gcc-d47d34bb22f756731475ea700d165f4d855d712f.tar.gz gcc-d47d34bb22f756731475ea700d165f4d855d712f.tar.bz2 |
re PR target/79041 (aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despite -mpc-relative-literal-loads option being used)
Fix PR79041
As described in PR79041, -mcmodel=large -mpc-relative-literal-loads
may be used to avoid generating ADRP/ADD or ADRP/LDR. However both
trunk and GCC7 may still emit ADRP for some constant pool literals.
Fix this by adding a aarch64_pcrelative_literal_loads check.
gcc/
PR target/79041
* config/aarch64/aarch64.c (aarch64_classify_symbol):
Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals
gcc/testsuite/
* gcc.target/aarch64/pr79041-2.c: New test.
From-SVN: r250478
Diffstat (limited to 'gcc/cfgrtl.c')
0 files changed, 0 insertions, 0 deletions