diff options
author | Lulu Cai <cailulu@loongson.cn> | 2023-10-31 16:11:29 +0800 |
---|---|---|
committer | liuzhensong <liuzhensong@loongson.cn> | 2023-12-25 11:46:22 +0800 |
commit | 26265e7fdf19d461563388495b6799eb3719f80a (patch) | |
tree | 3aaf2793a448b90fd5d55097ee5dbf9efa12ad4c /include | |
parent | 051b3736af7b9dc47a37e31a9c82556e942d1ed4 (diff) | |
download | gdb-26265e7fdf19d461563388495b6799eb3719f80a.zip gdb-26265e7fdf19d461563388495b6799eb3719f80a.tar.gz gdb-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 'include')
-rw-r--r-- | include/elf/loongarch.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/elf/loongarch.h b/include/elf/loongarch.h index 34719ee..41e9fe4 100644 --- a/include/elf/loongarch.h +++ b/include/elf/loongarch.h @@ -38,7 +38,8 @@ RELOC_NUMBER (R_LARCH_TLS_DTPREL64, 9) RELOC_NUMBER (R_LARCH_TLS_TPREL32, 10) RELOC_NUMBER (R_LARCH_TLS_TPREL64, 11) RELOC_NUMBER (R_LARCH_IRELATIVE, 12) - +RELOC_NUMBER (R_LARCH_TLS_DESC32, 13) +RELOC_NUMBER (R_LARCH_TLS_DESC64, 14) /* Reserved for future relocs that the dynamic linker must understand. */ /* Used by the static linker for relocating .text. */ @@ -253,6 +254,25 @@ RELOC_NUMBER (R_LARCH_64_PCREL, 109) RELOC_NUMBER (R_LARCH_CALL36, 110) +/* TLS_DESC PCREL. */ +RELOC_NUMBER (R_LARCH_TLS_DESC_PC_HI20, 111) +RELOC_NUMBER (R_LARCH_TLS_DESC_PC_LO12, 112) + +/* TLS_DESC LARGE PCREL. */ +RELOC_NUMBER (R_LARCH_TLS_DESC64_PC_LO20, 113) +RELOC_NUMBER (R_LARCH_TLS_DESC64_PC_HI12, 114) + +/* TLS_DESC ABS. */ +RELOC_NUMBER (R_LARCH_TLS_DESC_HI20, 115) +RELOC_NUMBER (R_LARCH_TLS_DESC_LO12, 116) + +/* TLSDESC LARGE ABS. */ +RELOC_NUMBER (R_LARCH_TLS_DESC64_LO20, 117) +RELOC_NUMBER (R_LARCH_TLS_DESC64_HI12, 118) + +RELOC_NUMBER (R_LARCH_TLS_DESC_LD, 119) +RELOC_NUMBER (R_LARCH_TLS_DESC_CALL, 120) + END_RELOC_NUMBERS (R_LARCH_count) /* Processor specific flags for the ELF header e_flags field. */ |