opcodes/i386: partially implement disassembler style support
authorAndrew Burgess <aburgess@redhat.com>
Sat, 5 Feb 2022 11:25:14 +0000 (11:25 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Mon, 4 Apr 2022 12:10:52 +0000 (13:10 +0100)
commitfbbb45cef5f740d0e273b0f5fe4d19a093c2bf8f
tree33ffeec8caa2d91de6ca91bcdb8df571ec9d5bbf
parent49d31dc98e3f4bb15553bab9d903c542287446d4
opcodes/i386: partially implement disassembler style support

This commit adds partial support for disassembler styling in the i386
disassembler.

The i386 disassembler collects the instruction arguments into an array
of strings, and then loops over the array printing the arguments out
later on.  The problem is that by the time we print the arguments out
it's not obvious what the type of each argument is.

Obviously this can be fixed, but I'd like to not do that as part of
this commit, rather, I'd prefer to keep this commit as small as
possible to get the basic infrastructure in place, then we can improve
on this, to add additional styling, in later commits.

For now then, I think this commit should correctly style mnemonics,
some immediates, and comments.  Everything else will be printed as
plain text, which will include most instruction arguments, unless the
argument is printed as a symbol, by calling the print_address_func
callback.

Ignoring colours, there should be no other user visible changes in the
output of the disassembler in either objdump or gdb.

opcodes/ChangeLog:

* disassembler.c (disassemble_init_for_target): Set
created_styled_output for i386 based targets.
* i386-dis.c: Changed throughout to use fprintf_styled_func
instead of fprintf_func.
opcodes/disassemble.c
opcodes/i386-dis.c