diff options
author | Tristan Gingold <gingold@adacore.com> | 2007-11-07 15:57:14 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2007-11-07 15:57:14 +0000 |
commit | 679936aac4c61ba53dc087d4d069543f3785a20c (patch) | |
tree | e3d372978bc26332bedabb10402c89a260a25291 /opcodes/ia64-dis.c | |
parent | b5482f211e3d2f32d10d5c6c1b97e9603fe44d8e (diff) | |
download | gdb-679936aac4c61ba53dc087d4d069543f3785a20c.zip gdb-679936aac4c61ba53dc087d4d069543f3785a20c.tar.gz gdb-679936aac4c61ba53dc087d4d069543f3785a20c.tar.bz2 |
* ia64-dis.c (print_insn_ia64): Generate symbolic names for cr
registers instead of register number.
* gas/ia64/regs.d: Expect symbolic names for cr registers due to
improved disassembler.
Diffstat (limited to 'opcodes/ia64-dis.c')
-rw-r--r-- | opcodes/ia64-dis.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/opcodes/ia64-dis.c b/opcodes/ia64-dis.c index 146464f..23b07a3 100644 --- a/opcodes/ia64-dis.c +++ b/opcodes/ia64-dis.c @@ -214,6 +214,42 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info) } (*info->fprintf_func) (info->stream, "%s", regname); } + else if (odesc->str[0] == 'c' && odesc->str[1] == 'r') + { + switch (value) + { + case 0: strcpy (regname, "cr.dcr"); break; + case 1: strcpy (regname, "cr.itm"); break; + case 2: strcpy (regname, "cr.iva"); break; + case 8: strcpy (regname, "cr.pta"); break; + case 16: strcpy (regname, "cr.ipsr"); break; + case 17: strcpy (regname, "cr.isr"); break; + case 19: strcpy (regname, "cr.iip"); break; + case 20: strcpy (regname, "cr.ifa"); break; + case 21: strcpy (regname, "cr.itir"); break; + case 22: strcpy (regname, "cr.iipa"); break; + case 23: strcpy (regname, "cr.ifs"); break; + case 24: strcpy (regname, "cr.iim"); break; + case 25: strcpy (regname, "cr.iha"); break; + case 64: strcpy (regname, "cr.lid"); break; + case 65: strcpy (regname, "cr.ivr"); break; + case 66: strcpy (regname, "cr.tpr"); break; + case 67: strcpy (regname, "cr.eoi"); break; + case 68: strcpy (regname, "cr.irr0"); break; + case 69: strcpy (regname, "cr.irr1"); break; + case 70: strcpy (regname, "cr.irr2"); break; + case 71: strcpy (regname, "cr.irr3"); break; + case 72: strcpy (regname, "cr.itv"); break; + case 73: strcpy (regname, "cr.pmv"); break; + case 74: strcpy (regname, "cr.cmcv"); break; + case 80: strcpy (regname, "cr.lrr0"); break; + case 81: strcpy (regname, "cr.lrr1"); break; + default: + sprintf (regname, "cr%u", (unsigned int) value); + break; + } + (*info->fprintf_func) (info->stream, "%s", regname); + } else (*info->fprintf_func) (info->stream, "%s%d", odesc->str, (int)value); break; |