Hello, according to MIPS32 4KE User's Manual, coprocessor CP0 is always usable when the processor is running in kernel mode.
So in kernel mode, exception "CP0 is not usable" should not happen. I think the boolean expression which checks for the exception condition has to be inverted - see my patch for translate.c. Kind regards, Stefan RCS file: /sources/qemu/qemu/target-mips/translate.c,v retrieving revision 1.11 diff -u -r1.11 translate.c --- target-mips/translate.c 5 Dec 2005 19:59:36 -0000 1.11 +++ target-mips/translate.c 23 Mar 2006 19:25:53 -0000 @@ -1180,7 +1180,7 @@ const unsigned char *opn = "unk"; if (!(ctx->CP0_Status & (1 << CP0St_CU0)) && - !(ctx->hflags & MIPS_HFLAG_UM) && + (ctx->hflags & MIPS_HFLAG_UM) && !(ctx->hflags & MIPS_HFLAG_ERL) && !(ctx->hflags & MIPS_HFLAG_EXL)) { if (loglevel & CPU_LOG_TB_IN_ASM) { // _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel