disas: introduce show_opcodes

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.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240305121005.3528075-27-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2024-03-05 12:10:02 +00:00
parent 3077be2545
commit 83b4613ba8
2 changed files with 9 additions and 0 deletions

View File

@ -299,6 +299,7 @@ void disas(FILE *out, const void *code, size_t size)
s.info.buffer = code; s.info.buffer = code;
s.info.buffer_vma = (uintptr_t)code; s.info.buffer_vma = (uintptr_t)code;
s.info.buffer_length = size; s.info.buffer_length = size;
s.info.show_opcodes = true;
if (s.info.cap_arch >= 0 && cap_disas_host(&s.info, code, size)) { if (s.info.cap_arch >= 0 && cap_disas_host(&s.info, code, size)) {
return; return;

View File

@ -396,6 +396,14 @@ typedef struct disassemble_info {
/* Command line options specific to the target disassembler. */ /* Command line options specific to the target disassembler. */
char * disassembler_options; 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. */ /* Field intended to be used by targets in any way they deem suitable. */
void *target_info; void *target_info;