[PATCH] D50166: [ARM64] [Windows] MCLayer support for exception handling
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 23 12:43:53 PDT 2018
efriedma added a comment.
Missing test coverage for SEH_SaveFPLR_X, SEH_SaveReg, SEH_SaveFReg, SEH_SetFP, SEH_AddFP, SEH_Nop, and the alloc_s variant of SEH_StackAlloc. (I'd like to see at least one use of each opcode to show the encoding is correct/consistent with llvm-readobj.)
================
Comment at: test/CodeGen/AArch64/wineh5.mir:164
+ frame-setup SEH_SaveFPLR 16
+ frame-setup SEH_PrologEnd
+ $x15 = frame-setup MOVi64imm 187081
----------------
It looks like the SEH_StackAlloc is after the PrologEnd here; is that supposed to be valid? If not, can we report_fatal_error on MIR which does that?
Even ignoring that, the opcode sequence here is clearly wrong; you aren't allowed to call another function in the prolog. (From the unwinder's point of view, __chkstk is dynamic allocation, like alloca.) I guess you generated this using clang; that indicates a bug in the frame lowering patch, not this patch. But it would be nice to have valid testcases anyway.
Repository:
rL LLVM
https://reviews.llvm.org/D50166
More information about the llvm-commits
mailing list