D92346 added TLS_(base_)addrX32 to handle TLS in x32 mode, but missed the different TLS models. This diff fixes the logic for the local dynamic model where RAX was used when EAX should be, and extends the tests to cover all four TLS models.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Time | Test | |
---|---|---|
80 ms | x64 windows > LLVM.CodeGen/XCore::threads.ll |
Event Timeline
llvm/test/CodeGen/X86/pic.ll | ||
---|---|---|
322 | What're this and test11 testing for? It seems you only changed for LocalDynamic model in this patch. |
llvm/test/CodeGen/X86/pic.ll | ||
---|---|---|
322 | That is correct, I did not update anything for the InitialExec and LocalExec TLS models. I added these tests not because this diff fixes bugs in them, but because like LocalDynamic, these models were also not covered by existing tests. Despite the title (I wrote the title and description afterwards), the goal of this diff was not specifically to make sure that the LocalDynamic TLS model is working, but that all TLS models are working. For this, I first made sure that all TLS models are tested, and then fixed the code generation where needed, which turned out to only be that of the LocalDynamic model. |
llvm/test/CodeGen/X86/pic.ll | ||
---|---|---|
322 | Thanks Harald, I just saw you had mentioned it in the summary. Sorry for the noise. |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
---|---|---|
19145 | (style) Fix the case of the variables: Is64Bit Is64BitLP64 |
(style) Fix the case of the variables: Is64Bit Is64BitLP64