J'ai cloné le référentiel riscv-tools (branche principale) et j'ai suivi la procédure de construction. Tout s'est bien passé.Options de dissassemblage RISCV numériques et non-alias
J'ai ensuite essayé de compiler le programme Bonjour tout le monde pour un jeu d'instructions RV32IM, en faisant ceci:
riscv64-unknown-elf-gcc -m32 -march=RV32IM -o hello hello.c -save-temps
j'ai utilisé options de sauvegarde-temps pour conserver les fichiers intermédiaires. (Hello.s, hello.i, hello.o)
Tout est OK jusqu'à présent, je peux courir le bonjour programme mondial avec:
spike pk hello
Hello world!
Maintenant, je voulais jeter un oeil sur le code de montage pour ce programme. Je l'ai fait ce qui suit et je reçois le code assembleur dans hello.dump
riscv64-unknown-elf-objdump -D -S -l -F hello.o > hello.o.dump
Maintenant ce que je serais curieux de voir est le code assembleur sans instructions de pseudo et les noms ABI-registre non.
Il semble possible d'obtenir que, quand je fais:
riscv64-unknown-elf-objdump --target-help
Je reçois ceci:
The following RISC-V-specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
numeric Print numeric reigster names, rather than ABI names.
no-aliases Disassemble only into canonical instructions, rather
than into pseudoinstructions.
Cependant lorsque je tente d'ajouter ces options, il ne fonctionne pas.
riscv64-unknown-elf-objdump -D -S -l -F -Mno-aliases hello.o > hello.o.dump
Unrecognized disassembler option: no-aliases
riscv64-unknown-elf-objdump -D -S -l -F -Mnumeric hello.o > hello.o.dump
Unrecognized disassembler option: numeric
riscv64-unknown-elf-objdump -D -S -l -F -Mnumeric,no-aliases hello.o > hello.o.dump
Unrecognized disassembler option: numeric
Unrecognized disassembler option: no-aliases
Est-ce une erreur de syntaxe de commande ou n'est-elle pas encore supportée par le désassembleur?