llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc
Nemanja Ivanovic b0f0115308 [AIX][TLS] Generate 32-bit general-dynamic access code sequence
Adds support for the TLS general dynamic access model to
assembly files on AIX 32-bit.

To generate the correct code sequence when accessing a TLS variable
`v`, we first create two TOC entry nodes, one for the variable offset, one
for the region handle. These nodes are followed by a `PPCISD::TLSGD_AIX`
node (new node introduced by this patch).
The `PPCISD::TLSGD_AIX` node (`TLSGDAIX` pseudo instruction) is
expanded to 2 copies (to put the variable offset and region handle in
the right registers) and a call to `__tls_get_addr`.

This patch also changes the way TC entries are generated in asm files.
If the generated TC entry is for the region handle of a TLS variable,
we add the `@m` relocation and the `.` prefix to the entry name.
For example:

```
L..C0:
  .tc .v[TC],v[TL]@m -> region handle
L..C1:
  .tc v[TC],v[TL] -> variable offset
```

Reviewed By: nemanjai, sfertile

Differential Revision: https://reviews.llvm.org/D97948
2021-03-08 09:30:19 -06:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
PPCAsmBackend.cpp [MC][PowerPC] Support .reloc *, BFD_RELOC_{NONE,16,32,64}, * 2021-03-05 21:31:45 -08:00
PPCELFObjectWriter.cpp [PowerPC][PCRelative] Thread Local Storage Support for Local Dynamic 2020-09-23 13:48:06 -05:00
PPCELFStreamer.cpp [PowerPC] Add linker opt for PC Relative GOT indirect accesses 2020-07-22 09:08:23 -05:00
PPCELFStreamer.h [PowerPC] Add linker opt for PC Relative GOT indirect accesses 2020-07-22 09:08:23 -05:00
PPCFixupKinds.h [PowerPC] Split s34imm into two types 2020-07-28 05:55:56 -05:00
PPCInstPrinter.cpp [PowerPC][NFCI] PassSubtarget to ASMWriter 2021-01-12 16:25:35 +00:00
PPCInstPrinter.h [PowerPC][NFCI] PassSubtarget to ASMWriter 2021-01-12 16:25:35 +00:00
PPCMCAsmInfo.cpp [XCOFF][DebugInfo] support DWARF for XCOFF for assembly output. 2021-03-04 21:07:52 -05:00
PPCMCAsmInfo.h [PowerPC] Delete remnant isOSDarwin references 2021-01-06 21:18:35 -08:00
PPCMCCodeEmitter.cpp [PowerPC] Add outer product instructions for MMA 2020-09-30 18:06:49 -05:00
PPCMCCodeEmitter.h [PowerPC] Add outer product instructions for MMA 2020-09-30 18:06:49 -05:00
PPCMCExpr.cpp
PPCMCExpr.h
PPCMCTargetDesc.cpp [AIX][TLS] Generate 32-bit general-dynamic access code sequence 2021-03-08 09:30:19 -06:00
PPCMCTargetDesc.h [PowerPC] Add accumulator register class and instructions 2020-09-25 12:25:13 -05:00
PPCPredicates.cpp
PPCPredicates.h
PPCXCOFFObjectWriter.cpp [XCOFF][AIX] Support relocation generation for large code model 2020-08-26 17:12:28 +00:00