diff options
author | Andrew Burgess <aburgess@redhat.com> | 2022-04-04 22:38:04 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2022-04-04 22:41:24 +0100 |
commit | 7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1 (patch) | |
tree | ba53406de8080613704aa3247a77dd9a360e1521 /sim/common/cgen-trace.c | |
parent | 0578e87f93b09e4cc41d3982eb1672bcfc81042d (diff) | |
download | binutils-7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1.zip binutils-7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1.tar.gz binutils-7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1.tar.bz2 |
sim: fixes for libopcodes styled disassembler
In commit:
commit 60a3da00bd5407f07d64dff82a4dae98230dfaac
Date: Sat Jan 22 11:38:18 2022 +0000
objdump/opcodes: add syntax highlighting to disassembler output
I broke several sim/ targets by forgetting to update their uses of the
libopcodes disassembler to take account of the new styled printing.
These should all be fixed by this commit.
I've not tried to add actual styled output to the simulator traces,
instead, the styled print routines just ignore the style and print the
output unstyled.
Diffstat (limited to 'sim/common/cgen-trace.c')
-rw-r--r-- | sim/common/cgen-trace.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/sim/common/cgen-trace.c b/sim/common/cgen-trace.c index 149ea8a..12f6126 100644 --- a/sim/common/cgen-trace.c +++ b/sim/common/cgen-trace.c @@ -320,6 +320,22 @@ sim_disasm_sprintf (SFILE *f, const char *format, ...) return n; } +/* sprintf to a "stream" with styling. */ + +int +sim_disasm_styled_sprintf (SFILE *f, enum disassembler_style style, + const char *format, ...) +{ + int n; + va_list args; + + va_start (args, format); + vsprintf (f->current, format, args); + f->current += n = strlen (f->current); + va_end (args); + return n; +} + /* Memory read support for an opcodes disassembler. */ int @@ -383,7 +399,8 @@ sim_cgen_disassemble_insn (SIM_CPU *cpu, const CGEN_INSN *insn, sfile.buffer = sfile.current = buf; INIT_DISASSEMBLE_INFO (disasm_info, (FILE *) &sfile, - (fprintf_ftype) sim_disasm_sprintf); + (fprintf_ftype) sim_disasm_sprintf, + (fprintf_styled_ftype) sim_disasm_styled_sprintf); disasm_info.endian = (bfd_big_endian (STATE_PROG_BFD (sd)) ? BFD_ENDIAN_BIG : bfd_little_endian (STATE_PROG_BFD (sd)) ? BFD_ENDIAN_LITTLE |