From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57213) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XkFFe-0000V6-O3 for qemu-devel@nongnu.org; Fri, 31 Oct 2014 12:40:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XkFFV-0003ej-MZ for qemu-devel@nongnu.org; Fri, 31 Oct 2014 12:40:38 -0400 From: Tom Musta Date: Fri, 31 Oct 2014 11:39:54 -0500 Message-Id: <1414773594-8014-1-git-send-email-tommusta@gmail.com> Subject: [Qemu-devel] [PATCH] target-ppc: Fix vcmpbfp. Unordered Case List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org Cc: Tom Musta , agraf@suse.de Fix the implementation of Vector Compare Bounds Single Precision. Specifically, fix the case where the operands are unordered -- since the result is non-zero, the CR[6] field should be set to zero. Signed-off-by: Tom Musta --- target-ppc/int_helper.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/target-ppc/int_helper.c b/target-ppc/int_helper.c index eb5c6d2..dae2fea 100644 --- a/target-ppc/int_helper.c +++ b/target-ppc/int_helper.c @@ -708,7 +708,7 @@ static inline void vcmpbfp_internal(CPUPPCState *env, ppc_avr_t *r, int le_rel = float32_compare_quiet(a->f[i], b->f[i], &env->vec_status); if (le_rel == float_relation_unordered) { r->u32[i] = 0xc0000000; - /* ALL_IN does not need to be updated here. */ + all_in = 1; } else { float32 bneg = float32_chs(b->f[i]); int ge_rel = float32_compare_quiet(a->f[i], bneg, &env->vec_status); -- 1.7.1