[Darwin, PPC] Do not use longcall for 64b code.
The linker [ld64] that supports 64Bit does not need the JBSR longcall optimisation, and will not work with the most generic case (where the symbol is undefined external, but there is no symbl stub). So switch the longcall option off. ld64 will generate branch islands as needed. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not use longcall for 64b code. From-SVN: r272758
This commit is contained in:
parent
c2fe65930a
commit
085efec58f
|
@ -1,3 +1,8 @@
|
|||
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
|
||||
|
||||
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
|
||||
use longcall for 64b code.
|
||||
|
||||
2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
|
||||
|
||||
* builtins.c (get_memory_rtx): Fix comment.
|
||||
|
|
|
@ -3418,6 +3418,15 @@ darwin_rs6000_override_options (void)
|
|||
rs6000_isa_flags |= OPTION_MASK_POWERPC64;
|
||||
warning (0, "%qs requires PowerPC64 architecture, enabling", "-m64");
|
||||
}
|
||||
|
||||
/* The linkers [ld64] that support 64Bit do not need the JBSR longcall
|
||||
optimisation, and will not work with the most generic case (where the
|
||||
symbol is undefined external, but there is no symbl stub). */
|
||||
if (TARGET_64BIT)
|
||||
rs6000_default_long_calls = 0;
|
||||
|
||||
/* ld_classic is (so far) still used for kernel (static) code, and supports
|
||||
the JBSR longcall / branch islands. */
|
||||
if (flag_mkernel)
|
||||
{
|
||||
rs6000_default_long_calls = 1;
|
||||
|
|
Loading…
Reference in New Issue