riscv objdump, как настроить печатать имена регистров x0-x31 вместо имен abi - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь разобрать бинарный файл risc-v с помощью riscv64-unknown-elf-objdump, и я хочу получить имена регистров, как видно на оборудовании (например, x0-x31), а не как в abi (sp, s0), a ..).

В руководстве objdump, похоже, нет такой опции для RISC-V.На самом деле, в руководстве, похоже, нет никакой информации, касающейся RISC-V.Для ARM есть -M reg-names-raw, кто-нибудь знает, доступен ли такой флаг?

riscv64-unknown-elf-objdump -M"no-aliases" -M"gpr-names-raw" -d hello -> возвращает
0: riscv64-unknown-elf-objdump: нераспознанный параметр дизассемблера: gpr-names-raw, ни gpr-names-raw, ни reg-names = ARCH не распознаются как опции

Я хочу что-то вроде этого:

addi    x1,x1,-32
sw      x2,28(x3)
addi    x5,x5,32

вместо этого

addi    sp,sp,-32
sw      s0,28(sp)
addi    s0,sp,32

1 Ответ

0 голосов
/ 11 июля 2019
--- binutils-patch/opcodes/riscv-dis.c
+++ binutils-patch/opcodes/riscv-dis.c
@@ -47,8 +47,8 @@
 static void
 set_default_riscv_dis_options (void)
 {
-  riscv_gpr_names = riscv_gpr_names_abi;
-  riscv_fpr_names = riscv_fpr_names_abi;
+  riscv_gpr_names = riscv_gpr_names_numeric;
+  riscv_fpr_names = riscv_fpr_names_numeric;
   no_aliases = 0;
 }
...