aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2024-02-13 13:32:44 -0800
committerH.J. Lu <(no_default)>2024-02-18 07:26:03 -0800
commit853eb57759967335a7ea872e6a0721034db6fabd (patch)
treeab374ae47ed6fbd9c9d99577ea2688d7a87240eb /libcpp
parente63ae9085aca9d306a2f16445b473289b9186e10 (diff)
downloadgcc-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