[PATCH] D92346: [X86] Add TLS_(base_)addrX32 for X32 mode

Harald van Dijk via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 30 13:25:17 PST 2020


hvdijk created this revision.
hvdijk added reviewers: craig.topper, RKSimon.
Herald added subscribers: llvm-commits, pengfei, hiraditya.
Herald added a project: LLVM.
hvdijk requested review of this revision.

LLVM has TLS_(base_)addr32 for 32-bit TLS addresses in 32-bit mode, and TLS_(base_)addr64 for 64-bit TLS addresses in 64-bit mode. x32 mode wants 32-bit TLS addresses in 64-bit mode, which were not yet handled. This adds TLS_(base_)addrX32 as copies of TLS_(base_)addr64, except that they use tls32(base)addr rather than tls64(base)addr, and then restricts TLS_(base_)addr64 to 64-bit LP64 mode, TLS_(base_)addrX32 to 64-bit ILP32 mode.

This diff by itself results in invalid code due to wrongly using the EBX register; the included test will fail. D16474 <https://reviews.llvm.org/D16474> needs to be applied first, then this on top.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92346

Files:
  llvm/lib/Target/X86/X86ISelLowering.cpp
  llvm/lib/Target/X86/X86InstrCompiler.td
  llvm/lib/Target/X86/X86MCInstLower.cpp
  llvm/test/CodeGen/X86/pic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92346.308469.patch
Type: text/x-patch
Size: 6117 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201130/a149eb08/attachment.bin>


More information about the llvm-commits mailing list