1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
Go to file
Nemanja Ivanovic 6da8209a9a [PowerPC] Restore stack ptr from frame ptr with setjmp
If a function happens to:

- call setjmp
- do a 16-byte stack allocation
- call a function that sets up a stack frame and longjmp's back

The stack pointer that is restores by setjmp will no longer point to a valid
back chain. According to the ABI, stack accesses in such a function are to be
frame pointer based - so it is an error (quite obviously) to restore the stack
from the back chain.
We already restore the stack from the frame pointer when there are calls to
fast_cc functions. We just need to also do that when there are calls to setjmp.
This patch simply does that.

This was pointed out by the Julia team.

Differential revision: https://reviews.llvm.org/D92906
2020-12-14 11:34:16 -06:00
benchmarks
bindings
cmake
docs [NFC]{AMDGPU] Update AMDGPUUsage with AMD RDNA 2 reference 2020-12-13 17:21:02 +00:00
examples [Kaleidoscope] Migrate DebugInfo::get to DILocation::get 2020-12-11 18:01:04 -08:00
include [SLP] Control maximum vectorization factor from TTI 2020-12-14 08:49:40 -08:00
lib [PowerPC] Restore stack ptr from frame ptr with setjmp 2020-12-14 11:34:16 -06:00
projects
resources
runtimes
test [PowerPC] Restore stack ptr from frame ptr with setjmp 2020-12-14 11:34:16 -06:00
tools [llvm-objdump] Use "--" for long options in --help text 2020-12-14 13:11:29 +00:00
unittests mac/arm: XFAIL the last 2 failing check-llvm tests 2020-12-12 20:12:02 -05:00
utils [UpdateTestChecks] Add --(no-)x86_scrub_sp option. 2020-12-12 17:11:13 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.