================ ---------------- trungnt2910 wrote:
> We might still need the frame pointer. We force FP-relative addressing modes > to access arguments passed on the stack in functions with stack realignment. > We could stash the pointer somewhere else, but we'd need code to explicitly > do that. >From what I observed, we actually don't need the frame pointer even in this >case. I tried examples where the arguments are passed through the stack. In >these examples, `clang` seems to emit `alloca` statements to allocate them on >the callee's stack. When transformed into assembly, these arguments are loaded from the parents stack using the function's R11 (which is entirely valid outside of SEH funclets) and copied into the function's stack **after** any potential realignment. When these parameters are accessed by SEH funclets, `R6` (base pointer) offsets are valid, just like it is for any other local stack variable. > I'd like to see some test coverage, in any case. I added a `clang` test for ARM that asserts my observation. https://github.com/llvm/llvm-project/pull/184953 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
