On Tue, Oct 18, 2005 at 07:10:52PM +0200, Jan Hubicka wrote:
> > I modified the gcc i386 backend. Now my gcc optimizes function prologue
> >
> > movq%rbx, -16(%rsp)
> > movq%rbp, -8(%rsp)
> > subq$16, %rsp
> >
> > to
> > movq%rbx, -16(%rsp)
> > movq%rbp, -8
> I modified the gcc i386 backend. Now my gcc optimizes function prologue
>
> movq%rbx, -16(%rsp)
> movq%rbp, -8(%rsp)
> subq$16, %rsp
>
> to
> movq%rbx, -16(%rsp)
> movq%rbp, -8(%rsp)
> pushq %rax
> pushq %rax
>
> The change was
>I have a question. It is OK to turn stack pointer addition into
>pop instructions with a scratch register. But I don't see how you can
>turn stack pointer substraction into push instructions with a
>scratch register since push will change the contents of the stack,
>in addition to stack pointer.
I modified the gcc i386 backend. Now my gcc optimizes function prologue
movq%rbx, -16(%rsp)
movq%rbp, -8(%rsp)
subq$16, %rsp
to
movq%rbx, -16(%rsp)
movq%rbp, -8(%rsp)
pushq %rax
pushq %rax
The change was introduced b