Patchwork target-sparc: Fix wrong printf argument

login
register
mail settings
Submitter Stefan Weil
Date May 12, 2010, 6:34 p.m.
Message ID <1273689279-9297-1-git-send-email-weil@mail.berlios.de>
Download mbox | patch
Permalink /patch/52406/
State New
Headers show

Comments

Stefan Weil - May 12, 2010, 6:34 p.m.
cpu_get_ccr() returns a target_ulong, so a type cast is needed to avoid
wrong output on big endian hosts. We could also use TARGET_FMT_lx,
but that would print 8 instead of 2 digits.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 target-sparc/helper.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Blue Swirl - May 12, 2010, 7:22 p.m.
Thanks, applied.

Another solution would have been to change the return value to uint32_t.

On 5/12/10, Stefan Weil <weil@mail.berlios.de> wrote:
> cpu_get_ccr() returns a target_ulong, so a type cast is needed to avoid
>  wrong output on big endian hosts. We could also use TARGET_FMT_lx,
>  but that would print 8 instead of 2 digits.
>
>  Cc: Blue Swirl <blauwirbel@gmail.com>
>  Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>  ---
>   target-sparc/helper.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
>  diff --git a/target-sparc/helper.c b/target-sparc/helper.c
>  index 4642122..582de10 100644
>  --- a/target-sparc/helper.c
>  +++ b/target-sparc/helper.c
>  @@ -1490,7 +1490,7 @@ void cpu_dump_state(CPUState *env, FILE *f,
>      }
>   #ifdef TARGET_SPARC64
>      cpu_fprintf(f, "pstate: %08x ccr: %02x (icc: ", env->pstate,
>  -                cpu_get_ccr(env));
>  +                (unsigned)cpu_get_ccr(env));
>      cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << PSR_CARRY_SHIFT);
>      cpu_fprintf(f, " xcc: ");
>      cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << (PSR_CARRY_SHIFT - 4));
>
> --
>  1.7.1
>
>

Patch

diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index 4642122..582de10 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -1490,7 +1490,7 @@  void cpu_dump_state(CPUState *env, FILE *f,
     }
 #ifdef TARGET_SPARC64
     cpu_fprintf(f, "pstate: %08x ccr: %02x (icc: ", env->pstate,
-                cpu_get_ccr(env));
+                (unsigned)cpu_get_ccr(env));
     cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << PSR_CARRY_SHIFT);
     cpu_fprintf(f, " xcc: ");
     cpu_print_cc(f, cpu_fprintf, cpu_get_ccr(env) << (PSR_CARRY_SHIFT - 4));