Support standard DWARF TLS opcode; Darwin and PS4 use it.

Differential Revision: http://reviews.llvm.org/D8018


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231286 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Paul Robinson
2015-03-04 20:55:11 +00:00
parent b69d556c37
commit 4ceab42509
4 changed files with 36 additions and 8 deletions

View File

@ -193,6 +193,7 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
UsedNonDefaultText(false),
SkeletonHolder(A, "skel_string", DIEValueAllocator),
IsDarwin(Triple(A->getTargetTriple()).isOSDarwin()),
IsPS4(Triple(A->getTargetTriple()).isPS4()),
AccelNames(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
dwarf::DW_FORM_data4)),
AccelObjC(DwarfAccelTable::Atom(dwarf::DW_ATOM_die_offset,
@ -231,6 +232,10 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
DwarfVersion = DwarfVersionNumber ? DwarfVersionNumber
: MMI->getModule()->getDwarfVersion();
// Darwin and PS4 use the standard TLS opcode (defined in DWARF 3).
// Everybody else uses GNU's.
UseGNUTLSOpcode = !(IsDarwin || IsPS4) || DwarfVersion < 3;
Asm->OutStreamer.getContext().setDwarfVersion(DwarfVersion);
{