llvm.org GIT mirror llvm / d31f89e
[PS4] Correct relocation for DWARF TLS references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230979 91177308-0d34-0410-b5e6-96231b3b80d8 Paul Robinson 5 years ago
4 changed file(s) with 16 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
3636 return make_unique();
3737 }
3838
39 if (TT.isPS4CPU())
40 return make_unique();
3941 if (TT.isOSLinux())
4042 return make_unique();
4143 if (TT.isOSBinFormatELF())
6969
7070 const MCExpr *
7171 X86LinuxTargetObjectFile::getDebugThreadLocalSymbol(
72 const MCSymbol *Sym) const {
73 return MCSymbolRefExpr::Create(Sym, MCSymbolRefExpr::VK_DTPOFF, getContext());
74 }
75
76 const MCExpr *PS4TargetObjectFile::getDebugThreadLocalSymbol(
7277 const MCSymbol *Sym) const {
7378 return MCSymbolRefExpr::Create(Sym, MCSymbolRefExpr::VK_DTPOFF, getContext());
7479 }
4646 const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
4747 };
4848
49 /// \brief This TLOF implementation is used for PS4.
50 class PS4TargetObjectFile : public TargetLoweringObjectFileELF {
51 /// \brief Describe a TLS variable address within debug info.
52 const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
53 };
54
4955 /// \brief This implementation is used for Windows targets on x86 and x86-64.
5056 class X86WindowsTargetObjectFile : public TargetLoweringObjectFileCOFF {
5157 const MCExpr *
55
66 ; RUN: llc %s -o - -filetype=asm -O0 -mtriple=x86_64-unknown-linux-gnu -split-dwarf=Enable \
77 ; RUN: | FileCheck --check-prefix=CHECK --check-prefix=FISSION %s
8
9 ; RUN: llc %s -o - -filetype=asm -O0 -mtriple=x86_64-scei-ps4 \
10 ; RUN: | FileCheck --check-prefix=CHECK --check-prefix=SINGLE --check-prefix=SINGLE-64 %s
811
912 ; FIXME: add relocation and DWARF expression support to llvm-dwarfdump & use
1013 ; that here instead of raw assembly printing