LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File 0017-S-390-build-fix.patch of Package qemu (Project home:draht:parking)

From 024f781ab4af31ba5e14882b5661d4586ae26988 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 9 Feb 2011 18:35:21 +0100
Subject: [PATCH 17/17] S/390 build fix

---
 target-s390x/op_helper.c |   22 +++++++++++-----------
 target-s390x/translate.c |    2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/target-s390x/op_helper.c b/target-s390x/op_helper.c
index 20c83c5..46b71fc 100644
--- a/target-s390x/op_helper.c
+++ b/target-s390x/op_helper.c
@@ -738,7 +738,7 @@ uint32_t HELPER(tmxx)(uint64_t val, uint32_t mask)
 uint32_t HELPER(abs_i32)(uint32_t reg, int32_t val)
 {
     uint32_t cc;
-    if (val == 0x80000000UL) cc = 3;
+    if ((uint32_t)val == 0x80000000UL) cc = 3;
     else if (val) cc = 1;
     else cc = 0;
 
@@ -996,7 +996,7 @@ uint32_t HELPER(slbg)(uint32_t cc, uint32_t r1, uint64_t v1, uint64_t v2)
 /* condition codes for binary FP ops */
 static uint32_t set_cc_f32(float32 v1, float32 v2)
 {
-    if (float32_is_nan(v1) || float32_is_nan(v2)) return 3;
+    if (float32_is_any_nan(v1) || float32_is_any_nan(v2)) return 3;
     else if (float32_eq(v1, v2, &env->fpu_status)) return 0;
     else if (float32_lt(v1, v2, &env->fpu_status)) return 1;
     else return 2;
@@ -1004,7 +1004,7 @@ static uint32_t set_cc_f32(float32 v1, float32 v2)
 
 static uint32_t set_cc_f64(float64 v1, float64 v2)
 {
-    if (float64_is_nan(v1) || float64_is_nan(v2)) return 3;
+    if (float64_is_any_nan(v1) || float64_is_any_nan(v2)) return 3;
     else if (float64_eq(v1, v2, &env->fpu_status)) return 0;
     else if (float64_lt(v1, v2, &env->fpu_status)) return 1;
     else return 2;
@@ -1013,7 +1013,7 @@ static uint32_t set_cc_f64(float64 v1, float64 v2)
 /* condition codes for unary FP ops */
 static uint32_t set_cc_nz_f32(float32 v)
 {
-    if (float32_is_nan(v)) return 3;
+    if (float32_is_any_nan(v)) return 3;
     else if (float32_is_zero(v)) return 0;
     else if (float32_is_neg(v)) return 1;
     else return 2;
@@ -1021,7 +1021,7 @@ static uint32_t set_cc_nz_f32(float32 v)
 
 static uint32_t set_cc_nz_f64(float64 v)
 {
-    if (float64_is_nan(v)) return 3;
+    if (float64_is_any_nan(v)) return 3;
     else if (float64_is_zero(v)) return 0;
     else if (float64_is_neg(v)) return 1;
     else return 2;
@@ -1029,7 +1029,7 @@ static uint32_t set_cc_nz_f64(float64 v)
 
 static uint32_t set_cc_nz_f128(float128 v)
 {
-    if (float128_is_nan(v)) return 3;
+    if (float128_is_any_nan(v)) return 3;
     else if (float128_is_zero(v)) return 0;
     else if (float128_is_neg(v)) return 1;
     else return 2;
@@ -1350,7 +1350,7 @@ uint32_t HELPER(cxbr)(uint32_t f1, uint32_t f2)
     CPU_QuadU v2;
     v2.ll.upper = env->fregs[f2].ll;
     v2.ll.lower = env->fregs[f2 + 2].ll;
-    if (float128_is_nan(v1.q) || float128_is_nan(v2.q)) return 3;
+    if (float128_is_any_nan(v1.q) || float128_is_any_nan(v2.q)) return 3;
     else if (float128_eq(v1.q, v2.q, &env->fpu_status)) return 0;
     else if (float128_lt(v1.q, v2.q, &env->fpu_status)) return 1;
     else return 2;
@@ -1463,7 +1463,7 @@ uint32_t HELPER(cgxbr)(uint32_t r1, uint32_t f2, uint32_t m3)
     v2.ll.lower = env->fregs[f2 + 2].ll;
     set_round_mode(m3);
     env->regs[r1] = float128_to_int64(v2.q, &env->fpu_status);
-    if (float128_is_nan(v2.q)) return 3;
+    if (float128_is_any_nan(v2.q)) return 3;
     else if (float128_is_zero(v2.q)) return 0;
     else if (float128_is_neg(v2.q)) return 1;
     else return 2;
@@ -1611,7 +1611,7 @@ uint32_t HELPER(tceb)(uint32_t f1, uint64_t m2)
     HELPER_LOG("%s: v1 0x%lx m2 0x%lx neg %d\n", __FUNCTION__, v1, m2, neg);
     if (float32_is_zero(v1) && (m2 & (1 << (11-neg)))) cc = 1;
     else if (float32_is_infinity(v1) && (m2 & (1 << (5-neg)))) cc = 1;
-    else if (float32_is_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
+    else if (float32_is_quiet_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
     else if (float32_is_signaling_nan(v1) && (m2 & (1 << (1-neg)))) cc = 1;
     else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
     /* FIXME: denormalized? */
@@ -1627,7 +1627,7 @@ uint32_t HELPER(tcdb)(uint32_t f1, uint64_t m2)
     HELPER_LOG("%s: v1 0x%lx m2 0x%lx neg %d\n", __FUNCTION__, v1, m2, neg);
     if (float64_is_zero(v1) && (m2 & (1 << (11-neg)))) cc = 1;
     else if (float64_is_infinity(v1) && (m2 & (1 << (5-neg)))) cc = 1;
-    else if (float64_is_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
+    else if (float64_is_quiet_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
     else if (float64_is_signaling_nan(v1) && (m2 & (1 << (1-neg)))) cc = 1;
     else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
     /* FIXME: denormalized? */
@@ -1645,7 +1645,7 @@ uint32_t HELPER(tcxb)(uint32_t f1, uint64_t m2)
     int neg = float128_is_neg(v1.q);
     if (float128_is_zero(v1.q) && (m2 & (1 << (11-neg)))) cc = 1;
     else if (float128_is_infinity(v1.q) && (m2 & (1 << (5-neg)))) cc = 1;
-    else if (float128_is_nan(v1.q) && (m2 & (1 << (3-neg)))) cc = 1;
+    else if (float128_is_quiet_nan(v1.q) && (m2 & (1 << (3-neg)))) cc = 1;
     else if (float128_is_signaling_nan(v1.q) && (m2 & (1 << (1-neg)))) cc = 1;
     else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
     /* FIXME: denormalized? */
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index e08dcf4..189a60b 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -67,7 +67,7 @@ void cpu_dump_state(CPUState *env, FILE *f, fprintf_function cpu_fprintf,
         }
     }
     for (i = 0; i < 16; i++) {
-        cpu_fprintf(f, "F%02d=%016lx", i, (long)env->fregs[i].i);
+        cpu_fprintf(f, "F%02d=%016lx", i, (long)env->fregs[i].ll);
         if ((i % 4) == 3) {
             cpu_fprintf(f, "\n");
         } else {
-- 
1.7.1