diff options
-rw-r--r-- | target-mips/translate.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/target-mips/translate.c b/target-mips/translate.c index 386bf74b3f..d781fccfbd 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -971,7 +971,10 @@ static void gen_cp0 (DisasContext *ctx, uint16_t opc, int rt, int rd) { const unsigned char *opn = "unk"; - if (!(ctx->CP0_Status & (1 << CP0St_CU0))) { + if (!(ctx->CP0_Status & (1 << CP0St_CU0)) && + !(ctx->hflags & MIPS_HFLAG_UM) && + !(ctx->hflags & MIPS_HFLAG_ERL) && + !(ctx->hflags & MIPS_HFLAG_EXL)) { if (loglevel & CPU_LOG_TB_IN_ASM) { fprintf(logfile, "CP0 is not usable\n"); } |