64 bit disas fix


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1260 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/disas.c b/disas.c
index 3a5549d..8bba624 100644
--- a/disas.c
+++ b/disas.c
@@ -148,11 +148,7 @@
 #endif
 
     for (pc = code; pc < code + size; pc += count) {
-#if TARGET_LONG_BITS == 64        
-	fprintf(out, "0x%016llx:  ", pc);
-#else
-	fprintf(out, "0x%08x:  ", pc);
-#endif
+	fprintf(out, "0x" TARGET_FMT_lx ":  ", pc);
 	count = print_insn(pc, &disasm_info);
 #if 0
         {
@@ -301,10 +297,12 @@
     disasm_info.endian = BFD_ENDIAN_LITTLE;
 #endif
 #if defined(TARGET_I386)
-    if (!flags)
-        disasm_info.mach = bfd_mach_i386_i386;
-    else
+    if (flags == 2)
+        disasm_info.mach = bfd_mach_x86_64;
+    else if (flags == 1) 
         disasm_info.mach = bfd_mach_i386_i8086;
+    else
+        disasm_info.mach = bfd_mach_i386_i386;
     print_insn = print_insn_i386;
 #elif defined(TARGET_ARM)
     print_insn = print_insn_arm;
@@ -318,7 +316,7 @@
 #endif
 
     for(i = 0; i < nb_insn; i++) {
-	term_printf("0x%08lx:  ", (unsigned long)pc);
+	term_printf("0x" TARGET_FMT_lx ":  ", pc);
 	count = print_insn(pc, &disasm_info);
 	term_printf("\n");
 	if (count < 0)