mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-22 21:51:36 +08:00
[Darwin, PPC] Do not use longcall for 64b code.
Fix wrong codegen; the 'native' tools do no emit the longcall in this position. 2019-09-04 Iain Sandoe <iain@sandoe.co.uk> Backport from mainline 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: r275384
This commit is contained in:
parent
ff2eece548
commit
25df28cc40
@ -1,3 +1,11 @@
|
||||
2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
|
||||
|
||||
Backport from mainline
|
||||
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-09-04 Iain Sandoe <iain@sandoe.co.uk>
|
||||
|
||||
Backport from mainline
|
||||
|
@ -3834,6 +3834,15 @@ darwin_rs6000_override_options (void)
|
||||
rs6000_isa_flags |= OPTION_MASK_POWERPC64;
|
||||
warning (0, "-m64 requires PowerPC64 architecture, enabling");
|
||||
}
|
||||
|
||||
/* 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…
x
Reference in New Issue
Block a user