soft float support

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1336 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2005-03-13 17:01:47 +00:00
parent 4ecc31906d
commit 7a0e1f41ce
9 changed files with 139 additions and 231 deletions

View file

@ -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;