summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cris-dis.c9
-rw-r--r--dis-asm.h1
-rw-r--r--disas.c9
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
@@ -2843,6 +2841,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;