This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/24419] [3.4/4.0/4.1 Regression]: ix86 prologue puts values beyond stack



------- Comment #6 from jh at suse dot cz  2005-10-18 17:22 -------
Subject: Re:  [3.4/4.0/4.1 Regression]: ix86 prologue puts values beyond stack

> 
> 
> ------- Comment #5 from hjl at lucon dot org  2005-10-18 04:37 -------
> >From bar.i.26.flow2:
> 
> (insn/f 51 11 52 0 (set (mem:DI (plus:DI (reg/f:DI 7 sp)
>                 (const_int -16 [0xfffffffffffffff0])) [0 S8 A8])
>         (reg:DI 3 bx)) -1 (nil)
>     (expr_list:REG_DEAD (reg:DI 3 bx)
>         (nil)))
> 
> (insn/f 52 51 53 0 (set (mem:DI (plus:DI (reg/f:DI 7 sp)
>                 (const_int -8 [0xfffffffffffffff8])) [0 S8 A8])
>         (reg:DI 6 bp)) -1 (nil)
>     (expr_list:REG_DEAD (reg:DI 6 bp)
>         (nil)))
> 
> (insn/f 53 52 54 0 (parallel [
>             (set (reg/f:DI 7 sp)
>                 (plus:DI (reg/f:DI 7 sp)
>                     (const_int -16 [0xfffffffffffffff0])))
>             (clobber (reg:CC 17 flags))
>             (clobber (mem:BLK (scratch) [0 A8]))
>         ]) -1 (nil)
>     (expr_list:REG_UNUSED (reg:CC 17 flags)
>         (nil)))
> 
> Gcc doesn't tell the truth here since memory isn't/shouldn't be clobber
> when adjusting SP.

The transformation to push is probably valid only on x86 where any data
on opposite side of stack pointer is implicitly clobbered (for signal
handers stacks or whatever), so conversion of sub to push is safe.  This
is not very well modelled by RTL and ineed was problem few times in past
(where scheduler overactively moved the stuff resulting in kernel
crashes if I remember right)
On x86-64 we probably should conditionalize this and use only for
functions not using red zone or avoid the red zone usage for argument
area when we are going to produce push instead of sub (the reason
for that optimization is to reduce dependency chain that is more
important that push conversion for Athlon, not sure what is the case for
Nocona)

Honza
> 
> 
> -- 
> 
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24419
> 
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24419


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]