From d17b290265a67e32285c2b6ee838f4a1ad8f1e11 Mon Sep 17 00:00:00 2001 From: mengqinggang Date: Mon, 22 Sep 2025 11:43:41 +0800 Subject: LoongArch: Add linker relaxation for got_pcadd_hi20 and got_pcadd_lo12 .L1: pcaddu12i $t0, %got_pcadd_hi20(a) -> pcaddu12i $t0, %pcadd_hi20(a) ld.w/d $t0, $t0, %got_pcadd_lo12(.L1) -> addi.w/d $t0, $t0, %pcadd_lo12(.L1) --- include/opcode/loongarch.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/opcode') diff --git a/include/opcode/loongarch.h b/include/opcode/loongarch.h index b76e295b6d4..fb6f8be68de 100644 --- a/include/opcode/loongarch.h +++ b/include/opcode/loongarch.h @@ -36,6 +36,7 @@ extern "C" #define LARCH_MK_ADDI_D 0xffc00000 #define LARCH_OP_ADDI_D 0x02c00000 + #define LARCH_MK_ADDI_W LARCH_MK_ADDI_D #define LARCH_OP_ADDI_W 0x02800000 #define LARCH_MK_PCADDI 0xfe000000 #define LARCH_OP_PCADDI 0x18000000 @@ -50,6 +51,7 @@ extern "C" #define LARCH_OP_LU12I_W 0x14000000 #define LARCH_MK_LD_D 0xffc00000 #define LARCH_OP_LD_D 0x28c00000 + #define LARCH_MK_LD_W LARCH_MK_LD_D #define LARCH_OP_LD_W 0x28800000 #define LARCH_MK_JIRL 0xfc000000 #define LARCH_OP_JIRL 0x4c000000 @@ -85,6 +87,7 @@ extern "C" #define LARCH_INSN_ORI(insn) LARCH_INSN_OPS((insn), ORI) #define LARCH_INSN_LU12I_W(insn) LARCH_INSN_OPS((insn), LU12I_W) #define LARCH_INSN_LD_D(insn) LARCH_INSN_OPS((insn), LD_D) + #define LARCH_INSN_LD_W(insn) LARCH_INSN_OPS((insn), LD_W) #define LARCH_INSN_JIRL(insn) LARCH_INSN_OPS((insn), JIRL) #define LARCH_INSN_BCEQZ(insn) LARCH_INSN_OPS((insn), BCEQZ) #define LARCH_INSN_BCNEZ(insn) LARCH_INSN_OPS((insn), BCNEZ) -- cgit v1.2.3