[PPC64] Add split - stack support.
authorSean Fertile <sfertile@ca.ibm.com>
Mon, 15 Oct 2018 19:05:57 +0000 (19:05 +0000)
committerSean Fertile <sfertile@ca.ibm.com>
Mon, 15 Oct 2018 19:05:57 +0000 (19:05 +0000)
commit795cc9332b771e8f578f5ae14855d4152c72bdec
tree8bfb4cabeb5bb16b265eafbdb26e2fccc489e4ce
parentabe3c7d841467d627af58f821c6c481a9731b8a1
[PPC64] Add split - stack support.

This support is slightly different then the X86_64 implementation in that calls
to __morestack don't need to get rewritten to calls to __moresatck_non_split
when a split-stack caller calls a non-split-stack callee. Instead the size of
the stack frame requested by the caller is adjusted prior to the call to
__morestack. The size the stack-frame will be adjusted by is tune-able through a
new --split-stack-adjust-size option.

Differential Revision: https://reviews.llvm.org/D52099

llvm-svn: 344544
13 files changed:
lld/ELF/Arch/PPC64.cpp
lld/ELF/Arch/X86_64.cpp
lld/ELF/Config.h
lld/ELF/Driver.cpp
lld/ELF/InputSection.cpp
lld/ELF/Options.td
lld/ELF/Target.cpp
lld/ELF/Target.h
lld/test/ELF/Inputs/ppc64-no-split-stack.s [new file with mode: 0644]
lld/test/ELF/ppc64-split-stack-adjust-fail.s [new file with mode: 0644]
lld/test/ELF/ppc64-split-stack-adjust-overflow.s [new file with mode: 0644]
lld/test/ELF/ppc64-split-stack-adjust-size-success.s [new file with mode: 0644]
lld/test/ELF/ppc64-split-stack-prologue-adjust-success.s [new file with mode: 0644]