diff mbox

[for-2.5,04/30] m68k: set disassembler mode to 680x0 or coldfire

Message ID 1439151229-27747-5-git-send-email-laurent@vivier.eu
State New
Headers show

Commit Message

Laurent Vivier Aug. 9, 2015, 8:13 p.m. UTC
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 disas.c                 | 4 ++++
 target-m68k/translate.c | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

Comments

Richard Henderson Aug. 12, 2015, 3:57 a.m. UTC | #1
On 08/09/2015 01:13 PM, Laurent Vivier wrote:
> Signed-off-by: Laurent Vivier<laurent@vivier.eu>
> ---
>   disas.c                 | 4 ++++
>   target-m68k/translate.c | 3 ++-
>   2 files changed, 6 insertions(+), 1 deletion(-)


Reviewed-by: Richard Henderson <rth@twiddle.net>


r~
diff mbox

Patch

diff --git a/disas.c b/disas.c
index 69a6066..2512001 100644
--- a/disas.c
+++ b/disas.c
@@ -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;
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 3b87b0c..6ba71a2 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -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