[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