Commit 764dfc3fa03f08457bb584720650c8899df82d57

Authored by ths
1 parent ae45d369

Move FP TNs to cpu env.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4728 c046a42c-6fe2-441c-8c8c-71466251a162
target-mips/cpu.h
... ... @@ -70,11 +70,6 @@ typedef struct CPUMIPSFPUContext CPUMIPSFPUContext;
70 70 struct CPUMIPSFPUContext {
71 71 /* Floating point registers */
72 72 fpr_t fpr[32];
73   -#ifndef USE_HOST_FLOAT_REGS
74   - fpr_t ft0;
75   - fpr_t ft1;
76   - fpr_t ft2;
77   -#endif
78 73 float_status fp_status;
79 74 /* fpu implementation/revision register (fir) */
80 75 uint32_t fcr0;
... ... @@ -149,6 +144,12 @@ struct CPUMIPSState {
149 144 target_ulong t0;
150 145 target_ulong t1;
151 146 #endif
  147 + /* temporary hack for FP globals */
  148 +#ifndef USE_HOST_FLOAT_REGS
  149 + fpr_t ft0;
  150 + fpr_t ft1;
  151 + fpr_t ft2;
  152 +#endif
152 153 target_ulong HI[MIPS_TC_MAX][MIPS_DSP_ACC];
153 154 target_ulong LO[MIPS_TC_MAX][MIPS_DSP_ACC];
154 155 target_ulong ACX[MIPS_TC_MAX][MIPS_DSP_ACC];
... ...
target-mips/exec.h
... ... @@ -21,24 +21,24 @@ register target_ulong T1 asm(AREG2);
21 21 #if defined (USE_HOST_FLOAT_REGS)
22 22 #error "implement me."
23 23 #else
24   -#define FDT0 (env->fpu->ft0.fd)
25   -#define FDT1 (env->fpu->ft1.fd)
26   -#define FDT2 (env->fpu->ft2.fd)
27   -#define FST0 (env->fpu->ft0.fs[FP_ENDIAN_IDX])
28   -#define FST1 (env->fpu->ft1.fs[FP_ENDIAN_IDX])
29   -#define FST2 (env->fpu->ft2.fs[FP_ENDIAN_IDX])
30   -#define FSTH0 (env->fpu->ft0.fs[!FP_ENDIAN_IDX])
31   -#define FSTH1 (env->fpu->ft1.fs[!FP_ENDIAN_IDX])
32   -#define FSTH2 (env->fpu->ft2.fs[!FP_ENDIAN_IDX])
33   -#define DT0 (env->fpu->ft0.d)
34   -#define DT1 (env->fpu->ft1.d)
35   -#define DT2 (env->fpu->ft2.d)
36   -#define WT0 (env->fpu->ft0.w[FP_ENDIAN_IDX])
37   -#define WT1 (env->fpu->ft1.w[FP_ENDIAN_IDX])
38   -#define WT2 (env->fpu->ft2.w[FP_ENDIAN_IDX])
39   -#define WTH0 (env->fpu->ft0.w[!FP_ENDIAN_IDX])
40   -#define WTH1 (env->fpu->ft1.w[!FP_ENDIAN_IDX])
41   -#define WTH2 (env->fpu->ft2.w[!FP_ENDIAN_IDX])
  24 +#define FDT0 (env->ft0.fd)
  25 +#define FDT1 (env->ft1.fd)
  26 +#define FDT2 (env->ft2.fd)
  27 +#define FST0 (env->ft0.fs[FP_ENDIAN_IDX])
  28 +#define FST1 (env->ft1.fs[FP_ENDIAN_IDX])
  29 +#define FST2 (env->ft2.fs[FP_ENDIAN_IDX])
  30 +#define FSTH0 (env->ft0.fs[!FP_ENDIAN_IDX])
  31 +#define FSTH1 (env->ft1.fs[!FP_ENDIAN_IDX])
  32 +#define FSTH2 (env->ft2.fs[!FP_ENDIAN_IDX])
  33 +#define DT0 (env->ft0.d)
  34 +#define DT1 (env->ft1.d)
  35 +#define DT2 (env->ft2.d)
  36 +#define WT0 (env->ft0.w[FP_ENDIAN_IDX])
  37 +#define WT1 (env->ft1.w[FP_ENDIAN_IDX])
  38 +#define WT2 (env->ft2.w[FP_ENDIAN_IDX])
  39 +#define WTH0 (env->ft0.w[!FP_ENDIAN_IDX])
  40 +#define WTH1 (env->ft1.w[!FP_ENDIAN_IDX])
  41 +#define WTH2 (env->ft2.w[!FP_ENDIAN_IDX])
42 42 #endif
43 43  
44 44 #include "cpu.h"
... ...
target-mips/translate.c
... ... @@ -7386,9 +7386,9 @@ void fpu_dump_state(CPUState *env, FILE *f,
7386 7386 fpu_fprintf(f, "CP1 FCR0 0x%08x FCR31 0x%08x SR.FR %d fp_status 0x%08x(0x%02x)\n",
7387 7387 env->fpu->fcr0, env->fpu->fcr31, is_fpu64, env->fpu->fp_status,
7388 7388 get_float_exception_flags(&env->fpu->fp_status));
7389   - fpu_fprintf(f, "FT0: "); printfpr(&env->fpu->ft0);
7390   - fpu_fprintf(f, "FT1: "); printfpr(&env->fpu->ft1);
7391   - fpu_fprintf(f, "FT2: "); printfpr(&env->fpu->ft2);
  7389 + fpu_fprintf(f, "FT0: "); printfpr(&env->ft0);
  7390 + fpu_fprintf(f, "FT1: "); printfpr(&env->ft1);
  7391 + fpu_fprintf(f, "FT2: "); printfpr(&env->ft2);
7392 7392 for (i = 0; i < 32; (is_fpu64) ? i++ : (i += 2)) {
7393 7393 fpu_fprintf(f, "%3s: ", fregnames[i]);
7394 7394 printfpr(&env->fpu->fpr[i]);
... ...