[PATCH v6 0/7] LoongArch: disassembler improvements & deprecate old register aliases

WANG Xuerui i.swmail@xen0n.name
Thu Jun 29 06:10:22 GMT 2023


From: WANG Xuerui <git@xen0n.name>

Hi,

This series implements colored output for LoongArch disassembly, and
some minor tweaks to the output so there is less clutter. While at it,
also deprecate the aliases $v0, $v1, $fv0, $fv1 and $x, so users don't
find it confusing in an era when $vrNN and $xrNN (LSX/LASX registers)
are also available. The patch is included last because its test case
would need tweaking if the disassembler changes first get merged anyway.

The 4th revision was sent back in February but at that time the Loongson
maintainers were busy with linker relaxation support; now that the work
was done let's try upstreaming this series again, hopefully for
inclusion in binutils 2.41.

Changes from v5:

- Rebased
- Added DCO (Signed-off-by) tags and changelog entries (I hate them but
  it seems LoongArch patches usually carry some, so I went for
  consistency)
- Absorbed the https://sourceware.org/pipermail/binutils/2023-June/128073.html
  patch
- Minor tweaks to the commit messages

Changes from v4:

- Rebased (mainly test case changes)

Changes from v3:

- Fixed ld test cases (make check-gas and make check-ld both pass on
  x86_64 and loongarch64)
- Branch target address is now correctly printed in comment style, plus
  code simplification as suggested

Changes from v2:

- Fixed test cases
- Added the fixed "LoongArch: support disassembling certain pseudo-
  instructions" patch into this series
- Fixed ".insn" in the last patch to say ".word" instead (MIPS muscle
  memory strikes back hard)
- Fixed some commit messages
- Added mengqinggang to Cc list

WANG Xuerui (7):
  LoongArch: support disassembling certain pseudo-instructions
  opcodes/loongarch: remove unused code
  opcodes/loongarch: implement style support in the disassembler
  opcodes/loongarch: style disassembled address offsets as such
  opcodes/loongarch: do not print hex notation for signed immediates
  opcodes/loongarch: print unrecognized insn words with the .word
    directive
  LoongArch: Deprecate $v[01], $fv[01] and $x names per spec

 gas/config/tc-loongarch.c                     |  45 ++++++-
 gas/testsuite/gas/loongarch/64_pcrel.d        |   2 +-
 .../gas/loongarch/deprecated_reg_aliases.d    |  17 +++
 .../gas/loongarch/deprecated_reg_aliases.l    |   7 ++
 .../gas/loongarch/deprecated_reg_aliases.s    |   5 +
 gas/testsuite/gas/loongarch/imm_ins.d         |  84 ++++++-------
 gas/testsuite/gas/loongarch/imm_ins_32.d      |  54 ++++----
 gas/testsuite/gas/loongarch/imm_op.d          |  44 +++----
 gas/testsuite/gas/loongarch/jmp_op.d          |  44 +++----
 gas/testsuite/gas/loongarch/li.d              |   8 +-
 gas/testsuite/gas/loongarch/load_store_op.d   |  80 ++++++------
 gas/testsuite/gas/loongarch/macro_op.d        |   4 +-
 gas/testsuite/gas/loongarch/macro_op_32.d     |   4 +-
 .../gas/loongarch/macro_op_large_abs.d        |  12 +-
 .../gas/loongarch/macro_op_large_pc.d         |  12 +-
 gas/testsuite/gas/loongarch/nop.d             |   2 +-
 gas/testsuite/gas/loongarch/privilege_op.d    |   8 +-
 gas/testsuite/gas/loongarch/raw-insn.d        |  11 ++
 gas/testsuite/gas/loongarch/raw-insn.s        |   7 ++
 gas/testsuite/gas/loongarch/relax_align.d     |   6 +-
 gas/testsuite/gas/loongarch/reloc.d           |   2 +-
 gas/testsuite/gas/loongarch/uleb128.d         |  22 ++--
 include/opcode/loongarch.h                    |  11 +-
 ld/testsuite/ld-loongarch-elf/jmp_op.d        |  40 +++---
 ld/testsuite/ld-loongarch-elf/macro_op.d      |  24 ++--
 ld/testsuite/ld-loongarch-elf/macro_op_32.d   |   4 +-
 ld/testsuite/ld-loongarch-elf/relax-align.dd  |   4 +-
 opcodes/disassemble.c                         |   5 +
 opcodes/loongarch-dis.c                       | 118 ++++++++----------
 opcodes/loongarch-opc.c                       |  81 +++++++-----
 30 files changed, 424 insertions(+), 343 deletions(-)
 create mode 100644 gas/testsuite/gas/loongarch/deprecated_reg_aliases.d
 create mode 100644 gas/testsuite/gas/loongarch/deprecated_reg_aliases.l
 create mode 100644 gas/testsuite/gas/loongarch/deprecated_reg_aliases.s
 create mode 100644 gas/testsuite/gas/loongarch/raw-insn.d
 create mode 100644 gas/testsuite/gas/loongarch/raw-insn.s

-- 
2.40.0



More information about the Binutils mailing list