From: Billy Laws <[email protected]>
Signed-off-by: Jacek Caban <[email protected]>
---
mingw-w64-headers/include/winnt.h | 128 ++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index a49c1632c..366bd807e 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -2335,6 +2335,114 @@ extern "C" {
#endif
+ typedef struct DECLSPEC_ALIGN(16) _ARM64EC_NT_CONTEXT
+ {
+ union
+ {
+ struct
+ {
+ DWORD64 AMD64_P1Home; /* 000 */
+ DWORD64 AMD64_P2Home; /* 008 */
+ DWORD64 AMD64_P3Home; /* 010 */
+ DWORD64 AMD64_P4Home; /* 018 */
+ DWORD64 AMD64_P5Home; /* 020 */
+ DWORD64 AMD64_P6Home; /* 028 */
+ DWORD ContextFlags; /* 030 */
+ DWORD AMD64_MxCsr_copy; /* 034 */
+ WORD AMD64_SegCs; /* 038 */
+ WORD AMD64_SegDs; /* 03a */
+ WORD AMD64_SegEs; /* 03c */
+ WORD AMD64_SegFs; /* 03e */
+ WORD AMD64_SegGs; /* 040 */
+ WORD AMD64_SegSs; /* 042 */
+ DWORD AMD64_EFlags; /* 044 */
+ DWORD64 AMD64_Dr0; /* 048 */
+ DWORD64 AMD64_Dr1; /* 050 */
+ DWORD64 AMD64_Dr2; /* 058 */
+ DWORD64 AMD64_Dr3; /* 060 */
+ DWORD64 AMD64_Dr6; /* 068 */
+ DWORD64 AMD64_Dr7; /* 070 */
+ DWORD64 X8; /* 078 (Rax) */
+ DWORD64 X0; /* 080 (Rcx) */
+ DWORD64 X1; /* 088 (Rdx) */
+ DWORD64 X27; /* 090 (Rbx) */
+ DWORD64 Sp; /* 098 (Rsp) */
+ DWORD64 Fp; /* 0a0 (Rbp) */
+ DWORD64 X25; /* 0a8 (Rsi) */
+ DWORD64 X26; /* 0b0 (Rdi) */
+ DWORD64 X2; /* 0b8 (R8) */
+ DWORD64 X3; /* 0c0 (R9) */
+ DWORD64 X4; /* 0c8 (R10) */
+ DWORD64 X5; /* 0d0 (R11) */
+ DWORD64 X19; /* 0d8 (R12) */
+ DWORD64 X20; /* 0e0 (R13) */
+ DWORD64 X21; /* 0e8 (R14) */
+ DWORD64 X22; /* 0f0 (R15) */
+ DWORD64 Pc; /* 0f8 (Rip) */
+ struct
+ {
+ WORD AMD64_ControlWord; /* 100 */
+ WORD AMD64_StatusWord; /* 102 */
+ BYTE AMD64_TagWord; /* 104 */
+ BYTE AMD64_Reserved1; /* 105 */
+ WORD AMD64_ErrorOpcode; /* 106 */
+ DWORD AMD64_ErrorOffset; /* 108 */
+ WORD AMD64_ErrorSelector; /* 10c */
+ WORD AMD64_Reserved2; /* 10e */
+ DWORD AMD64_DataOffset; /* 110 */
+ WORD AMD64_DataSelector; /* 114 */
+ WORD AMD64_Reserved3; /* 116 */
+ DWORD AMD64_MxCsr; /* 118 */
+ DWORD AMD64_MxCsr_Mask; /* 11c */
+ DWORD64 Lr; /* 120 (FloatRegisters[0]) */
+ WORD X16_0; /* 128 */
+ WORD AMD64_St0_Reserved1; /* 12a */
+ DWORD AMD64_St0_Reserved2; /* 12c */
+ DWORD64 X6; /* 130 (FloatRegisters[1]) */
+ WORD X16_1; /* 138 */
+ WORD AMD64_St1_Reserved1; /* 13a */
+ DWORD AMD64_St1_Reserved2; /* 13c */
+ DWORD64 X7; /* 140 (FloatRegisters[2]) */
+ WORD X16_2; /* 148 */
+ WORD AMD64_St2_Reserved1; /* 14a */
+ DWORD AMD64_St2_Reserved2; /* 14c */
+ DWORD64 X9; /* 150 (FloatRegisters[3]) */
+ WORD X16_3; /* 158 */
+ WORD AMD64_St3_Reserved1; /* 15a */
+ DWORD AMD64_St3_Reserved2; /* 15c */
+ DWORD64 X10; /* 160 (FloatRegisters[4]) */
+ WORD X17_0; /* 168 */
+ WORD AMD64_St4_Reserved1; /* 16a */
+ DWORD AMD64_St4_Reserved2; /* 16c */
+ DWORD64 X11; /* 170 (FloatRegisters[5]) */
+ WORD X17_1; /* 178 */
+ WORD AMD64_St5_Reserved1; /* 17a */
+ DWORD AMD64_St5_Reserved2; /* 17c */
+ DWORD64 X12; /* 180 (FloatRegisters[6]) */
+ WORD X17_2; /* 188 */
+ WORD AMD64_St6_Reserved1; /* 18a */
+ DWORD AMD64_St6_Reserved2; /* 18c */
+ DWORD64 X15; /* 190 (FloatRegisters[7]) */
+ WORD X17_3; /* 198 */
+ WORD AMD64_St7_Reserved1; /* 19a */
+ DWORD AMD64_St7_Reserved2; /* 19c */
+ ARM64_NT_NEON128 V[16]; /* 1a0 (XmmRegisters) */
+ BYTE AMD64_XSAVE_FORMAT_Reserved4[96]; /* 2a0 */
+ } DUMMYSTRUCTNAME;
+ ARM64_NT_NEON128 AMD64_VectorRegister[26]; /* 300 */
+ DWORD64 AMD64_VectorControl; /* 4a0 */
+ DWORD64 AMD64_DebugControl; /* 4a8 */
+ DWORD64 AMD64_LastBranchToRip; /* 4b0 */
+ DWORD64 AMD64_LastBranchFromRip; /* 4b8 */
+ DWORD64 AMD64_LastExceptionToRip; /* 4c0 */
+ DWORD64 AMD64_LastExceptionFromRip; /* 4c8 */
+ } DUMMYSTRUCTNAME;
+#ifdef _ARM64EC_
+ CONTEXT AMD64_Context;
+#endif
+ } DUMMYUNIONNAME;
+ } ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT;
+
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY ARM64_RUNTIME_FUNCTION, *PARM64_RUNTIME_FUNCTION;
#ifdef _ARM64_
@@ -2991,6 +3099,26 @@ __buildmemorybarrier()
ULONG Fill0;
};
+#ifdef _ARM64EC_
+ typedef struct _DISPATCHER_CONTEXT_ARM64EC {
+ DWORD64 ControlPc;
+ DWORD64 ImageBase;
+ PRUNTIME_FUNCTION FunctionEntry;
+ DWORD64 EstablisherFrame;
+ union {
+ DWORD64 TargetIp;
+ DWORD64 TargetPc;
+ } DUMMYUNIONNAME;
+ PCONTEXT ContextRecord;
+ PEXCEPTION_ROUTINE LanguageHandler;
+ PVOID HandlerData;
+ struct _UNWIND_HISTORY_TABLE *HistoryTable;
+ DWORD ScopeIndex;
+ BOOLEAN ControlPcIsUnwound;
+ PBYTE NonVolatileRegisters;
+ } DISPATCHER_CONTEXT_ARM64EC, *PDISPATCHER_CONTEXT_ARM64EC;
+#endif /* _ARM64EC_ */
+
/* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */
typedef struct _KNONVOLATILE_CONTEXT_POINTERS
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public