[PATCH] D18039: [ELF] - Fixed handling R_X86_64_DTPOFF64 relocation relaxation
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 10 11:02:20 PST 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL263150: [ELF] - Fixed handling R_X86_64_DTPOFF64 relocation relaxation (authored by grimar).
Changed prior to commit:
http://reviews.llvm.org/D18039?vs=50304&id=50313#toc
Repository:
rL LLVM
http://reviews.llvm.org/D18039
Files:
lld/trunk/ELF/Target.cpp
lld/trunk/test/ELF/tls-opt.s
Index: lld/trunk/ELF/Target.cpp
===================================================================
--- lld/trunk/ELF/Target.cpp
+++ lld/trunk/ELF/Target.cpp
@@ -895,6 +895,9 @@
case R_X86_64_DTPOFF32:
relocateOne(Loc, BufEnd, R_X86_64_TPOFF32, P, SA);
return 0;
+ case R_X86_64_DTPOFF64:
+ write64le(Loc, SA - Out<ELF64LE>::TlsPhdr->p_memsz);
+ return 0;
case R_X86_64_GOTTPOFF:
relocateTlsIeToLe(Loc, BufEnd, P, SA);
return 0;
Index: lld/trunk/test/ELF/tls-opt.s
===================================================================
--- lld/trunk/test/ELF/tls-opt.s
+++ lld/trunk/test/ELF/tls-opt.s
@@ -35,6 +35,11 @@
// DISASM-NEXT: 1109a: 48 8d 80 f8 ff ff ff leaq -8(%rax), %rax
// DISASM-NEXT: 110a1: 64 48 8b 04 25 00 00 00 00 movq %fs:0, %rax
// DISASM-NEXT: 110aa: 48 8d 80 fc ff ff ff leaq -4(%rax), %rax
+// LD to LE (2):
+// DISASM: _DTPOFF64_1:
+// DISASM-NEXT: 110b1: f8
+// DISASM: _DTPOFF64_2:
+// DISASM-NEXT: 110ba: fc
.type tls0, at object
.section .tbss,"awT", at nobits
@@ -91,3 +96,12 @@
.word 0x6666
rex64
call __tls_get_addr at plt
+
+ //LD to LE (2):
+_DTPOFF64_1:
+ .quad tls0 at DTPOFF
+ nop
+
+_DTPOFF64_2:
+ .quad tls1 at DTPOFF
+ nop
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18039.50313.patch
Type: text/x-patch
Size: 1243 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160310/4f136eb0/attachment.bin>
More information about the llvm-commits
mailing list