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 unsigned short FpCsr;
121 unsigned short Spare;
122 SETJMP_FLOAT128 Xmm6;
123 SETJMP_FLOAT128 Xmm7;
124 SETJMP_FLOAT128 Xmm8;
125 SETJMP_FLOAT128 Xmm9;
126 SETJMP_FLOAT128 Xmm10;
127 SETJMP_FLOAT128 Xmm11;
128 SETJMP_FLOAT128 Xmm12;
129 SETJMP_FLOAT128 Xmm13;
130 SETJMP_FLOAT128 Xmm14;
131 SETJMP_FLOAT128 Xmm15;
139 typedef struct _JUMP_BUFFER {
152 unsigned long long D[8];
155#elif defined(_M_ARM64)
158#define _JBTYPE unsigned __int64
160typedef struct __JUMP_BUFFER {
183#error Define Setjmp for this architecture!
187#ifndef _JMP_BUF_DEFINED
189#define _JMP_BUF_DEFINED
192#ifdef USE_MINGW_SETJMP_TWO_ARGS
195# define mingw_getsp() \
196 ({ void* value; __asm__ __volatile__("movq %%rsp, %[value]" : [value] "=r" (value)); value; })
198# define mingw_getsp() \
199 ({ void* value; __asm__ __volatile__("movl %%esp, %[value]" : [value] "=r" (value)); value; })
201#define setjmp(BUF) _setjmp((BUF),mingw_getsp())
205#define setjmp(BUF) _setjmpex((BUF),mingw_getsp())
206#define setjmpex(BUF) _setjmpex((BUF),mingw_getsp())
211#define setjmp _setjmp
#define __MINGW_EXTENSION
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION * Registration
void __declspec(noinline) __cdecl _free_base(void *const block)
#define R4(v, w, x, y, z, i)
_Reserved_ PVOID Reserved
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie