mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
soft float support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1336 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
4ecc31906d
commit
7a0e1f41ce
9 changed files with 139 additions and 231 deletions
|
@ -36,6 +36,8 @@
|
|||
|
||||
#include "cpu-defs.h"
|
||||
|
||||
#include "softfloat.h"
|
||||
|
||||
#if defined(__i386__) && !defined(CONFIG_SOFTMMU)
|
||||
#define USE_CODE_COPY
|
||||
#endif
|
||||
|
@ -332,14 +334,14 @@ enum {
|
|||
CC_OP_NB,
|
||||
};
|
||||
|
||||
#if (defined(__i386__) || defined(__x86_64__)) && !defined(_BSD)
|
||||
#ifdef FLOATX80
|
||||
#define USE_X86LDOUBLE
|
||||
#endif
|
||||
|
||||
#ifdef USE_X86LDOUBLE
|
||||
typedef long double CPU86_LDouble;
|
||||
typedef floatx80 CPU86_LDouble;
|
||||
#else
|
||||
typedef double CPU86_LDouble;
|
||||
typedef float64 CPU86_LDouble;
|
||||
#endif
|
||||
|
||||
typedef struct SegmentCache {
|
||||
|
@ -354,8 +356,8 @@ typedef union {
|
|||
uint16_t _w[8];
|
||||
uint32_t _l[4];
|
||||
uint64_t _q[2];
|
||||
float _s[4];
|
||||
double _d[2];
|
||||
float32 _s[4];
|
||||
float64 _d[2];
|
||||
} XMMReg;
|
||||
|
||||
typedef union {
|
||||
|
@ -441,6 +443,7 @@ typedef struct CPUX86State {
|
|||
} fpregs[8];
|
||||
|
||||
/* emulator internal variables */
|
||||
float_status fp_status;
|
||||
CPU86_LDouble ft0;
|
||||
union {
|
||||
float f;
|
||||
|
@ -449,6 +452,7 @@ typedef struct CPUX86State {
|
|||
int64_t i64;
|
||||
} fp_convert;
|
||||
|
||||
float_status sse_status;
|
||||
uint32_t mxcsr;
|
||||
XMMReg xmm_regs[CPU_NB_REGS];
|
||||
XMMReg xmm_t0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue