diff options
author | Alan Modra <amodra@gmail.com> | 2019-02-12 01:49:59 +1030 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2019-02-12 01:49:59 +1030 |
commit | ff7fa4886350037f892f9565f5a26c3ecd7ffc16 (patch) | |
tree | c3d2121f3766c48ce405a451f410387388c57dd4 /gcc/builtins.c | |
parent | 271ad97b6b353eaa40c1efd6fec3b402af137482 (diff) | |
download | gcc-ff7fa4886350037f892f9565f5a26c3ecd7ffc16.zip gcc-ff7fa4886350037f892f9565f5a26c3ecd7ffc16.tar.gz gcc-ff7fa4886350037f892f9565f5a26c3ecd7ffc16.tar.bz2 |
[RS6000] No inline PLT for V4 bss-plt, implement -mno-pltseq
Inline PLT calls need PLT to be an array of addresses. PowerPC 32-bit
bss-plt works differently, so this patch disables inline PLT calls
when -mbss-plt. The patch also adds support for a new -mno-pltseq
option, which may be required when linking with -mbss-plt code.
* doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
-mlongcall and -mpltseq.
(RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
(RS/6000 and PowerPC Options <-mpltseq>): Document.
* config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
* config/rs6000/sysv4.opt (mpltseq): New option.
* config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
(SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
support is lacking. Don't allow -mpltseq with -mbss-plt.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
-mpltseq given for ELFv1.
* config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
Only use UNSPEC_PLTSEQ for inline PLT calls.
(rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
use UNSPEC_PLTSEQ for inline PLT calls.
(rs6000_indirect_call_template_1, rs6000_longcall_ref),
(rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
* config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
(pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
(pltseq_mtctr_<mode>): Likewise.
From-SVN: r268770
Diffstat (limited to 'gcc/builtins.c')
0 files changed, 0 insertions, 0 deletions