Revision f01be154 target-mips/cpu.h

b/target-mips/cpu.h
84 84
#define FCR0_REV 0
85 85
    /* fcsr */
86 86
    uint32_t fcr31;
87
#define SET_FP_COND(num,env)     do { ((env)->fcr31) |= ((num) ? (1 << ((num) + 24)) : (1 << 23)); } while(0)
88
#define CLEAR_FP_COND(num,env)   do { ((env)->fcr31) &= ~((num) ? (1 << ((num) + 24)) : (1 << 23)); } while(0)
89
#define GET_FP_COND(env)         ((((env)->fcr31 >> 24) & 0xfe) | (((env)->fcr31 >> 23) & 0x1))
87
#define SET_FP_COND(num,env)     do { ((env).fcr31) |= ((num) ? (1 << ((num) + 24)) : (1 << 23)); } while(0)
88
#define CLEAR_FP_COND(num,env)   do { ((env).fcr31) &= ~((num) ? (1 << ((num) + 24)) : (1 << 23)); } while(0)
89
#define GET_FP_COND(env)         ((((env).fcr31 >> 24) & 0xfe) | (((env).fcr31 >> 23) & 0x1))
90 90
#define GET_FP_CAUSE(reg)        (((reg) >> 12) & 0x3f)
91 91
#define GET_FP_ENABLE(reg)       (((reg) >>  7) & 0x1f)
92 92
#define GET_FP_FLAGS(reg)        (((reg) >>  2) & 0x1f)
......
132 132

  
133 133
#define MIPS_SHADOW_SET_MAX 16
134 134
#define MIPS_TC_MAX 5
135
#define MIPS_FPU_MAX 1
135 136
#define MIPS_DSP_ACC 4
136 137

  
137 138
typedef struct TCState TCState;
......
170 171
typedef struct CPUMIPSState CPUMIPSState;
171 172
struct CPUMIPSState {
172 173
    TCState active_tc;
174
    CPUMIPSFPUContext active_fpu;
173 175

  
174 176
    CPUMIPSMVPContext *mvp;
175 177
    CPUMIPSTLBContext *tlb;
176
    CPUMIPSFPUContext *fpu;
177 178
    uint32_t current_tc;
179
    uint32_t current_fpu;
178 180

  
179 181
    uint32_t SEGBITS;
180 182
    uint32_t PABITS;
......
404 406
    int32_t CP0_DESAVE;
405 407
    /* We waste some space so we can handle shadow registers like TCs. */
406 408
    TCState tcs[MIPS_SHADOW_SET_MAX];
409
    CPUMIPSFPUContext fpus[MIPS_FPU_MAX];
407 410
    /* Qemu */
408 411
    int error_code;
409 412
    uint32_t hflags;    /* CPU State */

Also available in: Unified diff