aboutsummaryrefslogtreecommitdiff
path: root/opcodes/disassemble.c
diff options
context:
space:
mode:
authorNelson Chu <nelson@rivosinc.com>2023-05-04 15:22:13 +0800
committerNelson Chu <nelson@rivosinc.com>2023-05-19 16:24:05 +0800
commit26e91972538544a237897baa5c806a008d36a88c (patch)
tree4baad01123ed0b2277dc27461678e03f75a46d9d /opcodes/disassemble.c
parent1e66f4c55f83ba4d27330312aefdd4fbdf56cb43 (diff)
downloadgdb-26e91972538544a237897baa5c806a008d36a88c.zip
gdb-26e91972538544a237897baa5c806a008d36a88c.tar.gz
gdb-26e91972538544a237897baa5c806a008d36a88c.tar.bz2
RISC-V: Minor improvements for dis-assembler.
* Extract all private_data initializations into riscv_init_disasm_info, which called from print_insn_riscv rather than riscv_disassemble_insn. * The disassemble_free_target seems like the right place to release all target private_data, also including the internal data structures, like riscv_subsets. Therefore, add a new function, disassemble_free_riscv, to release them for safe. opcodes/ * disassemble.c (disassemble_free_target): Called disassemble_free_riscv for riscv to release private_data and internal data structures. * disassemble.h: Added extern disassemble_free_riscv. * riscv-dis.c (riscv_init_disasm_info): New function, used to init riscv_private_data. (riscv_disassemble_insn): Moved riscv_private_data initializations into riscv_init_disasm_info. (print_insn_riscv): Called riscv_init_disasm_info to init riscv_private_data once time. (disassemble_free_riscv): New function, used to free the internal data structures, like riscv_subsets.
Diffstat (limited to 'opcodes/disassemble.c')
-rw-r--r--opcodes/disassemble.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 93052e7..03cfccc 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -800,6 +800,7 @@ disassemble_free_target (struct disassemble_info *info)
#endif
#ifdef ARCH_riscv
case bfd_arch_riscv:
+ disassemble_free_riscv (info);
break;
#endif
#ifdef ARCH_rs6000