This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [cft] aligning main's stack frame
- From: Richard Henderson <rth at redhat dot com>
- To: Andi Kleen <ak at suse dot de>
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 17 Oct 2005 09:59:57 -0700
- Subject: Re: [cft] aligning main's stack frame
- References: <4351AE1C.1010704@sco.com.suse.lists.egcs> <20051016201110.GA7226@redhat.com.suse.lists.egcs> <p73mzl8samt.fsf@verdi.suse.de>
On Mon, Oct 17, 2005 at 12:25:46PM +0200, Andi Kleen wrote:
> > main:
> > leal 4(%esp), %ecx # create argument pointer
> > andl $-16, %esp # align stack
> > pushl -4(%ecx) # copy return address
>
> This will misaligned the call/ret stack in the CPU, leading to branch
> mispredictions on many of the following RETs. On main it's probably
> not a big issue, but for other functions it might be.
No it won't. I don't actually use that for the return insn.
I cheat and move the CFA, and that copy satisfies the return
address at CFA-4 during the body of the function.
r~