aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-06-29 13:31:45 +0930
committerAlan Modra <amodra@gmail.com>2021-07-15 15:27:09 +0930
commitcd6ca96f5d530e4ee07b65ac8b075119ba5bb035 (patch)
tree5656cb884387d4b3aae4d1aec237dbceaa1bfaa3 /gcc/gimplify.c
parent4f3b383cf8825197e714a4a21852eca071f8e67e (diff)
downloadgcc-cd6ca96f5d530e4ee07b65ac8b075119ba5bb035.zip
gcc-cd6ca96f5d530e4ee07b65ac8b075119ba5bb035.tar.gz
gcc-cd6ca96f5d530e4ee07b65ac8b075119ba5bb035.tar.bz2
[POWER10] __morestack calls from pcrel code
Compiling gcc/testsuite/gcc.dg/split-*.c and others with -mcpu=power10 and linking with a non-pcrel libgcc results in crashes due to the power10 pcrel code not having r2 set for the generic-morestack.c functions called from __morestack. There is also a problem when non-pcrel code calls a pcrel libgcc. See the patch comments. A similar situation theoretically occurs with ELFv1 multi-toc executables, when __morestack might be located in a different toc group to its caller. This patch makes no attempt to fix that, since the gold linker does not support multi-toc (gold is needed for proper support of -fsplit-stack code) nor does gcc emit __morestack calls that support multi-toc. * config/rs6000/morestack.S (R2_SAVE): Define. (__morestack): Save and restore r2. Set up r2 for called functions.
Diffstat (limited to 'gcc/gimplify.c')
0 files changed, 0 insertions, 0 deletions