/vm/os-windows.32.hpp
http://github.com/abeaumont/factor · C++ Header · 38 lines · 30 code · 6 blank · 2 comment · 0 complexity · 50e3c43c0be2fdc04ecdfdf8db265d86 MD5 · raw file
- #include "atomic-cl-32.hpp"
- namespace factor
- {
- #define ESP Esp
- #define EIP Eip
- typedef struct DECLSPEC_ALIGN(16) _M128A {
- ULONGLONG Low;
- LONGLONG High;
- } M128A, *PM128A;
- /* The ExtendedRegisters field of the x86.32 CONTEXT structure uses this layout; however,
- * this structure is only made available from winnt.h on x86.64 */
- typedef struct _XMM_SAVE_AREA32 {
- WORD ControlWord; /* 000 */
- WORD StatusWord; /* 002 */
- BYTE TagWord; /* 004 */
- BYTE Reserved1; /* 005 */
- WORD ErrorOpcode; /* 006 */
- DWORD ErrorOffset; /* 008 */
- WORD ErrorSelector; /* 00c */
- WORD Reserved2; /* 00e */
- DWORD DataOffset; /* 010 */
- WORD DataSelector; /* 014 */
- WORD Reserved3; /* 016 */
- DWORD MxCsr; /* 018 */
- DWORD MxCsr_Mask; /* 01c */
- M128A FloatRegisters[8]; /* 020 */
- M128A XmmRegisters[16]; /* 0a0 */
- BYTE Reserved4[96]; /* 1a0 */
- } XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
- #define X87SW(ctx) (ctx)->FloatSave.StatusWord
- #define MXCSR(ctx) ((XMM_SAVE_AREA32*)((ctx)->ExtendedRegisters))->MxCsr
- }