Commit 9b605b9eaee7845353f32aed23e8b9085bfa44ee
1 parent
493ae1f0
Fix ppc32 register dumps on 64-bit hosts.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3723 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
14 additions
and
9 deletions
hw/ppc_oldworld.c
... | ... | @@ -93,7 +93,8 @@ static int vga_osi_call (CPUState *env) |
93 | 93 | /* R6 = x, R7 = y, R8 = visible, R9 = data */ |
94 | 94 | break; |
95 | 95 | default: |
96 | - fprintf(stderr, "unsupported OSI call R5=" REGX "\n", env->gpr[5]); | |
96 | + fprintf(stderr, "unsupported OSI call R5=" REGX "\n", | |
97 | + (target_ulong)env->gpr[5]); | |
97 | 98 | break; |
98 | 99 | } |
99 | 100 | ... | ... |
target-ppc/cpu.h
... | ... | @@ -30,7 +30,6 @@ |
30 | 30 | typedef uint64_t ppc_gpr_t; |
31 | 31 | #define TARGET_GPR_BITS 64 |
32 | 32 | #define TARGET_LONG_BITS 64 |
33 | -#define REGX "%016" PRIx64 | |
34 | 33 | #define TARGET_PAGE_BITS 12 |
35 | 34 | |
36 | 35 | #else /* defined (TARGET_PPC64) */ |
... | ... | @@ -43,11 +42,9 @@ typedef uint64_t ppc_gpr_t; |
43 | 42 | */ |
44 | 43 | typedef uint64_t ppc_gpr_t; |
45 | 44 | #define TARGET_GPR_BITS 64 |
46 | -#define REGX "%08" PRIx64 | |
47 | 45 | #else /* (HOST_LONG_BITS >= 64) */ |
48 | 46 | typedef uint32_t ppc_gpr_t; |
49 | 47 | #define TARGET_GPR_BITS 32 |
50 | -#define REGX "%08" PRIx32 | |
51 | 48 | #endif /* (HOST_LONG_BITS >= 64) */ |
52 | 49 | |
53 | 50 | #define TARGET_LONG_BITS 32 |
... | ... | @@ -72,6 +69,10 @@ typedef uint32_t ppc_gpr_t; |
72 | 69 | |
73 | 70 | #endif /* defined (TARGET_PPC64) */ |
74 | 71 | |
72 | +/* A ppc_gpr_t should not be printed directly as the high bits may be | |
73 | + garbage. It should always be cast to a target_ulong first. */ | |
74 | +#define REGX TARGET_FMT_lx | |
75 | + | |
75 | 76 | #include "cpu-defs.h" |
76 | 77 | |
77 | 78 | #define ADDRX TARGET_FMT_lx | ... | ... |
target-ppc/helper.c
... | ... | @@ -2169,8 +2169,9 @@ static always_inline void dump_syscall (CPUState *env) |
2169 | 2169 | { |
2170 | 2170 | fprintf(logfile, "syscall r0=0x" REGX " r3=0x" REGX " r4=0x" REGX |
2171 | 2171 | " r5=0x" REGX " r6=0x" REGX " nip=0x" ADDRX "\n", |
2172 | - env->gpr[0], env->gpr[3], env->gpr[4], | |
2173 | - env->gpr[5], env->gpr[6], env->nip); | |
2172 | + (target_ulong)env->gpr[0], (target_ulong)env->gpr[3], | |
2173 | + (target_ulong)env->gpr[4], (target_ulong)env->gpr[5], | |
2174 | + (target_ulong)env->gpr[6], env->nip); | |
2174 | 2175 | } |
2175 | 2176 | |
2176 | 2177 | /* Note that this function should be greatly optimized | ... | ... |
target-ppc/op_helper.c
... | ... | @@ -2920,7 +2920,8 @@ void do_4xx_tlbwe_hi (void) |
2920 | 2920 | |
2921 | 2921 | #if defined (DEBUG_SOFTWARE_TLB) |
2922 | 2922 | if (loglevel != 0) { |
2923 | - fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, T0, T1); | |
2923 | + fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, | |
2924 | + (target_ulong)T0, (target_ulong)T1); | |
2924 | 2925 | } |
2925 | 2926 | #endif |
2926 | 2927 | T0 &= 0x3F; |
... | ... | @@ -2989,7 +2990,8 @@ void do_4xx_tlbwe_lo (void) |
2989 | 2990 | |
2990 | 2991 | #if defined (DEBUG_SOFTWARE_TLB) |
2991 | 2992 | if (loglevel != 0) { |
2992 | - fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, T0, T1); | |
2993 | + fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, | |
2994 | + (targt_ulong)T0, (target_ulong)T1); | |
2993 | 2995 | } |
2994 | 2996 | #endif |
2995 | 2997 | T0 &= 0x3F; |
... | ... | @@ -3023,7 +3025,7 @@ void do_440_tlbwe (int word) |
3023 | 3025 | #if defined (DEBUG_SOFTWARE_TLB) |
3024 | 3026 | if (loglevel != 0) { |
3025 | 3027 | fprintf(logfile, "%s word %d T0 " REGX " T1 " REGX "\n", |
3026 | - __func__, word, T0, T1); | |
3028 | + __func__, word, (target_ulong)T0, (target_ulong)T1); | |
3027 | 3029 | } |
3028 | 3030 | #endif |
3029 | 3031 | do_flush_tlbs = 0; | ... | ... |