aboutsummaryrefslogtreecommitdiff
path: root/compile
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-10-26 16:40:25 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2017-10-26 16:40:25 +0000
commit1f7bffd09412d801016ecd014f34db77da2cc63e (patch)
tree71b31e5c29e57ca7945e6bd28b63998e849f2f2a /compile
parent37e4d57b99efe65710bb4a000093c596ab3f5124 (diff)
downloadgcc-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