@@ -185,6 +185,7 @@ static int print_insn_od_target(bfd_vma pc, disassemble_info *info)
i386 - 1 means 16 bit code, 2 means 64 bit code
ppc - bits 0:15 specify (optionally) the machine instruction set;
bit 16 indicates little endian.
+ m68k - 1 means 680x0 family, otherwise coldfire
other targets - unused
*/
void target_disas(FILE *out, CPUState *cpu, target_ulong code,
@@ -245,6 +246,9 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
s.info.print_insn = print_insn_ppc;
#elif defined(TARGET_M68K)
s.info.print_insn = print_insn_m68k;
+ if (flags) {
+ s.info.mach = bfd_mach_m68040;
+ }
#elif defined(TARGET_MIPS)
#ifdef TARGET_WORDS_BIGENDIAN
s.info.print_insn = print_insn_big_mips;
@@ -3139,9 +3139,10 @@ gen_intermediate_code_internal(M68kCPU *cpu, TranslationBlock *tb,
#ifdef DEBUG_DISAS
if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) {
+ int flags = m68k_feature(env, M68K_FEATURE_M68000);
qemu_log("----------------\n");
qemu_log("IN: %s\n", lookup_symbol(pc_start));
- log_target_disas(cs, pc_start, dc->pc - pc_start, 0);
+ log_target_disas(cs, pc_start, dc->pc - pc_start, flags);
qemu_log("\n");
}
#endif
Signed-off-by: Laurent Vivier <laurent@vivier.eu> --- disas.c | 4 ++++ target-m68k/translate.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-)