[PATCH v0 0/4] Emit fewer relocations for linker relaxation

mengqinggang mengqinggang@loongson.cn
Tue Jul 7 17:47:15 GMT 2026


mengqinggang (4):
  LoongArch: Fix the size of tls desc relocations
  LoongArch: Do not emit relocation if addsy and subsy are in the same
    frag
  LoongArch: Emit fewer relocations for label subtraction
  LoongArch: Emit alignment relocations after relaxed instructions

 bfd/elfxx-loongarch.c                         |   8 +-
 gas/config/tc-loongarch.c                     | 230 ++++++++++----
 gas/config/tc-loongarch.h                     |  11 +
 gas/testsuite/gas/all/gas.exp                 |   2 +-
 gas/testsuite/gas/all/relax.d                 |   4 -
 gas/testsuite/gas/elf/ehopt0.d                |   3 -
 gas/testsuite/gas/loongarch/insn_int32.d      | 279 ++++++++---------
 gas/testsuite/gas/loongarch/insn_int64.d      |  29 +-
 gas/testsuite/gas/loongarch/jmp_op.d          |  94 +++---
 gas/testsuite/gas/loongarch/jmp_op.s          |   2 +-
 .../gas/loongarch/la_branch_relax_1.d         | 118 ++++---
 .../gas/loongarch/la_branch_relax_1.s         |   2 +
 .../gas/loongarch/la_branch_relax_2.d         |  64 ++--
 .../gas/loongarch/la_branch_relax_2.s         |  23 +-
 .../gas/loongarch/negative_right_shift.d      |  67 ++--
 .../gas/loongarch/negative_right_shift.s      |   9 +-
 gas/testsuite/gas/loongarch/no_thin_add_sub.d |  30 +-
 gas/testsuite/gas/loongarch/no_thin_add_sub.s |   1 +
 gas/testsuite/gas/loongarch/relax-align.d     |  46 +++
 .../{relax_align.l => relax-align.l}          |   0
 .../{relax_align.s => relax-align.s}          |   6 +-
 gas/testsuite/gas/loongarch/relax-align1.d    |   8 +
 gas/testsuite/gas/loongarch/relax-align1.s    |  16 +
 gas/testsuite/gas/loongarch/relax-align2.d    |  27 +-
 gas/testsuite/gas/loongarch/relax-align2.s    |   4 +
 gas/testsuite/gas/loongarch/relax-uleb128.d   |   9 +
 gas/testsuite/gas/loongarch/relax-uleb128.s   |  18 ++
 gas/testsuite/gas/loongarch/relax_align.d     |  52 ----
 .../gas/loongarch/relax_debug_line.d          |   9 +-
 gas/testsuite/gas/loongarch/relocs_32.d       | 175 +++++------
 gas/testsuite/gas/loongarch/relocs_32.s       |  11 +-
 gas/testsuite/gas/loongarch/relocs_64.d       | 291 +++++++++---------
 gas/testsuite/gas/loongarch/relocs_64.s       |   3 +
 .../gas/loongarch/thin_add_sub_relax.d        |  20 +-
 .../gas/loongarch/thin_add_sub_relax.s        |   2 +
 gas/testsuite/gas/loongarch/uleb128.d         |  36 ---
 gas/testsuite/gas/loongarch/uleb128.s         |  20 --
 ld/testsuite/ld-elf/compressed1d.d            |   3 -
 ld/testsuite/ld-loongarch-elf/jmp_op.d        |  50 ---
 ld/testsuite/ld-loongarch-elf/jmp_op.s        |  23 --
 .../ld-loongarch-elf/ld-loongarch-elf.exp     |   2 -
 ld/testsuite/ld-undefined/undefined.exp       |   2 -
 42 files changed, 899 insertions(+), 910 deletions(-)
 create mode 100644 gas/testsuite/gas/loongarch/relax-align.d
 rename gas/testsuite/gas/loongarch/{relax_align.l => relax-align.l} (100%)
 rename gas/testsuite/gas/loongarch/{relax_align.s => relax-align.s} (79%)
 create mode 100644 gas/testsuite/gas/loongarch/relax-align1.d
 create mode 100644 gas/testsuite/gas/loongarch/relax-align1.s
 create mode 100644 gas/testsuite/gas/loongarch/relax-uleb128.d
 create mode 100644 gas/testsuite/gas/loongarch/relax-uleb128.s
 delete mode 100644 gas/testsuite/gas/loongarch/relax_align.d
 delete mode 100644 gas/testsuite/gas/loongarch/uleb128.d
 delete mode 100644 gas/testsuite/gas/loongarch/uleb128.s
 delete mode 100644 ld/testsuite/ld-loongarch-elf/jmp_op.d
 delete mode 100644 ld/testsuite/ld-loongarch-elf/jmp_op.s

-- 
2.34.1



More information about the Binutils mailing list