11#pragma pack(push,_CRT_PACKING)
17#if (defined(_X86_) && !defined(__x86_64))
22 typedef struct __JUMP_BUFFER {
30 unsigned long TryLevel;
32 unsigned long UnwindFunc;
33 unsigned long UnwindData[6];
36#elif defined(__ia64__)
44 typedef SETJMP_FLOAT128 _JBTYPE;
46 typedef struct __JUMP_BUFFER {
48 unsigned long iAReserved[6];
51 unsigned long TryLevel;
53 unsigned long UnwindFunc;
55 unsigned long UnwindData[6];
57 SETJMP_FLOAT128 FltS0;
58 SETJMP_FLOAT128 FltS1;
59 SETJMP_FLOAT128 FltS2;
60 SETJMP_FLOAT128 FltS3;
61 SETJMP_FLOAT128 FltS4;
62 SETJMP_FLOAT128 FltS5;
63 SETJMP_FLOAT128 FltS6;
64 SETJMP_FLOAT128 FltS7;
65 SETJMP_FLOAT128 FltS8;
66 SETJMP_FLOAT128 FltS9;
67 SETJMP_FLOAT128 FltS10;
68 SETJMP_FLOAT128 FltS11;
69 SETJMP_FLOAT128 FltS12;
70 SETJMP_FLOAT128 FltS13;
71 SETJMP_FLOAT128 FltS14;
72 SETJMP_FLOAT128 FltS15;
73 SETJMP_FLOAT128 FltS16;
74 SETJMP_FLOAT128 FltS17;
75 SETJMP_FLOAT128 FltS18;
76 SETJMP_FLOAT128 FltS19;
98#elif defined(__x86_64)
105 typedef SETJMP_FLOAT128 _JBTYPE;
107 typedef struct _JUMP_BUFFER {
120 SETJMP_FLOAT128 Xmm6;
121 SETJMP_FLOAT128 Xmm7;
122 SETJMP_FLOAT128 Xmm8;
123 SETJMP_FLOAT128 Xmm9;
124 SETJMP_FLOAT128 Xmm10;
125 SETJMP_FLOAT128 Xmm11;
126 SETJMP_FLOAT128 Xmm12;
127 SETJMP_FLOAT128 Xmm13;
128 SETJMP_FLOAT128 Xmm14;
129 SETJMP_FLOAT128 Xmm15;
137 typedef struct _JUMP_BUFFER {
150 unsigned long long D[8];
153#elif defined(_M_ARM64)
156#define _JBTYPE unsigned __int64
158typedef struct __JUMP_BUFFER {
181#error Define Setjmp for this architecture!
185#ifndef _JMP_BUF_DEFINED
187#define _JMP_BUF_DEFINED
190#ifdef USE_MINGW_SETJMP_TWO_ARGS
193# define mingw_getsp() \
194 ({ void* value; __asm__ __volatile__("movq %%rsp, %[value]" : [value] "=r" (value)); value; })
196# define mingw_getsp() \
197 ({ void* value; __asm__ __volatile__("movl %%esp, %[value]" : [value] "=r" (value)); value; })
199#define setjmp(BUF) _setjmp((BUF),mingw_getsp())
203#define setjmp(BUF) _setjmpex((BUF),mingw_getsp())
204#define setjmpex(BUF) _setjmpex((BUF),mingw_getsp())
209#define setjmp _setjmp
#define __MINGW_EXTENSION
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION * Registration
#define R4(v, w, x, y, z, i)
__declspec(noreturn) __MINGW_NOTHROW void __cdecl ms_longjmp(jmp_buf _Buf
_Reserved_ PVOID Reserved
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie