Fix ppc32 register dumps on 64-bit hosts.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3723 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2007-11-23 17:33:12 +00:00
parent 493ae1f01c
commit 9b605b9eae
4 changed files with 14 additions and 9 deletions

View File

@ -93,7 +93,8 @@ static int vga_osi_call (CPUState *env)
/* R6 = x, R7 = y, R8 = visible, R9 = data */
break;
default:
fprintf(stderr, "unsupported OSI call R5=" REGX "\n", env->gpr[5]);
fprintf(stderr, "unsupported OSI call R5=" REGX "\n",
(target_ulong)env->gpr[5]);
break;
}

View File

@ -30,7 +30,6 @@
typedef uint64_t ppc_gpr_t;
#define TARGET_GPR_BITS 64
#define TARGET_LONG_BITS 64
#define REGX "%016" PRIx64
#define TARGET_PAGE_BITS 12
#else /* defined (TARGET_PPC64) */
@ -43,11 +42,9 @@ typedef uint64_t ppc_gpr_t;
*/
typedef uint64_t ppc_gpr_t;
#define TARGET_GPR_BITS 64
#define REGX "%08" PRIx64
#else /* (HOST_LONG_BITS >= 64) */
typedef uint32_t ppc_gpr_t;
#define TARGET_GPR_BITS 32
#define REGX "%08" PRIx32
#endif /* (HOST_LONG_BITS >= 64) */
#define TARGET_LONG_BITS 32
@ -72,6 +69,10 @@ typedef uint32_t ppc_gpr_t;
#endif /* defined (TARGET_PPC64) */
/* A ppc_gpr_t should not be printed directly as the high bits may be
garbage. It should always be cast to a target_ulong first. */
#define REGX TARGET_FMT_lx
#include "cpu-defs.h"
#define ADDRX TARGET_FMT_lx

View File

@ -2169,8 +2169,9 @@ static always_inline void dump_syscall (CPUState *env)
{
fprintf(logfile, "syscall r0=0x" REGX " r3=0x" REGX " r4=0x" REGX
" r5=0x" REGX " r6=0x" REGX " nip=0x" ADDRX "\n",
env->gpr[0], env->gpr[3], env->gpr[4],
env->gpr[5], env->gpr[6], env->nip);
(target_ulong)env->gpr[0], (target_ulong)env->gpr[3],
(target_ulong)env->gpr[4], (target_ulong)env->gpr[5],
(target_ulong)env->gpr[6], env->nip);
}
/* Note that this function should be greatly optimized

View File

@ -2920,7 +2920,8 @@ void do_4xx_tlbwe_hi (void)
#if defined (DEBUG_SOFTWARE_TLB)
if (loglevel != 0) {
fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, T0, T1);
fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__,
(target_ulong)T0, (target_ulong)T1);
}
#endif
T0 &= 0x3F;
@ -2989,7 +2990,8 @@ void do_4xx_tlbwe_lo (void)
#if defined (DEBUG_SOFTWARE_TLB)
if (loglevel != 0) {
fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__, T0, T1);
fprintf(logfile, "%s T0 " REGX " T1 " REGX "\n", __func__,
(targt_ulong)T0, (target_ulong)T1);
}
#endif
T0 &= 0x3F;
@ -3023,7 +3025,7 @@ void do_440_tlbwe (int word)
#if defined (DEBUG_SOFTWARE_TLB)
if (loglevel != 0) {
fprintf(logfile, "%s word %d T0 " REGX " T1 " REGX "\n",
__func__, word, T0, T1);
__func__, word, (target_ulong)T0, (target_ulong)T1);
}
#endif
do_flush_tlbs = 0;