Revision 671880e6 target-mips/exec.h

b/target-mips/exec.h
261 261
                     MIPS_HFLAG_FPU | MIPS_HFLAG_UM);
262 262
    if (!(env->CP0_Status & (1 << CP0St_EXL)) &&
263 263
        !(env->CP0_Status & (1 << CP0St_ERL)) &&
264
        !(env->hflags & MIPS_HFLAG_DM) &&
265
        (env->CP0_Status & (1 << CP0St_UM)))
266
        env->hflags |= MIPS_HFLAG_UM;
264
        !(env->hflags & MIPS_HFLAG_DM)) {
265
        if (env->CP0_Status & (1 << CP0St_UM))
266
            env->hflags |= MIPS_HFLAG_UM;
267
        if (env->CP0_Status & (1 << CP0St_R0))
268
            env->hflags |= MIPS_HFLAG_SM;
269
    }
267 270
#ifdef TARGET_MIPS64
268 271
    if (!(env->hflags & MIPS_HFLAG_UM) ||
269 272
        (env->CP0_Status & (1 << CP0St_PX)) ||
270 273
        (env->CP0_Status & (1 << CP0St_UX)))
271 274
        env->hflags |= MIPS_HFLAG_64;
272 275
#endif
273
    if ((env->CP0_Status & (1 << CP0St_CU0)) || !(env->hflags & MIPS_HFLAG_UM))
276
    if ((env->CP0_Status & (1 << CP0St_CU0)) ||
277
        (!(env->hflags & MIPS_HFLAG_UM) &&
278
         !(env->hflags & MIPS_HFLAG_SM)))
274 279
        env->hflags |= MIPS_HFLAG_CP0;
275 280
    if (env->CP0_Status & (1 << CP0St_CU1))
276 281
        env->hflags |= MIPS_HFLAG_FPU;

Also available in: Unified diff