http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59929
--- Comment #5 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Sat Jan 25 03:20:44 2014 New Revision: 207070 URL: http://gcc.gnu.org/viewcvs?rev=207070&root=gcc&view=rev Log: Get stack adjustment from push operand in pushsf splitter pushsf for -m64/-mx32 looks like (set (mem:SF (pre_modify:SI (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int -8)))) (reg:SF 22 xmm1 [orig:84 D.1790 ] [84])) Stack adjustment is in push operand and it isn't stack register mode size which may be 4 bytes for -mx32. This patch gets stack adjustment from push operand if code of push isn't PRE_DEC. gcc/ Backport from mainline PR target/59929 * config/i386/i386.md (pushsf splitter): Get stack adjustment from push operand if code of push isn't PRE_DEC. gcc/testsuite/ Backport from mainline. PR target/59929 * gcc.target/i386/pr59929.c: New test. Added: branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr59929.c Modified: branches/gcc-4_8-branch/gcc/ChangeLog branches/gcc-4_8-branch/gcc/config/i386/i386.md branches/gcc-4_8-branch/gcc/testsuite/ChangeLog