[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?

Chris Lattner sabre at nondot.org
Fri Oct 6 14:41:32 PDT 2006


On Fri, 6 Oct 2006, [UTF-8] Rafael Esp?ndola wrote:
> In ARM the stack should be 8 bytes aligned during function calls. A
> function that has at least one  function call then has a stack size of
> 8 bytes. PEI::calculateFrameObjectOffsets corretly computes this
> correctly.
>
> The problem is that the alignment is computed before adding space for
> the call frame size. This is done in emitProlog. Currently the ARM
> backend has a bug in that it doesn't align the new stack.

This sounds like the ADJCALLSTACK DOWN/UP 'instructions' around the call 
aren't set right, or you have declared a SP offset.  It doesn't look like 
the ARM backend does this, so this is probably the problem.

If the PEI stuff knows the right offsets, it should do the alignment for 
you.

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list