aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Musta <tommusta@gmail.com>2014-10-31 11:39:54 -0500
committerAlexander Graf <agraf@suse.de>2014-11-04 23:26:15 +0100
commit4007b8de6e1012675672d6e6e4fc08633b3a0023 (patch)
treed40216351591b8c4d09f55d72f7be4270c5a9645
parent24e669ba531a0ffb5e5c3583bc39ff84eaeabf16 (diff)
downloadvirtio-serial-4007b8de6e1012675672d6e6e4fc08633b3a0023.tar.gz
target-ppc: Fix vcmpbfp. Unordered Case
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>
-rw-r--r--target-ppc/int_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-ppc/int_helper.c b/target-ppc/int_helper.c
index 12c9ab08bec..4c2b71c7080 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);