Maybe the CpU exception for OPC_CP3 should set CP0 Cause CE to 3, not 1? If you agree, my patch fixes this.
Stefan
Index: target-mips/translate.c =================================================================== --- target-mips/translate.c (Revision 622) +++ target-mips/translate.c (Arbeitskopie) @@ -5069,7 +5069,7 @@ break; } } else { - generate_exception_err(ctx, EXCP_CpU, 1); + generate_exception_err(ctx, EXCP_CpU, 3); } break;