forked from OSchip/llvm-project
[X86] Tighten up a comment which confused x64 ABI terminology.
The x64 ABI has two major function types: - frame functions - leaf functions A frame function is one which requires a stack frame. A leaf function is one which does not. A frame function may or may not have a frame pointer. A leaf function does not require a stack frame and may never modify SP except via a return (RET, tail call via JMP). A frame function which has a frame pointer is permitted to use the LEA instruction in the epilogue, a frame function without which doesn't establish a frame pointer must use ADD to adjust the stack pointer epilogue. Fun fact: Leaf functions don't require a function table entry (associated PDATA/XDATA). llvm-svn: 281006
This commit is contained in:
parent
ceff022800
commit
2c3ea55498
|
@ -1400,9 +1400,9 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
|
|||
|
||||
bool X86FrameLowering::canUseLEAForSPInEpilogue(
|
||||
const MachineFunction &MF) const {
|
||||
// We can't use LEA instructions for adjusting the stack pointer if this is a
|
||||
// leaf function in the Win64 ABI. Only ADD instructions may be used to
|
||||
// deallocate the stack.
|
||||
// We can't use LEA instructions for adjusting the stack pointer if we don't
|
||||
// have a frame pointer in the Win64 ABI. Only ADD instructions may be used
|
||||
// to deallocate the stack.
|
||||
// This means that we can use LEA for SP in two situations:
|
||||
// 1. We *aren't* using the Win64 ABI which means we are free to use LEA.
|
||||
// 2. We *have* a frame pointer which means we are permitted to use LEA.
|
||||
|
|
Loading…
Reference in New Issue