From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DPNjJ-0004O3-PP for qemu-devel@nongnu.org; Sat, 23 Apr 2005 12:43:42 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DPNjI-0004N0-0P for qemu-devel@nongnu.org; Sat, 23 Apr 2005 12:43:41 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DPNjH-0002tk-TE for qemu-devel@nongnu.org; Sat, 23 Apr 2005 12:43:39 -0400 Received: from [65.74.133.9] (helo=mail.codesourcery.com) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1DPNlG-0002SK-Nu for qemu-devel@nongnu.org; Sat, 23 Apr 2005 12:45:43 -0400 From: Paul Brook Date: Sat, 23 Apr 2005 17:42:26 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200504231742.27070.paul@codesourcery.com> Subject: [Qemu-devel] [patch] Incorrect arm vfp condition codes Reply-To: 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 The arm vfp fcmp and fcmpe instructions set the condition code incorrectly. Patch below fixes this. Paul Index: target-arm/op_helper.c =================================================================== RCS file: /cvsroot/qemu/qemu/target-arm/op_helper.c,v retrieving revision 1.2 diff -u -p -r1.2 op_helper.c --- target-arm/op_helper.c 13 Mar 2005 18:50:12 -0000 1.2 +++ target-arm/op_helper.c 23 Apr 2005 16:37:09 -0000 @@ -67,7 +67,7 @@ void do_vfp_cmp##p(void) { \ uint32_t flags; \ switch(float ## size ## _compare_quiet(FT0##p, FT1##p, &env->vfp.fp_status)) {\ - case 0: flags = 0xc; break;\ + case 0: flags = 0x6; break;\ case -1: flags = 0x8; break;\ case 1: flags = 0x2; break;\ default: case 2: flags = 0x3; break;\ @@ -80,7 +80,7 @@ void do_vfp_cmpe##p(void) { \ uint32_t flags; \ switch(float ## size ## _compare(FT0##p, FT1##p, &env->vfp.fp_status)) {\ - case 0: flags = 0xc; break;\ + case 0: flags = 0x6; break;\ case -1: flags = 0x8; break;\ case 1: flags = 0x2; break;\ default: case 2: flags = 0x3; break;\