You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calling riscv_subset_supports repeatedly harms the performance in a
measurable way (about 3-13% in total on the most cases).
As a simple solution, this commit now caches instruction class support
(whether specific instruction class is supported) as a signed char array.
It is expected to have 5-7% performance improvements when disassembling
linked RISC-V ELF programs using objdump but this is particularly effective
with programs with many CSR instructions (up to ~42% on the author's PC).
include/ChangeLog:
* opcode/riscv.h (enum riscv_insn_class): Add NUM_INSN_CLASSES.
opcodes/ChangeLog:
* riscv-dis.c (riscv_insn_support_cache) New.
(init_riscv_dis_state_for_arch): Clear the instruction support
cache. (riscv_disassemble_insn): Cache the instruction support.
0 commit comments