This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch i386 4.4/trunk]: Fix sse restore for x86_64 in case of !sp_valid
> 2009/9/21 Jan Hubicka <hubicka@ucw.cz>:
> >> Hello,
> >>
> >> In ix86_expand_epilogue for sp_valid == 0 are the xmm register
> >> restored ?incorrectly. This leads to possible clobbered xmm register
> >> on unwind. This issue could be related to the AVX fail, too.
> >
> > I must say I fail to see how 4.4 version can make difference. ?If
> > padding0 is nonzero, nsse_regs is too, so I see it is redundant testing
> > it, but it also should not hurt?
> >
> > Honza
> >
>
> padding0 can be != 0, if there are standard registers saved (or none
> needs to be saved), as it aligns to always to 16 bytes.
If I remember right, I introduced padding0 to be area to pad SSE
register save area. In current 4.4 tree it is set only here:
/* Align SSE reg save area. */
if (frame->nsseregs)
frame->padding0 = ((offset + 16 - 1) & -16) - offset;
else
frame->padding0 = 0;
Padding1 was traditionally used to align function to 16 bytes.
Honza
>
> Cheers,
> Kai
>
> --
> | (\_/) This is Bunny. Copy and paste
> | (='.'=) Bunny into your signature to help
> | (")_(") him gain world domination