summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCTargetObjectFile.cpp
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2013-07-02 18:47:35 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2013-07-02 18:47:35 +0000
commitb843060ecfa29efb5f896350f6530fa81184e420 (patch)
tree227afc3bce75c96dac23b57f4929707f21b3ed1f /lib/Target/PowerPC/PPCTargetObjectFile.cpp
parent716a94f0c96d6bef575cd286bafb2cc507adc6b0 (diff)
downloadllvm-b843060ecfa29efb5f896350f6530fa81184e420.tar.gz
llvm-b843060ecfa29efb5f896350f6530fa81184e420.tar.bz2
llvm-b843060ecfa29efb5f896350f6530fa81184e420.tar.xz
[PowerPC] Support TLS variables in debug info
This adds an implementation of getDebugThreadLocalSymbol for (64-bit) PowerPC. This needs to return a generic MCExpr since on ppc64, we need to add a bias of 0x8000 to the value returned by the R_PPC64_DTPREL64 relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185461 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCTargetObjectFile.cpp')
-rw-r--r--lib/Target/PowerPC/PPCTargetObjectFile.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCTargetObjectFile.cpp b/lib/Target/PowerPC/PPCTargetObjectFile.cpp
index 90e4f15452..ec1e606eee 100644
--- a/lib/Target/PowerPC/PPCTargetObjectFile.cpp
+++ b/lib/Target/PowerPC/PPCTargetObjectFile.cpp
@@ -55,3 +55,13 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
return DefaultSection;
}
+
+const MCExpr *PPC64LinuxTargetObjectFile::
+getDebugThreadLocalSymbol(const MCSymbol *Sym) const {
+ const MCExpr *Expr =
+ MCSymbolRefExpr::Create(Sym, MCSymbolRefExpr::VK_PPC_DTPREL, getContext());
+ return MCBinaryExpr::CreateAdd(Expr,
+ MCConstantExpr::Create(0x8000, getContext()),
+ getContext());
+}
+