forked from Imagelibrary/binutils-gdb
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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user