diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-11-11 01:28:11 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-11-11 01:28:11 +0000 |
commit | ac2307b9ff9de6607f3a19d25cabbcc56d5480fd (patch) | |
tree | 935805635bde6dc37b04cdafafc61d89bc54a7f3 | |
parent | a5d9d1f154b5eb8f11bcce69c951185acba76dbd (diff) | |
download | bcm5719-llvm-ac2307b9ff9de6607f3a19d25cabbcc56d5480fd.tar.gz bcm5719-llvm-ac2307b9ff9de6607f3a19d25cabbcc56d5480fd.zip |
[elf2][x86-64] Add support for DTPOFF64
llvm-svn: 252685
-rw-r--r-- | lld/ELF/Target.cpp | 2 | ||||
-rw-r--r-- | lld/test/elf2/tls-dynamic.s | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index f6fe7ea2f1e..5fae919c835 100644 --- a/lld/ELF/Target.cpp +++ b/lld/ELF/Target.cpp @@ -323,6 +323,7 @@ bool X86_64TargetInfo::isRelRelative(uint32_t Type) const { case R_X86_64_PC8: case R_X86_64_PLT32: case R_X86_64_DTPOFF32: + case R_X86_64_DTPOFF64: return true; } } @@ -337,6 +338,7 @@ void X86_64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type, write32le(Loc, SA - P); break; case R_X86_64_64: + case R_X86_64_DTPOFF64: write64le(Loc, SA); break; case R_X86_64_32: diff --git a/lld/test/elf2/tls-dynamic.s b/lld/test/elf2/tls-dynamic.s index 9074be5fdaa..4c93c9c2f13 100644 --- a/lld/test/elf2/tls-dynamic.s +++ b/lld/test/elf2/tls-dynamic.s @@ -10,6 +10,7 @@ callq __tls_get_addr@PLT leaq a@dtpoff(%rax), %rcx leaq b@dtpoff(%rax), %rcx + .long b@dtpoff, 0 .global a .hidden a @@ -54,3 +55,7 @@ b: // DIS-NEXT: 1013: {{.+}} callq // DIS-NEXT: 1018: {{.+}} leaq (%rax), %rcx // DIS-NEXT: 101f: {{.+}} leaq 4(%rax), %rcx +// DIS-NEXT: 1026: 04 00 +// DIS-NEXT: 1028: 00 00 +// DIS-NEXT: 102a: 00 00 +// DIS-NEXT: 102c: 00 00 |