opcodes/aarch64: split off creation of comment text in disassembler
authorAndrew Burgess <aburgess@redhat.com>
Thu, 16 Jun 2022 12:46:41 +0000 (13:46 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Wed, 29 Jun 2022 11:03:22 +0000 (12:03 +0100)
commit6837a663c55602490ed095e5891e0c4deff4b9db
treea762fdea523363cb8cf594cc2d5a22c6ecc69340
parent13f72372413400410aaa94b7f0e2ff7de663fdcb
opcodes/aarch64: split off creation of comment text in disassembler

The function aarch64_print_operand (aarch64-opc.c) is responsible for
converting an instruction operand into the textual representation of
that operand.

In some cases, a comment is included in the operand representation,
though this (currently) only happens for the last operand of the
instruction.

In a future commit I would like to enable the new libopcodes styling
for AArch64, this will allow objdump and GDB[1] to syntax highlight
the disassembler output, however, having operands and comments
combined in a single string like this makes such styling harder.

In this commit, I propose to extend aarch64_print_operand to take a
second buffer.  Any comments for the instruction are written into this
extra buffer.  The two callers of aarch64_print_operand are then
updated to pass an extra buffer, and print any resulting comment.

In this commit no styling is added, that will come later.  However, I
have adjusted the output slightly.  Before this commit some comments
would be separated from the instruction operands with a tab character,
while in other cases the comment was separated with two single spaces.

After this commit I use a single tab character in all cases.  This
means a few test cases needed updated.  If people would prefer me to
move everyone to use the two spaces, then just let me know.  Or maybe
there was a good reason why we used a mix of styles, I could probably
figure out a way to maintain the old output exactly if that is
critical.

Other than that, there should be no user visible changes after this
commit.

[1] GDB patches have not been merged yet, but have been posted to the
GDB mailing list:
https://sourceware.org/pipermail/gdb-patches/2022-June/190142.html
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/alias.d
gas/testsuite/gas/aarch64/b_c_1.d
gas/testsuite/gas/aarch64/float-fp16.d
gas/testsuite/gas/aarch64/int-insns.d
gas/testsuite/gas/aarch64/no-aliases.d
gas/testsuite/gas/aarch64/programmer-friendly.d
include/opcode/aarch64.h
opcodes/aarch64-dis.c
opcodes/aarch64-opc.c