Revision 0ecfa993 cpu-i386.h

b/cpu-i386.h
1
/* NOTE: this header is included in op-i386.c where global register
2
   variable are used. Care must be used when including glibc headers.
3
 */
1 4
#ifndef CPU_I386_H
2 5
#define CPU_I386_H
3 6

  
7
#include <setjmp.h>
8

  
4 9
#define R_EAX 0
5 10
#define R_ECX 1
6 11
#define R_EDX 2
......
43 48
#define VM_FLAG			0x20000
44 49
/* AC				0x40000 */
45 50

  
51
#define EXCP00_DIVZ	1
52
#define EXCP01_SSTP	2
53
#define EXCP02_NMI	3
54
#define EXCP03_INT3	4
55
#define EXCP04_INTO	5
56
#define EXCP05_BOUND	6
57
#define EXCP06_ILLOP	7
58
#define EXCP07_PREX	8
59
#define EXCP08_DBLE	9
60
#define EXCP09_XERR	10
61
#define EXCP0A_TSS	11
62
#define EXCP0B_NOSEG	12
63
#define EXCP0C_STACK	13
64
#define EXCP0D_GPF	14
65
#define EXCP0E_PAGE	15
66
#define EXCP10_COPR	17
67
#define EXCP11_ALGN	18
68
#define EXCP12_MCHK	19
69

  
70
#define EXCP_SIGNAL	256 /* async signal */
71

  
46 72
enum {
47 73
    CC_OP_DYNAMIC, /* must use dynamic code to get cc_op */
48 74
    CC_OP_EFLAGS,  /* all cc are explicitely computed, CC_SRC = flags */
......
89 115
    /* standard registers */
90 116
    uint32_t regs[8];
91 117
    uint32_t pc; /* cs_case + eip value */
92

  
93
    /* eflags handling */
94 118
    uint32_t eflags;
119

  
120
    /* emulator internal eflags handling */
95 121
    uint32_t cc_src;
96 122
    uint32_t cc_dst;
97 123
    uint32_t cc_op;
98 124
    int32_t df; /* D flag : 1 if D = 0, -1 if D = 1 */
99
    
125

  
100 126
    /* segments */
101 127
    uint8_t *segs_base[6];
102
    uint32_t segs[6];
103 128

  
104 129
    /* FPU state */
105
    CPU86_LDouble fpregs[8];    
106
    uint8_t fptags[8];   /* 0 = valid, 1 = empty */
107 130
    unsigned int fpstt; /* top of stack index */
108 131
    unsigned int fpus;
109 132
    unsigned int fpuc;
133
    uint8_t fptags[8];   /* 0 = valid, 1 = empty */
134
    CPU86_LDouble fpregs[8];    
135

  
136
    /* segments */
137
    uint32_t segs[6];
110 138

  
111 139
    /* emulator internal variables */
140
    
112 141
    CPU86_LDouble ft0;
142

  
143
    /* exception handling */
144
    jmp_buf jmp_env;
145
    int exception_index;
113 146
} CPUX86State;
114 147

  
115 148
static inline int ldub(void *ptr)

Also available in: Unified diff