http://llvm.org/bugs/show_bug.cgi?id=22467
Reid Kleckner <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Reid Kleckner <[email protected]> --- David fixed this in r228641. X86FrameLowering may be my least favorite class in LLVM. Now we should emit prologues like GCC and MSVC when a frame pointer is required: push %rbp .seh_pushreg N push %rbx .seh_pushreg N ... sub $320, %rsp .seh_stackalloc 320 lea -128(%rsp), %rbp .seh_setframe 5, 240 All offsets calculated via rbp have been updated to take into account the space used by CSRs and the space used to do stackalloc. One thing we don't account for is the "tail call return addr delta" which comes into play when someone asks for guaranteed tail call optimization. Another thing we'd like to do is make __builtin_frameaddress(0) / llvm.frameaddress(i32 0) return "%rbp + 128" in this example to recover the stack pointer when the FP was established. The raw value of RBP is not useful for stack unwinding anymore, but the SP at the end of the prologue can be used in combination with the xdata tables to unwind. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ LLVMbugs mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs
