339 |
uint32_t flags; |
uint32_t flags; |
340 |
} SegmentCache; |
} SegmentCache; |
341 |
|
|
342 |
typedef struct { |
typedef union { |
343 |
union { |
uint8_t _b[16]; |
344 |
uint8_t b[16]; |
uint16_t _w[8]; |
345 |
uint16_t w[8]; |
uint32_t _l[4]; |
346 |
uint32_t l[4]; |
uint64_t _q[2]; |
|
uint64_t q[2]; |
|
|
} u; |
|
347 |
} XMMReg; |
} XMMReg; |
348 |
|
|
349 |
|
typedef union { |
350 |
|
uint8_t _b[8]; |
351 |
|
uint16_t _w[2]; |
352 |
|
uint32_t _l[1]; |
353 |
|
uint64_t q; |
354 |
|
} MMXReg; |
355 |
|
|
356 |
|
#ifdef WORDS_BIGENDIAN |
357 |
|
#define XMM_B(n) _b[15 - (n)] |
358 |
|
#define XMM_W(n) _w[7 - (n)] |
359 |
|
#define XMM_L(n) _l[3 - (n)] |
360 |
|
#define XMM_Q(n) _q[1 - (n)] |
361 |
|
|
362 |
|
#define MMX_B(n) _b[7 - (n)] |
363 |
|
#define MMX_W(n) _w[3 - (n)] |
364 |
|
#define MMX_L(n) _l[1 - (n)] |
365 |
|
#else |
366 |
|
#define XMM_B(n) _b[n] |
367 |
|
#define XMM_W(n) _w[n] |
368 |
|
#define XMM_L(n) _l[n] |
369 |
|
#define XMM_Q(n) _q[n] |
370 |
|
|
371 |
|
#define MMX_B(n) _b[n] |
372 |
|
#define MMX_W(n) _w[n] |
373 |
|
#define MMX_L(n) _l[n] |
374 |
|
#endif |
375 |
|
|
376 |
#ifdef TARGET_X86_64 |
#ifdef TARGET_X86_64 |
377 |
#define CPU_NB_REGS 16 |
#define CPU_NB_REGS 16 |
378 |
#else |
#else |
450 |
int exception_index; |
int exception_index; |
451 |
int error_code; |
int error_code; |
452 |
int exception_is_int; |
int exception_is_int; |
453 |
int exception_next_eip; |
target_ulong exception_next_eip; |
454 |
struct TranslationBlock *current_tb; /* currently executing TB */ |
struct TranslationBlock *current_tb; /* currently executing TB */ |
455 |
target_ulong cr[5]; /* NOTE: cr1 is unused */ |
target_ulong cr[5]; /* NOTE: cr1 is unused */ |
456 |
target_ulong dr[8]; /* debug registers */ |
target_ulong dr[8]; /* debug registers */ |