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



Reply via email to