aboutsummaryrefslogtreecommitdiff
path: root/bfd/reloc.c
diff options
context:
space:
mode:
authorLulu Cai <cailulu@loongson.cn>2023-11-26 14:25:26 +0800
committerliuzhensong <liuzhensong@loongson.cn>2023-12-25 11:46:22 +0800
commit3898e04b8e4be8744f876ba475b5b2a07ca61ee6 (patch)
treea9a27b9285a79b41d748a71a99b9ec90c3639f29 /bfd/reloc.c
parent4f248d61eb9d319b552e3e0b2db862928c2c1971 (diff)
downloadgdb-3898e04b8e4be8744f876ba475b5b2a07ca61ee6.zip
gdb-3898e04b8e4be8744f876ba475b5b2a07ca61ee6.tar.gz
gdb-3898e04b8e4be8744f876ba475b5b2a07ca61ee6.tar.bz2
LoongArch: Add tls transition support.
Transitions between DESC->IE/LE and IE->LE are supported now. 1. For DESC -> LE: pcalau12i $a0,%desc_pc_hi20(var) => lu12i.w $a0,%le_hi20(var) addi.d $a0,$a0,%desc_pc_lo12(var) => ori $a0,$a0,%le_lo12(var) ld.d $a1,$a0,%desc_ld(var) => NOP jirl $ra,$a1,%desc_call(var) => NOP add.d $a0,$a0,$tp 2. For DESC -> IE: pcalau12i $a0,%desc_pc_hi20(var) => pcalau12i $a0,%ie_pc_hi20(var) addi.d $a0,$a0,%desc_pc_lo12(var) => ld.d $a0,$a0,%ie_pc_lo12(var) ld.d $a1,$a0,%desc_ld(var) => NOP jirl $ra,$a1,%desc_call(var) => NOP add.d $a0,$a0,$tp 3. For IE -> LE: pcalau12i $a0,%ie_pc_hi20(var) => lu12i.w $a0,%le_hi20(var) ld.d $a0,$a0,%ie_pc_lo12(var) => ori $a0,$a0,%le_lo12(var) add.d $a0,$a0,$tp 4. When a tls variable is accessed using both DESC and IE, DESC transitions to IE and uses the same GOT entry as IE.
Diffstat (limited to 'bfd/reloc.c')
0 files changed, 0 insertions, 0 deletions