Question on i386 stack adjustment optimization

H. J. Lu hjl@lucon.org
Tue Oct 18 00:08:00 GMT 2005


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.



More information about the Gcc mailing list