This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/59929] [4.8/4.9 regression] -mno-accumulate-outgoing-args doesn't work with x32
- From: "hjl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 24 Jan 2014 03:38:42 +0000
- Subject: [Bug target/59929] [4.8/4.9 regression] -mno-accumulate-outgoing-args doesn't work with x32
- Auto-submitted: auto-generated
- References: <bug-59929-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59929
--- Comment #4 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Fri Jan 24 03:38:10 2014
New Revision: 207023
URL: http://gcc.gnu.org/viewcvs?rev=207023&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/
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.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr59929.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.md
trunk/gcc/testsuite/ChangeLog