Revision 7a0e1f41 target-i386/cpu.h
b/target-i386/cpu.h | ||
---|---|---|
36 | 36 |
|
37 | 37 |
#include "cpu-defs.h" |
38 | 38 |
|
39 |
#include "softfloat.h" |
|
40 |
|
|
39 | 41 |
#if defined(__i386__) && !defined(CONFIG_SOFTMMU) |
40 | 42 |
#define USE_CODE_COPY |
41 | 43 |
#endif |
... | ... | |
332 | 334 |
CC_OP_NB, |
333 | 335 |
}; |
334 | 336 |
|
335 |
#if (defined(__i386__) || defined(__x86_64__)) && !defined(_BSD)
|
|
337 |
#ifdef FLOATX80
|
|
336 | 338 |
#define USE_X86LDOUBLE |
337 | 339 |
#endif |
338 | 340 |
|
339 | 341 |
#ifdef USE_X86LDOUBLE |
340 |
typedef long double CPU86_LDouble;
|
|
342 |
typedef floatx80 CPU86_LDouble;
|
|
341 | 343 |
#else |
342 |
typedef double CPU86_LDouble;
|
|
344 |
typedef float64 CPU86_LDouble;
|
|
343 | 345 |
#endif |
344 | 346 |
|
345 | 347 |
typedef struct SegmentCache { |
... | ... | |
354 | 356 |
uint16_t _w[8]; |
355 | 357 |
uint32_t _l[4]; |
356 | 358 |
uint64_t _q[2]; |
357 |
float _s[4]; |
|
358 |
double _d[2];
|
|
359 |
float32 _s[4];
|
|
360 |
float64 _d[2];
|
|
359 | 361 |
} XMMReg; |
360 | 362 |
|
361 | 363 |
typedef union { |
... | ... | |
441 | 443 |
} fpregs[8]; |
442 | 444 |
|
443 | 445 |
/* emulator internal variables */ |
446 |
float_status fp_status; |
|
444 | 447 |
CPU86_LDouble ft0; |
445 | 448 |
union { |
446 | 449 |
float f; |
... | ... | |
449 | 452 |
int64_t i64; |
450 | 453 |
} fp_convert; |
451 | 454 |
|
455 |
float_status sse_status; |
|
452 | 456 |
uint32_t mxcsr; |
453 | 457 |
XMMReg xmm_regs[CPU_NB_REGS]; |
454 | 458 |
XMMReg xmm_t0; |
Also available in: Unified diff