From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FiQLy-0006Rp-5A for qemu-devel@nongnu.org; Tue, 23 May 2006 02:26:50 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FiQLw-0006Rd-GT for qemu-devel@nongnu.org; Tue, 23 May 2006 02:26:48 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FiQLw-0006Ra-DD for qemu-devel@nongnu.org; Tue, 23 May 2006 02:26:48 -0400 Received: from [212.8.0.13] (helo=rosi.naasa.net) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FiQQ6-0004Qt-2x for qemu-devel@nongnu.org; Tue, 23 May 2006 02:31:06 -0400 From: Joerg Platte Subject: Re: [Qemu-devel] fpu problems with qemu-system-sparc Date: Tue, 23 May 2006 08:26:42 +0200 References: <200605181816.12353.lists@naasa.net> In-Reply-To: <200605181816.12353.lists@naasa.net> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_jsqcEAesxJ3lggH" Message-Id: <200605230826.43349.lists@naasa.net> Reply-To: jplatte@naasa.net, qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --Boundary-00=_jsqcEAesxJ3lggH Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Am Donnerstag, 18. Mai 2006 18:16 schrieb Joerg Platte: Hi! Here is a patch fixing the problem by calling save_state before all possi= ble=20 fpu-interrupts. regards, J=C3=B6rg --Boundary-00=_jsqcEAesxJ3lggH Content-Type: text/x-diff; charset="utf-8"; name="qemu-sparc-fpu-pc.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="qemu-sparc-fpu-pc.patch" --- 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) { --Boundary-00=_jsqcEAesxJ3lggH--