Am Donnerstag, 18. Mai 2006 18:16 schrieb Joerg Platte:
Hi!

Here is a patch fixing the problem by calling save_state before all possible 
fpu-interrupts.

regards,
Jörg
--- translate.c	2005-11-22 00:33:12.000000000 +0100
+++ translate.c.new	2006-05-22 20:40:07.000000000 +0200
@@ -982,6 +982,7 @@
 		{
 		    int cc = GET_FIELD_SP(insn, 20, 21);
 #if !defined(CONFIG_USER_ONLY)
+		    save_state(dc);
 		    gen_op_trap_ifnofpu();
 #endif
 		    target = GET_FIELD_SP(insn, 0, 18);
@@ -1002,6 +1003,7 @@
 	    case 0x6:		/* FBN+x */
 		{
 #if !defined(CONFIG_USER_ONLY)
+		    save_state(dc);
 		    gen_op_trap_ifnofpu();
 #endif
 		    target = GET_FIELD(insn, 10, 31);
@@ -1236,6 +1238,7 @@
 #endif
 	    } else if (xop == 0x34) {	/* FPU Operations */
 #if !defined(CONFIG_USER_ONLY)
+		save_state(dc);
 		gen_op_trap_ifnofpu();
 #endif
                 rs1 = GET_FIELD(insn, 13, 17);
@@ -1424,6 +1427,7 @@
 		int cond;
 #endif
 #if !defined(CONFIG_USER_ONLY)
+		save_state(dc);
 		gen_op_trap_ifnofpu();
 #endif
                 rs1 = GET_FIELD(insn, 13, 17);
@@ -2346,6 +2350,7 @@
 #endif
 	    } else if (xop >= 0x20 && xop < 0x24) {
 #if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64)
+		save_state(dc);
 		gen_op_trap_ifnofpu();
 #endif
 		switch (xop) {
_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to