diff options
author | Roman Divacky <rdivacky@freebsd.org> | 2013-12-22 10:45:37 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@freebsd.org> | 2013-12-22 10:45:37 +0000 |
commit | 1a7ebaaa3d90eecfd5209a832f4748eff6686fe2 (patch) | |
tree | b72cee3934b7751247ffe729d8094987e9839e1c /lib/Target/PowerPC | |
parent | d1469e05604df879119d6668d4b5161e460098ca (diff) | |
download | llvm-1a7ebaaa3d90eecfd5209a832f4748eff6686fe2.tar.gz llvm-1a7ebaaa3d90eecfd5209a832f4748eff6686fe2.tar.bz2 llvm-1a7ebaaa3d90eecfd5209a832f4748eff6686fe2.tar.xz |
Use r2 when encoding tls on ppc32. Fixes PR18305.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197878 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC')
-rw-r--r-- | lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp b/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp index 346a9beada..66ebfd2381 100644 --- a/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp +++ b/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp @@ -217,7 +217,8 @@ unsigned PPCMCCodeEmitter::getTLSRegEncoding(const MCInst &MI, unsigned OpNo, // Return the thread-pointer register's encoding. Fixups.push_back(MCFixup::Create(0, MO.getExpr(), (MCFixupKind)PPC::fixup_ppc_nofixup)); - return CTX.getRegisterInfo()->getEncodingValue(PPC::X13); + bool isPPC64 = TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le; + return CTX.getRegisterInfo()->getEncodingValue(isPPC64 ? PPC::X13 : PPC::R2); } unsigned PPCMCCodeEmitter::getTLSCallEncoding(const MCInst &MI, unsigned OpNo, |