aboutsummaryrefslogtreecommitdiff
path: root/bfd/reloc.c
diff options
context:
space:
mode:
authorLulu Cai <cailulu@loongson.cn>2023-10-31 16:11:29 +0800
committerliuzhensong <liuzhensong@loongson.cn>2023-12-25 11:46:22 +0800
commit26265e7fdf19d461563388495b6799eb3719f80a (patch)
tree3aaf2793a448b90fd5d55097ee5dbf9efa12ad4c /bfd/reloc.c
parent051b3736af7b9dc47a37e31a9c82556e942d1ed4 (diff)
downloadbinutils-26265e7fdf19d461563388495b6799eb3719f80a.zip
binutils-26265e7fdf19d461563388495b6799eb3719f80a.tar.gz
binutils-26265e7fdf19d461563388495b6799eb3719f80a.tar.bz2
LoongArch: Add new relocs and macro for TLSDESC.
The normal DESC instruction sequence is: pcalau12i $a0,%desc_pc_hi20(var) #R_LARCH_TLS_DESC_PC_HI20 addi.d $a0,$a0,%desc_pc_lo12(var) #R_LARCH_TLS_DESC_PC_LO12 ld.d $ra,$a0,%desc_ld(var) #R_LARCH_TLS_DESC_LD jirl $ra,$ra,%desc_call(var) #R_LARCH_TLS_DESC_CALL add.d $a0,$a0,$tp
Diffstat (limited to 'bfd/reloc.c')
-rw-r--r--bfd/reloc.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 4d3ac4c..f7fe0c7 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -8112,6 +8112,10 @@ ENUMX
ENUMX
BFD_RELOC_LARCH_TLS_TPREL64
ENUMX
+ BFD_RELOC_LARCH_TLS_DESC32
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC64
+ENUMX
BFD_RELOC_LARCH_MARK_LA
ENUMX
BFD_RELOC_LARCH_MARK_PCREL
@@ -8295,6 +8299,31 @@ ENUMX
ENUMX
BFD_RELOC_LARCH_CALL36
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_PC_HI20
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_PC_LO12
+
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC64_PC_LO20
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC64_PC_HI12
+
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_HI20
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_LO12
+
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC64_LO20
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC64_HI12
+
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_LD
+ENUMX
+ BFD_RELOC_LARCH_TLS_DESC_CALL
+
ENUMDOC
LARCH relocations.