forked from OSchip/llvm-project
b0f0115308
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 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
PPCAsmBackend.cpp | ||
PPCELFObjectWriter.cpp | ||
PPCELFStreamer.cpp | ||
PPCELFStreamer.h | ||
PPCFixupKinds.h | ||
PPCInstPrinter.cpp | ||
PPCInstPrinter.h | ||
PPCMCAsmInfo.cpp | ||
PPCMCAsmInfo.h | ||
PPCMCCodeEmitter.cpp | ||
PPCMCCodeEmitter.h | ||
PPCMCExpr.cpp | ||
PPCMCExpr.h | ||
PPCMCTargetDesc.cpp | ||
PPCMCTargetDesc.h | ||
PPCPredicates.cpp | ||
PPCPredicates.h | ||
PPCXCOFFObjectWriter.cpp |