aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/WasmObjectFile.cpp
diff options
context:
space:
mode:
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>2021-03-04 08:07:22 -0600
committerLei Huang <lei@ca.ibm.com>2021-03-08 09:30:19 -0600
commitb0f0115308e4e8692b254c3b0e20f3743616b2d5 (patch)
tree22c4057ed7fee6bd20087fe2431ccd9e6d173e72 /llvm/lib/Object/WasmObjectFile.cpp
parent60d4c73b30a0e324c6ae314722eb036f70f4b03a (diff)
downloadllvm-b0f0115308e4e8692b254c3b0e20f3743616b2d5.zip
llvm-b0f0115308e4e8692b254c3b0e20f3743616b2d5.tar.gz
llvm-b0f0115308e4e8692b254c3b0e20f3743616b2d5.tar.bz2
[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
Diffstat (limited to 'llvm/lib/Object/WasmObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions