diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2024-02-13 13:32:44 -0800 |
---|---|---|
committer | H.J. Lu <(no_default)> | 2024-02-18 07:26:03 -0800 |
commit | 853eb57759967335a7ea872e6a0721034db6fabd (patch) | |
tree | ab374ae47ed6fbd9c9d99577ea2688d7a87240eb /libcpp | |
parent | e63ae9085aca9d306a2f16445b473289b9186e10 (diff) | |
download | gcc-853eb57759967335a7ea872e6a0721034db6fabd.zip gcc-853eb57759967335a7ea872e6a0721034db6fabd.tar.gz gcc-853eb57759967335a7ea872e6a0721034db6fabd.tar.bz2 |
x86-64: Generate push2/pop2 only if the incoming stack is 16-byte aligned
Since push2/pop2 requires 16-byte stack alignment, don't generate them
if the incoming stack isn't 16-byte aligned.
gcc/
PR target/113912
* config/i386/i386.cc (ix86_can_use_push2pop2): New.
(ix86_pro_and_epilogue_can_use_push2pop2): Use it.
(ix86_emit_save_regs): Don't generate push2 if
ix86_can_use_push2pop2 return false.
(ix86_expand_epilogue): Don't generate pop2 if
ix86_can_use_push2pop2 return false.
gcc/testsuite/
PR target/113912
* gcc.target/i386/apx-push2pop2-2.c: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions