diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2017-10-26 16:40:25 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2017-10-26 16:40:25 +0000 |
commit | 1f7bffd09412d801016ecd014f34db77da2cc63e (patch) | |
tree | 71b31e5c29e57ca7945e6bd28b63998e849f2f2a /compile | |
parent | 37e4d57b99efe65710bb4a000093c596ab3f5124 (diff) | |
download | gcc-1f7bffd09412d801016ecd014f34db77da2cc63e.zip gcc-1f7bffd09412d801016ecd014f34db77da2cc63e.tar.gz gcc-1f7bffd09412d801016ecd014f34db77da2cc63e.tar.bz2 |
Simplify frame layout for stack probing
This patch makes some changes to the frame layout in order to simplify
stack probing. We want to use the save of LR as a probe in any non-leaf
function. With shrinkwrapping we may only save LR before a call, so it
is useful to define a fixed location in the callee-saves. So force LR at
the bottom of the callee-saves even with -fomit-frame-pointer.
Also remove a rarely used frame layout that saves the callee-saves first
with -fomit-frame-pointer. Doing so allows the store of LR to be used as
a valid stack probe in all frames.
gcc/
* config/aarch64/aarch64.c (aarch64_layout_frame):
Ensure LR is always stored at the bottom of the callee-saves.
Remove rarely used frame layout which saves callee-saves at top of
frame, so the store of LR can be used as a valid probe in all cases.
From-SVN: r254112
Diffstat (limited to 'compile')
0 files changed, 0 insertions, 0 deletions