This workaround fixes the problems with QEMU and Linux FPU emulation (at least in my tests):
Index: target-mips/helper.c =================================================================== RCS file: /sources/qemu/qemu/target-mips/helper.c,v retrieving revision 1.34 diff -u -b -B -r1.34 helper.c --- target-mips/helper.c 13 Apr 2007 20:17:54 -0000 1.34 +++ target-mips/helper.c 3 May 2007 20:39:35 -0000 @@ -340,6 +340,7 @@ goto set_EPC; case EXCP_AdEL: cause = 4; + tb_flush(env); goto set_EPC; case EXCP_AdES: cause = 5; Of course, a better solution would be fixing self modifying code. Stefan Thiemo Seufer schrieb: > CVSROOT: /sources/qemu > Module name: qemu > Changes by: Thiemo Seufer <ths> 07/04/28 21:07:41 > > Modified files: > hw : mips_malta.c mips_pica61.c mips_r4k.c > > Log message: > Switch default CPU to 24Kf for now, as the Linux FPU emulation in > the current qemu mips emulation fails in some cases. (The Linux > FPU emulation works on real FPU-less hardware.) > > CVSWeb URLs: > http://cvs.savannah.gnu.org/viewcvs/qemu/hw/mips_malta.c?cvsroot=qemu&r1=1.25&r2=1.26 > http://cvs.savannah.gnu.org/viewcvs/qemu/hw/mips_pica61.c?cvsroot=qemu&r1=1.2&r2=1.3 > http://cvs.savannah.gnu.org/viewcvs/qemu/hw/mips_r4k.c?cvsroot=qemu&r1=1.42&r2=1.43