diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-02 15:27:11 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-07-02 15:27:11 +0000 |
commit | bc2c390907757c4d172279e81395b8818338abec (patch) | |
tree | d1b19b3eaa3510c55939540282bdf1a1b38f977f /target-mips | |
parent | 9827e95c78ff34051533211624d0177e744a92d7 (diff) |
fixed priviledgees for CP0 use (Ralf Baechle)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1476 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips')
-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"); } |