Rework trap handling assembly code

This commit is contained in:
2024-04-23 15:07:08 +02:00
parent a36c02fde8
commit 22693a48d3
6 changed files with 246 additions and 70 deletions

View File

@@ -381,14 +381,32 @@ typedef struct _KSWITCH_FRAME
/* Trap frame definition */
typedef struct _KTRAP_FRAME
{
M128 Xmm0;
M128 Xmm1;
M128 Xmm2;
M128 Xmm3;
M128 Xmm4;
M128 Xmm5;
M128 Xmm6;
M128 Xmm7;
M128 Xmm8;
M128 Xmm9;
M128 Xmm10;
M128 Xmm11;
M128 Xmm12;
M128 Xmm13;
M128 Xmm14;
M128 Xmm15;
ULONG MxCsr;
ULONG PreviousMode;
ULONGLONG Cr2;
ULONGLONG Cr3;
ULONGLONG Dr0;
ULONGLONG Dr1;
ULONGLONG Dr2;
ULONGLONG Dr3;
ULONGLONG Dr6;
ULONGLONG Dr7;
ULONGLONG Cr2;
ULONGLONG Cr3;
USHORT SegDs;
USHORT SegEs;
USHORT SegFs;
@@ -397,9 +415,6 @@ typedef struct _KTRAP_FRAME
ULONGLONG Rbx;
ULONGLONG Rcx;
ULONGLONG Rdx;
ULONGLONG Rsi;
ULONGLONG Rdi;
ULONGLONG Rbp;
ULONGLONG R8;
ULONGLONG R9;
ULONGLONG R10;
@@ -408,13 +423,16 @@ typedef struct _KTRAP_FRAME
ULONGLONG R13;
ULONGLONG R14;
ULONGLONG R15;
ULONGLONG Rsi;
ULONGLONG Rdi;
ULONGLONG Rbp;
ULONGLONG Vector;
union {
ULONGLONG ErrorCode;
ULONGLONG ExceptionFrame;
};
ULONGLONG Rip;
ULONGLONG Cs;
ULONGLONG SegCs;
ULONGLONG Flags;
ULONGLONG Rsp;
ULONGLONG SegSs;

View File

@@ -382,14 +382,15 @@ typedef struct _KSWITCH_FRAME
/* Trap frame definition */
typedef struct _KTRAP_FRAME
{
ULONG PreviousMode;
ULONG Cr2;
ULONG Cr3;
ULONG Dr0;
ULONG Dr1;
ULONG Dr2;
ULONG Dr3;
ULONG Dr6;
ULONG Dr7;
ULONG Cr2;
ULONG Cr3;
USHORT SegDs;
USHORT SegEs;
USHORT SegFs;
@@ -404,7 +405,7 @@ typedef struct _KTRAP_FRAME
ULONG Vector;
ULONG ErrorCode;
ULONG Eip;
ULONG Cs;
ULONG SegCs;
ULONG Flags;
ULONG Esp;
ULONG SegSs;