commit 26a76461f259031f2c30cd5843a5ca91e056cf03
Author: bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Date:   Sun Jun 25 18:15:32 2006 +0000

    C99 64 bit printf
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2018 c046a42c-6fe2-441c-8c8c-71466251a162

diff --git a/audio/audio.c b/audio/audio.c
index 7634535..f10025b 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -997,7 +997,7 @@ static int audio_get_avail (SWVoiceIn *sw)
     }
 
     ldebug (
-        "%s: get_avail live %d ret %lld\n",
+        "%s: get_avail live %d ret %" PRId64 "\n",
         SW_NAME (sw),
         live, (((int64_t) live << 32) / sw->ratio) << sw->info.shift
         );
@@ -1023,7 +1023,7 @@ static int audio_get_free (SWVoiceOut *sw)
     dead = sw->hw->samples - live;
 
 #ifdef DEBUG_OUT
-    dolog ("%s: get_free live %d dead %d ret %lld\n",
+    dolog ("%s: get_free live %d dead %d ret %" PRId64 "\n",
            SW_NAME (sw),
            live, dead, (((int64_t) dead << 32) / sw->ratio) << sw->info.shift);
 #endif
diff --git a/audio/audio_template.h b/audio/audio_template.h
index 23d0242..419a4aa 100644
--- a/audio/audio_template.h
+++ b/audio/audio_template.h
@@ -542,7 +542,7 @@ uint64_t glue (AUD_get_elapsed_usec_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
 
     cur_ts = sw->hw->ts_helper;
     old_ts = ts->old_ts;
-    /* dolog ("cur %lld old %lld\n", cur_ts, old_ts); */
+    /* dolog ("cur %" PRId64 " old %" PRId64 "\n", cur_ts, old_ts); */
 
     if (cur_ts >= old_ts) {
         delta = cur_ts - old_ts;
diff --git a/block-vpc.c b/block-vpc.c
index e4c51ba..bdc3b88 100644
--- a/block-vpc.c
+++ b/block-vpc.c
@@ -163,7 +163,7 @@ static inline int seek_to_sector(BlockDriverState *bs, int64_t sector_num)
     bitmap_offset = 512 * s->pagetable[pagetable_index];
     block_offset = bitmap_offset + 512 + (512 * pageentry_index);
     
-//    printf("sector: %llx, index: %x, offset: %x, bioff: %llx, bloff: %llx\n",
+//    printf("sector: %" PRIx64 ", index: %x, offset: %x, bioff: %" PRIx64 ", bloff: %" PRIx64 "\n",
 //	sector_num, pagetable_index, pageentry_index,
 //	bitmap_offset, block_offset);
 
diff --git a/cpu-defs.h b/cpu-defs.h
index 665158a..674c0bd 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -47,7 +47,7 @@ typedef uint32_t target_ulong;
 #elif TARGET_LONG_SIZE == 8
 typedef int64_t target_long;
 typedef uint64_t target_ulong;
-#define TARGET_FMT_lx "%016llx"
+#define TARGET_FMT_lx "%016" PRIx64
 #else
 #error TARGET_LONG_SIZE undefined
 #endif
diff --git a/disas.c b/disas.c
index c38da08..fd91b92 100644
--- a/disas.c
+++ b/disas.c
@@ -58,7 +58,7 @@ perror_memory (status, memaddr, info)
     /* Actually, address between memaddr and memaddr + len was
        out of bounds.  */
     (*info->fprintf_func) (info->stream,
-			   "Address 0x%llx is out of bounds.\n", memaddr);
+			   "Address 0x%" PRIx64 " is out of bounds.\n", memaddr);
 }
 
 /* This could be in a separate file, to save miniscule amounts of space
@@ -73,7 +73,7 @@ generic_print_address (addr, info)
      bfd_vma addr;
      struct disassemble_info *info;
 {
-    (*info->fprintf_func) (info->stream, "0x%llx", addr);
+    (*info->fprintf_func) (info->stream, "0x%" PRIx64, addr);
 }
 
 /* Just return the given address.  */
diff --git a/hw/apic.c b/hw/apic.c
index 65f96a5..8f88cce 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -239,7 +239,7 @@ void cpu_set_apic_base(CPUState *env, uint64_t val)
 {
     APICState *s = env->apic_state;
 #ifdef DEBUG_APIC
-    printf("cpu_set_apic_base: %016llx\n", val);
+    printf("cpu_set_apic_base: %016" PRIx64 "\n", val);
 #endif
     s->apicbase = (val & 0xfffff000) | 
         (s->apicbase & (MSR_IA32_APICBASE_BSP | MSR_IA32_APICBASE_ENABLE));
@@ -255,7 +255,7 @@ uint64_t cpu_get_apic_base(CPUState *env)
 {
     APICState *s = env->apic_state;
 #ifdef DEBUG_APIC
-    printf("cpu_get_apic_base: %016llx\n", (uint64_t)s->apicbase);
+    printf("cpu_get_apic_base: %016" PRIx64 "\n", (uint64_t)s->apicbase);
 #endif
     return s->apicbase;
 }
diff --git a/hw/cuda.c b/hw/cuda.c
index dec5ffb..f3c2b56 100644
--- a/hw/cuda.c
+++ b/hw/cuda.c
@@ -209,7 +209,7 @@ static int64_t get_next_irq_time(CUDATimer *s, int64_t current_time)
     }
 #if 0
 #ifdef DEBUG_CUDA
-    printf("latch=%d counter=%lld delta_next=%lld\n", 
+    printf("latch=%d counter=%" PRId64 " delta_next=%" PRId64 "\n", 
            s->latch, d, next_time - d);
 #endif
 #endif
diff --git a/hw/i8259.c b/hw/i8259.c
index 6c2ddff..c747f10 100644
--- a/hw/i8259.c
+++ b/hw/i8259.c
@@ -531,7 +531,7 @@ void irq_info(void)
     for (i = 0; i < 16; i++) {
         count = irq_count[i];
         if (count > 0)
-            term_printf("%2d: %lld\n", i, count);
+            term_printf("%2d: %" PRId64 "\n", i, count);
     }
 #endif
 }
diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c
index f104300..22d742a 100644
--- a/hw/mips_r4k.c
+++ b/hw/mips_r4k.c
@@ -60,7 +60,7 @@ static void cpu_mips_update_count (CPUState *env, uint32_t count,
 	next++;
 #if 0
     if (logfile) {
-        fprintf(logfile, "%s: 0x%08llx %08x %08x => 0x%08llx\n",
+        fprintf(logfile, "%s: 0x%08" PRIx64 " %08x %08x => 0x%08" PRIx64 "\n",
                 __func__, now, count, compare, next - now);
     }
 #endif
diff --git a/hw/sb16.c b/hw/sb16.c
index f7b12e6..f5eb7fe 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -765,7 +765,7 @@ static void complete (SB16State *s)
                             );
                     }
                 }
-                ldebug ("mix silence %d %d %lld\n", samples, bytes, ticks);
+                ldebug ("mix silence %d %d %" PRId64 "\n", samples, bytes, ticks);
             }
             break;
 
diff --git a/hw/sh7750.c b/hw/sh7750.c
index 041e3ee..21f9bc0 100644
--- a/hw/sh7750.c
+++ b/hw/sh7750.c
@@ -124,7 +124,7 @@ static void start_timer0(SH7750State * s)
 		       s->periph_freq);
     if (next == now)
 	next = now + 1;
-    fprintf(stderr, "now=%016llx, next=%016llx\n", now, next);
+    fprintf(stderr, "now=%016" PRIx64 ", next=%016" PRIx64 "\n", now, next);
     fprintf(stderr, "timer will underflow in %f seconds\n",
 	    (float) (next - now) / (float) ticks_per_sec);
 
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c
index e43151f..288fb50 100644
--- a/hw/slavio_intctl.c
+++ b/hw/slavio_intctl.c
@@ -203,7 +203,7 @@ void slavio_irq_info(void *opaque)
     for (i = 0; i < 32; i++) {
         count = s->irq_count[i];
         if (count > 0)
-            term_printf("%2d: %lld\n", i, count);
+            term_printf("%2d: %" PRId64 "\n", i, count);
     }
 #endif
 }
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index d75a76a..976f0d4 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -100,7 +100,7 @@ static void slavio_timer_get_out(SLAVIO_TIMERState *s)
     // Convert remaining counter ticks to CPU ticks
     s->expire_time = ticks + muldiv64(limit - count, ticks_per_sec, CNT_FREQ);
 
-    DPRINTF("irq %d limit %d reached %d d %lld count %d s->c %x diff %lld stopped %d mode %d\n", s->irq, limit, s->reached?1:0, (ticks-s->count_load_time), count, s->count, s->expire_time - ticks, s->stopped, s->mode);
+    DPRINTF("irq %d limit %d reached %d d %" PRId64 " count %d s->c %x diff %" PRId64 " stopped %d mode %d\n", s->irq, limit, s->reached?1:0, (ticks-s->count_load_time), count, s->count, s->expire_time - ticks, s->stopped, s->mode);
 
     if (s->mode != 1)
 	pic_set_irq_cpu(s->irq, out, s->cpu);
diff --git a/kqemu.c b/kqemu.c
index bd70474..61983d0 100644
--- a/kqemu.c
+++ b/kqemu.c
@@ -598,12 +598,12 @@ void kqemu_record_dump(void)
         perror("/tmp/kqemu.stats");
         exit(1);
     }
-    fprintf(f, "total: %lld\n", total);
+    fprintf(f, "total: %" PRId64 "\n", total);
     sum = 0;
     for(i = 0; i < nb_pc_records; i++) {
         r = pr[i];
         sum += r->count;
-        fprintf(f, "%08lx: %lld %0.2f%% %0.2f%%\n", 
+        fprintf(f, "%08lx: %" PRId64 " %0.2f%% %0.2f%%\n", 
                 r->pc, 
                 r->count, 
                 (double)r->count / (double)total * 100.0,
diff --git a/monitor.c b/monitor.c
index d9257ff..e495c50 100644
--- a/monitor.c
+++ b/monitor.c
@@ -533,16 +533,16 @@ static void memory_dump(int count, int format, int wsize,
             term_printf(" ");
             switch(format) {
             case 'o':
-                term_printf("%#*llo", max_digits, v);
+                term_printf("%#*" PRIo64, max_digits, v);
                 break;
             case 'x':
-                term_printf("0x%0*llx", max_digits, v);
+                term_printf("0x%0*" PRIx64, max_digits, v);
                 break;
             case 'u':
-                term_printf("%*llu", max_digits, v);
+                term_printf("%*" PRIu64, max_digits, v);
                 break;
             case 'd':
-                term_printf("%*lld", max_digits, v);
+                term_printf("%*" PRId64, max_digits, v);
                 break;
             case 'c':
                 term_printc(v);
@@ -602,17 +602,17 @@ static void do_print(int count, int format, int size, unsigned int valh, unsigne
 #else
     switch(format) {
     case 'o':
-        term_printf("%#llo", val);
+        term_printf("%#" PRIo64, val);
         break;
     case 'x':
-        term_printf("%#llx", val);
+        term_printf("%#" PRIx64, val);
         break;
     case 'u':
-        term_printf("%llu", val);
+        term_printf("%" PRIu64, val);
         break;
     default:
     case 'd':
-        term_printf("%lld", val);
+        term_printf("%" PRId64, val);
         break;
     case 'c':
         term_printc(val);
@@ -1026,11 +1026,11 @@ static void do_info_profile(void)
     total = qemu_time;
     if (total == 0)
         total = 1;
-    term_printf("async time  %lld (%0.3f)\n",
+    term_printf("async time  %" PRId64 " (%0.3f)\n",
                 dev_time, dev_time / (double)ticks_per_sec);
-    term_printf("qemu time   %lld (%0.3f)\n",
+    term_printf("qemu time   %" PRId64 " (%0.3f)\n",
                 qemu_time, qemu_time / (double)ticks_per_sec);
-    term_printf("kqemu time  %lld (%0.3f %0.1f%%) count=%lld int=%lld excp=%lld intr=%lld\n",
+    term_printf("kqemu time  %" PRId64 " (%0.3f %0.1f%%) count=%" PRId64 " int=%" PRId64 " excp=%" PRId64 " intr=%" PRId64 "\n",
                 kqemu_time, kqemu_time / (double)ticks_per_sec,
                 kqemu_time / (double)total * 100.0,
                 kqemu_exec_count,
diff --git a/target-arm/nwfpe/fpa11_cprt.c b/target-arm/nwfpe/fpa11_cprt.c
index fe295e1..91f2d80 100644
--- a/target-arm/nwfpe/fpa11_cprt.c
+++ b/target-arm/nwfpe/fpa11_cprt.c
@@ -133,7 +133,7 @@ unsigned int PerformFIX(const unsigned int opcode)
 
       case typeDouble:
       {
-         //printf("F%d is 0x%llx\n",Fn,fpa11->fpreg[Fn].fDouble);
+         //printf("F%d is 0x%" PRIx64 "\n",Fn,fpa11->fpreg[Fn].fDouble);
          writeRegister(getRd(opcode),
 	               float64_to_int32(fpa11->fpreg[Fn].fDouble, &fpa11->fp_status));
       }
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 379cfd5..d7b41ea 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -3259,7 +3259,7 @@ static void mul64(uint64_t *plow, uint64_t *phigh, uint64_t a, uint64_t b)
     v = (uint64_t)a1 * (uint64_t)b1;
     *phigh += v;
 #ifdef DEBUG_MULDIV
-    printf("mul: 0x%016llx * 0x%016llx = 0x%016llx%016llx\n",
+    printf("mul: 0x%016" PRIx64 " * 0x%016" PRIx64 " = 0x%016" PRIx64 "%016" PRIx64 "\n",
            a, b, *phigh, *plow);
 #endif
 }
@@ -3308,7 +3308,7 @@ static int div64(uint64_t *plow, uint64_t *phigh, uint64_t b)
             a0 = (a0 << 1) | qb;
         }
 #if defined(DEBUG_MULDIV)
-        printf("div: 0x%016llx%016llx / 0x%016llx: q=0x%016llx r=0x%016llx\n",
+        printf("div: 0x%016" PRIx64 "%016" PRIx64 " / 0x%016" PRIx64 ": q=0x%016" PRIx64 " r=0x%016" PRIx64 "\n",
                *phigh, *plow, b, a0, a1);
 #endif
         *plow = a0;
diff --git a/target-i386/helper2.c b/target-i386/helper2.c
index ac7d056..19af159 100644
--- a/target-i386/helper2.c
+++ b/target-i386/helper2.c
@@ -264,11 +264,11 @@ void cpu_dump_state(CPUState *env, FILE *f,
 #ifdef TARGET_X86_64
     if (env->hflags & HF_CS64_MASK) {
         cpu_fprintf(f, 
-                    "RAX=%016llx RBX=%016llx RCX=%016llx RDX=%016llx\n"
-                    "RSI=%016llx RDI=%016llx RBP=%016llx RSP=%016llx\n"
-                    "R8 =%016llx R9 =%016llx R10=%016llx R11=%016llx\n"
-                    "R12=%016llx R13=%016llx R14=%016llx R15=%016llx\n"
-                    "RIP=%016llx RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d HLT=%d\n",
+                    "RAX=%016" PRIx64 " RBX=%016" PRIx64 " RCX=%016" PRIx64 " RDX=%016" PRIx64 "\n"
+                    "RSI=%016" PRIx64 " RDI=%016" PRIx64 " RBP=%016" PRIx64 " RSP=%016" PRIx64 "\n"
+                    "R8 =%016" PRIx64 " R9 =%016" PRIx64 " R10=%016" PRIx64 " R11=%016" PRIx64 "\n"
+                    "R12=%016" PRIx64 " R13=%016" PRIx64 " R14=%016" PRIx64 " R15=%016" PRIx64 "\n"
+                    "RIP=%016" PRIx64 " RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d HLT=%d\n",
                     env->regs[R_EAX], 
                     env->regs[R_EBX], 
                     env->regs[R_ECX], 
@@ -329,28 +329,28 @@ void cpu_dump_state(CPUState *env, FILE *f,
     if (env->hflags & HF_LMA_MASK) {
         for(i = 0; i < 6; i++) {
             SegmentCache *sc = &env->segs[i];
-            cpu_fprintf(f, "%s =%04x %016llx %08x %08x\n",
+            cpu_fprintf(f, "%s =%04x %016" PRIx64 " %08x %08x\n",
                         seg_name[i],
                         sc->selector,
                         sc->base,
                         sc->limit,
                         sc->flags);
         }
-        cpu_fprintf(f, "LDT=%04x %016llx %08x %08x\n",
+        cpu_fprintf(f, "LDT=%04x %016" PRIx64 " %08x %08x\n",
                     env->ldt.selector,
                     env->ldt.base,
                     env->ldt.limit,
                     env->ldt.flags);
-        cpu_fprintf(f, "TR =%04x %016llx %08x %08x\n",
+        cpu_fprintf(f, "TR =%04x %016" PRIx64 " %08x %08x\n",
                     env->tr.selector,
                     env->tr.base,
                     env->tr.limit,
                     env->tr.flags);
-        cpu_fprintf(f, "GDT=     %016llx %08x\n",
+        cpu_fprintf(f, "GDT=     %016" PRIx64 " %08x\n",
                     env->gdt.base, env->gdt.limit);
-        cpu_fprintf(f, "IDT=     %016llx %08x\n",
+        cpu_fprintf(f, "IDT=     %016" PRIx64 " %08x\n",
                     env->idt.base, env->idt.limit);
-        cpu_fprintf(f, "CR0=%08x CR2=%016llx CR3=%016llx CR4=%08x\n",
+        cpu_fprintf(f, "CR0=%08x CR2=%016" PRIx64 " CR3=%016" PRIx64 " CR4=%08x\n",
                     (uint32_t)env->cr[0], 
                     env->cr[2], 
                     env->cr[3], 
@@ -394,7 +394,7 @@ void cpu_dump_state(CPUState *env, FILE *f,
             snprintf(cc_op_name, sizeof(cc_op_name), "[%d]", env->cc_op);
 #ifdef TARGET_X86_64
         if (env->hflags & HF_CS64_MASK) {
-            cpu_fprintf(f, "CCS=%016llx CCD=%016llx CCO=%-8s\n",
+            cpu_fprintf(f, "CCS=%016" PRIx64 " CCD=%016" PRIx64 " CCO=%-8s\n",
                         env->cc_src, env->cc_dst, 
                         cc_op_name);
         } else 
@@ -427,10 +427,10 @@ void cpu_dump_state(CPUState *env, FILE *f,
                 } l;
             } tmp;
             tmp.d = env->fpregs[i].d;
-            cpu_fprintf(f, "FPR%d=%016llx %04x",
+            cpu_fprintf(f, "FPR%d=%016" PRIx64 " %04x",
                         i, tmp.l.lower, tmp.l.upper);
 #else
-            cpu_fprintf(f, "FPR%d=%016llx",
+            cpu_fprintf(f, "FPR%d=%016" PRIx64,
                         i, env->fpregs[i].mmx.q);
 #endif
             if ((i & 1) == 1)
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 9eb3e61..046f168 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -2443,12 +2443,12 @@ void cpu_dump_state(CPUState *env, FILE *f,
 {
 #if defined(TARGET_PPC64) || 1
 #define FILL ""
-#define REGX "%016llx"
+#define REGX "%016" PRIx64
 #define RGPL  4
 #define RFPL  4
 #else
 #define FILL "        "
-#define REGX "%08llx"
+#define REGX "%08" PRIx64
 #define RGPL  8
 #define RFPL  4
 #endif
@@ -2485,7 +2485,7 @@ void cpu_dump_state(CPUState *env, FILE *f,
     for (i = 0; i < 32; i++) {
         if ((i & (RFPL - 1)) == 0)
             cpu_fprintf(f, "FPR%02d", i);
-        cpu_fprintf(f, " %016llx", *((uint64_t *)&env->fpr[i]));
+        cpu_fprintf(f, " %016" PRIx64, *((uint64_t *)&env->fpr[i]));
         if ((i & (RFPL - 1)) == (RFPL - 1))
             cpu_fprintf(f, "\n");
     }
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 012c34f..ddf0c91 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -252,7 +252,7 @@ static inline void spr_register (CPUPPCState *env, int num,
         exit(1);
     }
 #if defined(PPC_DEBUG_SPR)
-    printf("*** register spr %d (%03x) %s val %08llx\n", num, num, name,
+    printf("*** register spr %d (%03x) %s val %08" PRIx64 "\n", num, num, name,
            (unsigned long long)initial_value);
 #endif
     spr->name = name;
diff --git a/target-sparc/helper.c b/target-sparc/helper.c
index 982b7fc..8f12667 100644
--- a/target-sparc/helper.c
+++ b/target-sparc/helper.c
@@ -394,7 +394,7 @@ static int get_physical_address_data(CPUState *env, target_phys_addr_t *physical
 		env->dmmuregs[4] = address; /* Fault address register */
 		env->exception_index = TT_DFAULT;
 #ifdef DEBUG_MMU
-		printf("DFAULT at 0x%llx\n", address);
+		printf("DFAULT at 0x%" PRIx64 "\n", address);
 #endif
 		return 1;
 	    }
@@ -406,7 +406,7 @@ static int get_physical_address_data(CPUState *env, target_phys_addr_t *physical
 	}
     }
 #ifdef DEBUG_MMU
-    printf("DMISS at 0x%llx\n", address);
+    printf("DMISS at 0x%" PRIx64 "\n", address);
 #endif
     env->exception_index = TT_DMISS;
     return 1;
@@ -452,7 +452,7 @@ static int get_physical_address_code(CPUState *env, target_phys_addr_t *physical
 		env->immuregs[3] |= (is_user << 3) | 1;
 		env->exception_index = TT_TFAULT;
 #ifdef DEBUG_MMU
-		printf("TFAULT at 0x%llx\n", address);
+		printf("TFAULT at 0x%" PRIx64 "\n", address);
 #endif
 		return 1;
 	    }
@@ -462,7 +462,7 @@ static int get_physical_address_code(CPUState *env, target_phys_addr_t *physical
 	}
     }
 #ifdef DEBUG_MMU
-    printf("TMISS at 0x%llx\n", address);
+    printf("TMISS at 0x%" PRIx64 "\n", address);
 #endif
     env->exception_index = TT_TMISS;
     return 1;
@@ -491,7 +491,7 @@ int cpu_sparc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
 	virt_addr = address & TARGET_PAGE_MASK;
 	vaddr = virt_addr + ((address & TARGET_PAGE_MASK) & (TARGET_PAGE_SIZE - 1));
 #ifdef DEBUG_MMU
-	printf("Translate at 0x%llx -> 0x%llx, vaddr 0x%llx\n", address, paddr, vaddr);
+	printf("Translate at 0x%" PRIx64 " -> 0x%" PRIx64 ", vaddr 0x%" PRIx64 "\n", address, paddr, vaddr);
 #endif
 	ret = tlb_set_page_exec(env, vaddr, paddr, prot, is_user, is_softmmu);
 	return ret;
@@ -506,7 +506,7 @@ void dump_mmu(CPUState *env)
     unsigned int i;
     const char *mask;
 
-    printf("MMU contexts: Primary: %lld, Secondary: %lld\n", env->dmmuregs[1], env->dmmuregs[2]);
+    printf("MMU contexts: Primary: %" PRId64 ", Secondary: %" PRId64 "\n", env->dmmuregs[1], env->dmmuregs[2]);
     if ((env->lsu & DMMU_E) == 0) {
 	printf("DMMU disabled\n");
     } else {
@@ -528,7 +528,7 @@ void dump_mmu(CPUState *env)
 		break;
 	    }
 	    if ((env->dtlb_tte[i] & 0x8000000000000000ULL) != 0) {
-		printf("VA: " TARGET_FMT_lx ", PA: " TARGET_FMT_lx ", %s, %s, %s, %s, ctx %lld\n",
+		printf("VA: " TARGET_FMT_lx ", PA: " TARGET_FMT_lx ", %s, %s, %s, %s, ctx %" PRId64 "\n",
 		       env->dtlb_tag[i] & ~0x1fffULL,
 		       env->dtlb_tte[i] & 0x1ffffffe000ULL,
 		       mask,
@@ -560,7 +560,7 @@ void dump_mmu(CPUState *env)
 		break;
 	    }
 	    if ((env->itlb_tte[i] & 0x8000000000000000ULL) != 0) {
-		printf("VA: " TARGET_FMT_lx ", PA: " TARGET_FMT_lx ", %s, %s, %s, ctx %lld\n",
+		printf("VA: " TARGET_FMT_lx ", PA: " TARGET_FMT_lx ", %s, %s, %s, ctx %" PRId64 "\n",
 		       env->itlb_tag[i] & ~0x1fffULL,
 		       env->itlb_tte[i] & 0x1ffffffe000ULL,
 		       mask,
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index 5f88459..f4f725d 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -446,7 +446,7 @@ void helper_st_asi(int asi, int size, int sign)
 	    // invalid in normal mode
 	    if (oldreg != env->lsu) {
 #ifdef DEBUG_MMU
-                printf("LSU change: 0x%llx -> 0x%llx\n", oldreg, env->lsu);
+                printf("LSU change: 0x%" PRIx64 " -> 0x%" PRIx64 "\n", oldreg, env->lsu);
 		dump_mmu(env);
 #endif
 		tlb_flush(env, 1);
@@ -480,7 +480,7 @@ void helper_st_asi(int asi, int size, int sign)
 	    env->immuregs[reg] = T1;
 #ifdef DEBUG_MMU
             if (oldreg != env->immuregs[reg]) {
-                printf("mmu change reg[%d]: 0x%08llx -> 0x%08llx\n", reg, oldreg, env->immuregs[reg]);
+                printf("mmu change reg[%d]: 0x%08" PRIx64 " -> 0x%08" PRIx64 "\n", reg, oldreg, env->immuregs[reg]);
             }
 	    dump_mmu(env);
 #endif
@@ -549,7 +549,7 @@ void helper_st_asi(int asi, int size, int sign)
 	    env->dmmuregs[reg] = T1;
 #ifdef DEBUG_MMU
             if (oldreg != env->dmmuregs[reg]) {
-                printf("mmu change reg[%d]: 0x%08llx -> 0x%08llx\n", reg, oldreg, env->dmmuregs[reg]);
+                printf("mmu change reg[%d]: 0x%08" PRIx64 " -> 0x%08" PRIx64 "\n", reg, oldreg, env->dmmuregs[reg]);
             }
 	    dump_mmu(env);
 #endif
@@ -769,7 +769,7 @@ void do_interrupt(int intno)
 #ifdef DEBUG_PCALL
     if (loglevel & CPU_LOG_INT) {
 	static int count;
-	fprintf(logfile, "%6d: v=%04x pc=%016llx npc=%016llx SP=%016llx\n",
+	fprintf(logfile, "%6d: v=%04x pc=%016" PRIx64 " npc=%016" PRIx64 " SP=%016" PRIx64 "\n",
                 count, intno,
                 env->pc,
                 env->npc, env->regwptr[6]);
diff --git a/tests/test-i386.c b/tests/test-i386.c
index 6480269..4a25d03 100644
--- a/tests/test-i386.c
+++ b/tests/test-i386.c
@@ -50,7 +50,7 @@
 #define FMTLX "%016lx"
 #define X86_64_ONLY(x) x
 #else
-#define FMT64X "%016llx"
+#define FMT64X "%016" PRIx64
 #define FMTLX "%08lx"
 #define X86_64_ONLY(x)
 #endif
diff --git a/vl.c b/vl.c
index 118a1e2..51ad671 100644
--- a/vl.c
+++ b/vl.c
@@ -912,7 +912,7 @@ static void host_alarm_handler(int host_signum)
                 delta_max = delta;
             delta_cum += delta;
             if (++count == DISP_FREQ) {
-                printf("timer: min=%lld us max=%lld us avg=%lld us avg_freq=%0.3f Hz\n",
+                printf("timer: min=%" PRId64 " us max=%" PRId64 " us avg=%" PRId64 " us avg_freq=%0.3f Hz\n",
                        muldiv64(delta_min, 1000000, ticks_per_sec),
                        muldiv64(delta_max, 1000000, ticks_per_sec),
                        muldiv64(delta_cum, 1000000 / DISP_FREQ, ticks_per_sec),
diff --git a/vl.h b/vl.h
index 3cc4621..58dc17a 100644
--- a/vl.h
+++ b/vl.h
@@ -61,6 +61,9 @@ static inline char *realpath(const char *path, char *resolved_path)
 }
 
 #define PRId64 "I64d"
+#define PRIx64 "I64x"
+#define PRIu64 "I64u"
+#define PRIo64 "I64o"
 #endif
 
 #ifdef QEMU_TOOL
