Commit 3dab47d 1 parent f630092 commit 3dab47d Copy full SHA for 3dab47d
File tree 1 file changed +15
-0
lines changed
1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -132,6 +132,21 @@ extern void CONTEXT_CaptureContext(LPCONTEXT lpContext);
132
132
#define MCREG_EFlags (mc ) ((mc).mc_rflags)
133
133
#define MCREG_SegCs (mc ) ((mc).mc_cs)
134
134
135
+ // #define FPREG_Xmm(uc, index) *(M128A*)&((uc)->__fpregs_mem._xmm[index])
136
+
137
+ // #define FPREG_St(uc, index) *(M128A*)&((uc)->mc_fpstate[index])
138
+
139
+ // from x86/fpu.h: struct __envxmm64
140
+ #define FPREG_ControlWord (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_cw)
141
+ #define FPREG_StatusWord (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_sw)
142
+ #define FPREG_TagWord (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_tw)
143
+ #define FPREG_ErrorOffset (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_rip) // *(DWORD*)&((uc)->__fpregs_mem.rdp)
144
+ #define FPREG_ErrorSelector (uc ) *((WORD*) &(((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_rip) + 2 ) // *(((WORD*)&((uc)->__fpregs_mem.rip)) + 2)
145
+ #define FPREG_DataOffset (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_rdp) // *(DWORD*)&((uc)->__fpregs_mem.rdp)
146
+ #define FPREG_DataSelector (uc ) *((WORD*) &(((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_rdp) + 2 ) // *(((WORD*)&((uc)->__fpregs_mem.rdp)) + 2)
147
+ #define FPREG_MxCsr (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_mxcsr)
148
+ #define FPREG_MxCsr_Mask (uc ) (((savefpu*)((uc)->uc_mcontext.mc_fpstate))->sv_env.en_mxcsr_mask)
149
+
135
150
#else // BIT64
136
151
137
152
#define MCREG_Ebx (mc ) ((mc).mc_ebx)
You can’t perform that action at this time.
0 commit comments