aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-02-04 23:48:14 +1030
committerAlan Modra <amodra@gcc.gnu.org>2019-02-04 23:48:14 +1030
commitd92ec61d23834a69e962fe66acd7c192c3abc972 (patch)
treec3e64f9daf95588a90453191b39ae41840082bea /gcc/fortran/resolve.c
parent64cd238b35cb8c96ef5be2e4775cb0e8aaa3e45f (diff)
downloadgcc-d92ec61d23834a69e962fe66acd7c192c3abc972.zip
gcc-d92ec61d23834a69e962fe66acd7c192c3abc972.tar.gz
gcc-d92ec61d23834a69e962fe66acd7c192c3abc972.tar.bz2
[RS6000] Emit inline PLT when -mno-tls-markers
I restricted output of inline PLT sequences to when TLS marker relocs were also available, which is obviously true when just considering assembler support. However, there is a -mno-tls-markers option to disable emitting the marker relocs. Currently that option also disables inline PLT sequences, which is a bug (*). This patch fixes that problem. *) To be honest, it was a deliberate bug. I didn't want to have to deal with inline PLT __tls_get_addr sequences lacking the marker relocs in the linker, but it turns out the existing linker support for old-style __tls_get_addr calls works reasonably well. * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), (rs6000_pltseq_template): Guard output of TLS markers with TARGET_TLS_MARKERS. (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding to use inline PLT sequences. * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. From-SVN: r268519
Diffstat (limited to 'gcc/fortran/resolve.c')
0 files changed, 0 insertions, 0 deletions