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 by

http://gcc.gnu.org/ml/gcc-patches/2000-04/msg00263.html

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.

Thanks.


H.J.

Reply via email to