--- Comment #16 from hjl at gcc dot gnu dot org 2008-08-05 15:43 ---
Subject: Bug 37010
Author: hjl
Date: Tue Aug 5 15:41:59 2008
New Revision: 138730
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138730
Log:
gcc/
2008-08-05 H.J. Lu <[EMAIL PROTECTED]>
PR middle-en
--- Comment #15 from Joey dot ye at intel dot com 2008-08-05 01:01 ---
(In reply to comment #12)
> I think the problem is in
> /* Set offset to aligned because the realigned frame tarts from here. */
> if (stack_realign_fp)
> offset = (offset + stack_alignment_needed -1) & -stac
--- Comment #14 from hjl dot tools at gmail dot com 2008-08-04 21:43
---
With stack alignment, we have different stack frame layouts. We
need to handle them properly.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37010
--- Comment #13 from hjl dot tools at gmail dot com 2008-08-04 21:29
---
The previous ix86_compute_frame_layout uses
/* Align start of frame for local function. */
frame->padding1 = ((offset + stack_alignment_needed - 1)
& -stack_alignment_needed) - offset;
t
--- Comment #12 from hjl dot tools at gmail dot com 2008-08-04 19:38
---
(In reply to comment #11)
> (In reply to comment #10)
> > Did you mean we needed 2 "additional 'and $-16, sp" insns to align the
> > stack? I don't think so.
> Definitely not.
> Solution 1: Just ignore it. __m128
--- Comment #11 from Joey dot ye at intel dot com 2008-08-04 14:11 ---
(In reply to comment #10)
> Did you mean we needed 2 "additional 'and $-16, sp" insns to align the
> stack? I don't think so.
Definitely not.
Solution 1: Just ignore it. __m128 parameter shouldn't be passed with
-mpr
--- Comment #10 from hjl dot tools at gmail dot com 2008-08-04 12:26
---
(In reply to comment #8)
> Root cause is that outgoing parameter frame is aligned based on stack pointer.
> Namely, address_of_stack_param = SP + offset + fixed_padding.
>
> With -mpreferred-stack-boundary=2, alig
--- Comment #9 from hjl dot tools at gmail dot com 2008-08-04 12:24 ---
(In reply to comment #7)
> This problem is associated with -mpreferred-stack-boundary=2, rather than with
> stack alignment. Following case fails on trunk before merging with stack
> branch:
Of course, before stack
--- Comment #8 from Joey dot ye at intel dot com 2008-08-04 09:11 ---
Root cause is that outgoing parameter frame is aligned based on stack pointer.
Namely, address_of_stack_param = SP + offset + fixed_padding.
With -mpreferred-stack-boundary=2, alignment of SP is only 4 bytes. Outgoing
--- Comment #7 from Joey dot ye at intel dot com 2008-08-04 09:03 ---
This problem is associated with -mpreferred-stack-boundary=2, rather than with
stack alignment. Following case fails on trunk before merging with stack
branch:
$ cat y1.c
/* PR middle-end/37010 */
/* { dg-do run { targ
--- Comment #6 from Joey dot ye at intel dot com 2008-08-04 08:28 ---
(In reply to comment #3)
> Joey, when we compute frame layout, we don't count the duplicated
> return address pushed onto stack when DRAP is used. Also when we
> push return address, shouldn't we use -UNITS_PER_WORD, i
--- Comment #5 from hjl dot tools at gmail dot com 2008-08-04 05:52 ---
It is the problem with -mno-accumulate-outgoing-args:
bash-3.2$ /export/build/gnu/gcc-avx/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-avx/build-x86_64-linux/gcc/ -m32 -msse2 -DDEBUG
-mno-accumulate-outgoing-
12 matches
Mail list logo