[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