This is the mail archive of the gcc@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]

Question on i386 stack adjustment optimization


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.


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