]> gitweb.factorcode.org Git - factor.git/blob - vm/os-windows-nt.32.hpp
Fix http tests and io.server.connection docs
[factor.git] / vm / os-windows-nt.32.hpp
1 namespace factor
2 {
3
4 #define ESP Esp
5 #define EIP Eip
6
7 typedef struct DECLSPEC_ALIGN(16) _M128A {
8         ULONGLONG Low;
9         LONGLONG High;
10 } M128A, *PM128A;
11
12 /* The ExtendedRegisters field of the x86.32 CONTEXT structure uses this layout; however,
13  * this structure is only made available from winnt.h on x86.64 */
14 typedef struct _XMM_SAVE_AREA32 {
15         WORD ControlWord;        /* 000 */
16         WORD StatusWord;         /* 002 */
17         BYTE TagWord;            /* 004 */
18         BYTE Reserved1;          /* 005 */
19         WORD ErrorOpcode;        /* 006 */
20         DWORD ErrorOffset;       /* 008 */
21         WORD ErrorSelector;      /* 00c */
22         WORD Reserved2;          /* 00e */
23         DWORD DataOffset;        /* 010 */
24         WORD DataSelector;       /* 014 */
25         WORD Reserved3;          /* 016 */
26         DWORD MxCsr;             /* 018 */
27         DWORD MxCsr_Mask;        /* 01c */
28         M128A FloatRegisters[8]; /* 020 */
29         M128A XmmRegisters[16];  /* 0a0 */
30         BYTE Reserved4[96];      /* 1a0 */
31 } XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
32
33 #define X87SW(ctx) (ctx)->FloatSave.StatusWord
34 #define MXCSR(ctx) ((XMM_SAVE_AREA32*)((ctx)->ExtendedRegisters))->MxCsr
35
36 }