Displaying 4 results from an estimated 4 matches for "targetalign".
2006 Oct 06
0
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
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
2006 Oct 06
2
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
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
2006 Oct 07
2
[LLVMdev] should PEI::calculateFrameObjectOffsets align the stack?
...s. In
the PPC backend we have:
----------------------------------------------------------------------
if (MFI->hasCalls()) {
NumBytes += MFI->getMaxCallFrameSize();
}
if ((NumBytes == 0) || (NumBytes <= 224 && !HasFP && !MFI->hasCalls()
&& MaxAlign <= TargetAlign)) {
MFI->setStackSize(0);
return;
}
unsigned Align = std::max(TargetAlign, MaxAlign);
unsigned GPRSize = 4;
unsigned Size = HasFP ? GPRSize + GPRSize : GPRSize;
NumBytes = (NumBytes+Size+Align-1)/Align*Align;
---------------------------------------------------------------------...
2013 Oct 21
1
[LLVMdev] [PATCH] Unwanted r11 in push/pop on Cortex-M.
...he Prolog/Epilog Inserted calls the target specific
ARMFrameLowering::processFunctionBeforeCalleeSavedScan
- at this point the we need to fix the fact that SP would not be EABI
compliant because only 1 register has been spilled so far
- inside processFunctionBeforeCalleeSavedScan, there a check: if
TargetAlign == 8 && (NumGPRSpills & 1) then we align the stack by pushing
one of the _unspilled_ registers.
The problem is that this "unspilled" register list starts with r11 (for
reasons I'm not clear about), so I decided to skip all the registers r8-r15.
The part I'm not sure a...