Message ID | 20240305121005.3528075-27-alex.bennee@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | maintainer/next for 9.0 (testing, gdbstub, plugins, disas) | expand |
On 3/5/24 02:10, Alex Bennée wrote: > For plugins we don't expect the raw opcodes in the disassembly. We > already deal with this by hand crafting our capstone call but for > other diassemblers we need a flag. Introduce show_opcodes which > defaults to off. > > Signed-off-by: Alex Bennée<alex.bennee@linaro.org> > --- > include/disas/dis-asm.h | 8 ++++++++ > disas/disas.c | 1 + > 2 files changed, 9 insertions(+) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/include/disas/dis-asm.h b/include/disas/dis-asm.h index 2324f6b1a46..b26867b6417 100644 --- a/include/disas/dis-asm.h +++ b/include/disas/dis-asm.h @@ -396,6 +396,14 @@ typedef struct disassemble_info { /* Command line options specific to the target disassembler. */ char * disassembler_options; + /* + * When true instruct the disassembler it may preface the + * disassembly with the opcodes values if it wants to. This is + * mainly for the benefit of the plugin interface which doesn't want + * that. + */ + bool show_opcodes; + /* Field intended to be used by targets in any way they deem suitable. */ void *target_info; diff --git a/disas/disas.c b/disas/disas.c index 0d2d06c2ecc..17170d291ec 100644 --- a/disas/disas.c +++ b/disas/disas.c @@ -299,6 +299,7 @@ void disas(FILE *out, const void *code, size_t size) s.info.buffer = code; s.info.buffer_vma = (uintptr_t)code; s.info.buffer_length = size; + s.info.show_opcodes = true; if (s.info.cap_arch >= 0 && cap_disas_host(&s.info, code, size)) { return;
For plugins we don't expect the raw opcodes in the disassembly. We already deal with this by hand crafting our capstone call but for other diassemblers we need a flag. Introduce show_opcodes which defaults to off. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- include/disas/dis-asm.h | 8 ++++++++ disas/disas.c | 1 + 2 files changed, 9 insertions(+)