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