]> git.ipfire.org Git - thirdparty/gcc.git/commit
Get stack adjustment from push operand in pushsf splitter
authorH.J. Lu <hongjiu.lu@intel.com>
Fri, 24 Jan 2014 03:38:10 +0000 (03:38 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Fri, 24 Jan 2014 03:38:10 +0000 (19:38 -0800)
commit16370fa72fff9ed8f0a65d167e3e5b9f9200180d
tree1b60119c165780604b3601e747df63618ab474ea
parentb846c948f29c4b56d6c14a509df4164049dabbd3
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/

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/

PR target/59929
* gcc.target/i386/pr59929.c: New test.

From-SVN: r207023
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr59929.c [new file with mode: 0644]