OSDN Git Service

target-ppc: Fix vcmpbfp. Unordered Case
authorTom Musta <tommusta@gmail.com>
Fri, 31 Oct 2014 16:39:54 +0000 (11:39 -0500)
committerAlexander Graf <agraf@suse.de>
Tue, 4 Nov 2014 22:26:15 +0000 (23:26 +0100)
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 <tommusta@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc/int_helper.c

index 12c9ab0..4c2b71c 100644 (file)
@@ -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);