aarch64: Decode dwarf2 register numbers

* dwarf.h (init_dwarf_regnames_aarch64): Declare.
	* dwarf.c (dwarf_regnames_aarch64): New.
	(init_dwarf_regnames_aarch64): New.
	(init_dwarf_regnames): Call it.
	* objdump.c (dump_dwarf): Likewise.
This commit is contained in:
Richard Henderson
2014-08-22 14:40:10 -07:00
parent fbd940576f
commit 4ee220358d
4 changed files with 40 additions and 0 deletions

View File

@@ -5093,6 +5093,29 @@ init_dwarf_regnames_x86_64 (void)
dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_x86_64);
}
static const char *const dwarf_regnames_aarch64[] =
{
"x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7",
"x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15",
"x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23",
"x24", "x25", "x26", "x27", "x28", "x29", "x30", "sp",
NULL, "elr", NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
"v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
"v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
"v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31",
};
void
init_dwarf_regnames_aarch64 (void)
{
dwarf_regnames = dwarf_regnames_aarch64;
dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_aarch64);
}
void
init_dwarf_regnames (unsigned int e_machine)
{
@@ -5109,6 +5132,10 @@ init_dwarf_regnames (unsigned int e_machine)
init_dwarf_regnames_x86_64 ();
break;
case EM_AARCH64:
init_dwarf_regnames_aarch64 ();
break;
default:
break;
}