[llvm] [llvm-ml] Add MASM unwind v3 support for x64 exception handling and improve MSVC compat (PR #202809)

Daniel Paoliello via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 09:18:40 PDT 2026


================
@@ -0,0 +1,177 @@
+; RUN: llvm-ml64 -filetype=s /unwindv3 %s /Fo - | FileCheck %s
+
+.code
+
+; Verify @UnwindVersion reflects the /unwindv3 flag.
+if @UnwindVersion ne 3
+  .err <@UnwindVersion should be 3 when /unwindv3 is used>
+endif
+
+t1 PROC FRAME
+  push2 r12, r13
+  .push2reg r12, r13
+  sub rsp, 32
+  .allocstack 32
+  .endprolog
+  nop
+  .beginepilog
+  .freestack 32
+  add rsp, 32
+  .pop2reg r12, r13
+  pop2 r13, r12
+  .endepilog
+  ret
+t1 ENDP
+
+; CHECK: .seh_proc t1
+
+; CHECK: t1:
+; CHECK: push2 r12, r13
+; CHECK: .seh_push2regs r12, r13
+; CHECK: sub rsp, 32
+; CHECK: .seh_stackalloc 32
+; CHECK: .seh_endprologue
+; CHECK: nop
+; CHECK: .seh_startepilogue
+; CHECK: .seh_stackalloc 32
+; CHECK: add rsp, 32
+; CHECK: .seh_push2regs r13, r12
----------------
dpaoliello wrote:

Yep, good catch - both the input and output were reversed.

https://github.com/llvm/llvm-project/pull/202809


More information about the llvm-commits mailing list