From b09cd072df07c63997cc81b6767f2e145d9496e5 Mon Sep 17 00:00:00 2001 From: "Edgar E. Iglesias" Date: Mon, 10 Jan 2011 22:31:09 +0100 Subject: [PATCH] cris: Support disassembly of crisv10 Signed-off-by: Edgar E. Iglesias --- cris-dis.c | 9 +++++++-- dis-asm.h | 1 + disas.c | 9 +++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cris-dis.c b/cris-dis.c index afd775c29b..5fa67d9f29 100644 --- a/cris-dis.c +++ b/cris-dis.c @@ -2767,7 +2767,6 @@ print_insn_cris_generic (bfd_vma memaddr, } /* Disassemble, prefixing register names with `$'. CRIS v0..v10. */ -#if 0 static int print_insn_cris_with_register_prefix (bfd_vma vma, disassemble_info *info) @@ -2777,7 +2776,6 @@ print_insn_cris_with_register_prefix (bfd_vma vma, return -1; return print_insn_cris_generic (vma, info, true); } -#endif /* Disassemble, prefixing register names with `$'. CRIS v32. */ static int @@ -2842,6 +2840,13 @@ print_insn_crisv10_v32_without_register_prefix (bfd_vma vma, } #endif +int +print_insn_crisv10 (bfd_vma vma, + disassemble_info *info) +{ + return print_insn_cris_with_register_prefix(vma, info); +} + int print_insn_crisv32 (bfd_vma vma, disassemble_info *info) diff --git a/dis-asm.h b/dis-asm.h index 3fb483815a..356459c5fd 100644 --- a/dis-asm.h +++ b/dis-asm.h @@ -397,6 +397,7 @@ extern int print_insn_tic30 (bfd_vma, disassemble_info*); extern int print_insn_ppc (bfd_vma, disassemble_info*); extern int print_insn_s390 (bfd_vma, disassemble_info*); extern int print_insn_crisv32 (bfd_vma, disassemble_info*); +extern int print_insn_crisv10 (bfd_vma, disassemble_info*); extern int print_insn_microblaze (bfd_vma, disassemble_info*); extern int print_insn_ia64 (bfd_vma, disassemble_info*); diff --git a/disas.c b/disas.c index afe331fdb9..dd2db142d7 100644 --- a/disas.c +++ b/disas.c @@ -208,8 +208,13 @@ void target_disas(FILE *out, target_ulong code, target_ulong size, int flags) disasm_info.mach = bfd_mach_alpha; print_insn = print_insn_alpha; #elif defined(TARGET_CRIS) - disasm_info.mach = bfd_mach_cris_v32; - print_insn = print_insn_crisv32; + if (flags != 32) { + disasm_info.mach = bfd_mach_cris_v0_v10; + print_insn = print_insn_crisv10; + } else { + disasm_info.mach = bfd_mach_cris_v32; + print_insn = print_insn_crisv32; + } #elif defined(TARGET_MICROBLAZE) disasm_info.mach = bfd_arch_microblaze; print_insn = print_insn_microblaze;