Static tramp v5 (#624)
[platform/upstream/libffi.git] / src / x86 / win64.S
index 8315e8b..f3ace8d 100644 (file)
@@ -234,6 +234,20 @@ C(ffi_closure_win64):
 
        cfi_endproc
        SEH(.seh_endproc)
+
+#if defined(FFI_EXEC_STATIC_TRAMP)
+       .align  8
+       .globl  C(ffi_closure_win64_alt)
+       FFI_HIDDEN(C(ffi_closure_win64_alt))
+
+       SEH(.seh_proc ffi_closure_win64_alt)
+C(ffi_closure_win64_alt):
+       _CET_ENDBR
+       movq    8(%rsp), %r10
+       addq    $16, %rsp
+       jmp     C(ffi_closure_win64)
+       SEH(.seh_endproc)
+#endif
 #endif /* __x86_64__ */
 
 #if defined __ELF__ && defined __linux__