LoongArch/GAS: Add support for branch relaxation
authormengqinggang <mengqinggang@loongson.cn>
Sun, 24 Sep 2023 06:53:28 +0000 (14:53 +0800)
committerliuzhensong <liuzhensong@loongson.cn>
Tue, 10 Oct 2023 08:34:33 +0000 (16:34 +0800)
commit1fb3cdd87ec61715a5684925fb6d6a6cf53bb97c
tree29ff87c34597a975906f77e6bfaeedf8e433c37e
parent9847ba8f085a7da0d85e90718ca987ab76637cbe
LoongArch/GAS: Add support for branch relaxation

For the instructions of R_LARCH_B16/B21, if the immediate overflow,
add a B instruction and R_LARCH_B26 relocation.

For example:

.L1
  ...
  blt $t0, $t1, .L1
    R_LARCH_B16

change to:

.L1
  ...
  bge $t0, $t1, .L2
  b .L1
    R_LARCH_B26
.L2
gas/config/tc-loongarch.c
gas/testsuite/gas/loongarch/la_branch_relax_1.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/la_branch_relax_1.s [new file with mode: 0644]
gas/testsuite/gas/loongarch/la_branch_relax_2.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/la_branch_relax_2.s [new file with mode: 0644]
include/opcode/loongarch.h