[RS6000] Make -msingle-pic-base remove the ELFv2 global entry code
For other ABIs, -msingle-pic-base makes gcc omit loading of the PIC register in function prologues. This patch makes the option affect ELFv2 too. * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set r2_setup_needed when TARGET_SINGLE_PIC_BASE. (rs6000_output_mi_thunk): Likewise. From-SVN: r228309
This commit is contained in:
parent
cc3cd79bc2
commit
7dc396e20f
|
@ -1,3 +1,9 @@
|
||||||
|
2015-10-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
|
||||||
|
r2_setup_needed when TARGET_SINGLE_PIC_BASE.
|
||||||
|
(rs6000_output_mi_thunk): Likewise.
|
||||||
|
|
||||||
2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
|
2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
|
||||||
|
|
||||||
* config/nvptx/mkoffload.c (process): Change offload data format.
|
* config/nvptx/mkoffload.c (process): Change offload data format.
|
||||||
|
|
|
@ -24118,13 +24118,13 @@ rs6000_emit_prologue (void)
|
||||||
#define NOT_INUSE(R) do {} while (0)
|
#define NOT_INUSE(R) do {} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (DEFAULT_ABI == ABI_ELFv2)
|
if (DEFAULT_ABI == ABI_ELFv2
|
||||||
|
&& !TARGET_SINGLE_PIC_BASE)
|
||||||
{
|
{
|
||||||
cfun->machine->r2_setup_needed = df_regs_ever_live_p (TOC_REGNUM);
|
cfun->machine->r2_setup_needed = df_regs_ever_live_p (TOC_REGNUM);
|
||||||
|
|
||||||
/* With -mminimal-toc we may generate an extra use of r2 below. */
|
/* With -mminimal-toc we may generate an extra use of r2 below. */
|
||||||
if (!TARGET_SINGLE_PIC_BASE
|
if (TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
|
||||||
&& TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
|
|
||||||
cfun->machine->r2_setup_needed = true;
|
cfun->machine->r2_setup_needed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26800,7 +26800,8 @@ rs6000_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
|
||||||
/* Ensure we have a global entry point for the thunk. ??? We could
|
/* Ensure we have a global entry point for the thunk. ??? We could
|
||||||
avoid that if the target routine doesn't need a global entry point,
|
avoid that if the target routine doesn't need a global entry point,
|
||||||
but we do not know whether this is the case at this point. */
|
but we do not know whether this is the case at this point. */
|
||||||
if (DEFAULT_ABI == ABI_ELFv2)
|
if (DEFAULT_ABI == ABI_ELFv2
|
||||||
|
&& !TARGET_SINGLE_PIC_BASE)
|
||||||
cfun->machine->r2_setup_needed = true;
|
cfun->machine->r2_setup_needed = true;
|
||||||
|
|
||||||
/* Run just enough of rest_of_compilation to get the insns emitted.
|
/* Run just enough of rest_of_compilation to get the insns emitted.
|
||||||
|
|
Loading…
Reference in New Issue