Commit 764dfc3fa03f08457bb584720650c8899df82d57
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
Showing
3 changed files
with
27 additions
and
26 deletions
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]); | ... | ... |