]> git.ipfire.org Git - thirdparty/gcc.git/commit
x86-64: Add RDI clobber to 64-bit dynamic TLS patterns
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 3 Jul 2025 02:54:39 +0000 (10:54 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 14 Jul 2025 06:48:18 +0000 (14:48 +0800)
commitfcc6ce1a4934a45bfd4e8e21e118d3f1046d3d85
tree3d5448e04af1b31c3a3b196c00f30f4e1a37c364
parent3f6e48cdb1969dc718d702d045cc4d349f53f239
x86-64: Add RDI clobber to 64-bit dynamic TLS patterns

*tls_global_dynamic_64_largepic, *tls_local_dynamic_64_<mode> and
*tls_local_dynamic_base_64_largepic use RDI as the __tls_get_addr
argument.  Add RDI clobber to these patterns to show it.

gcc/

PR target/120908
* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
gen_tls_local_dynamic_64.
* config/i386/i386.md (*tls_global_dynamic_64_largepic): Add
RDI clobber and use it to generate LEA.
(*tls_local_dynamic_64_<mode>): Likewise.
(*tls_local_dynamic_base_64_largepic): Likewise.
(@tls_local_dynamic_64_<mode>): Add a clobber.

gcc/testsuite/

PR target/120908
* gcc.target/i386/pr120908.c: New test.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit d8d5e2a8031e74f08f61ccdd727476f97940c5a6)
gcc/config/i386/i386.cc
gcc/config/i386/i386.md
gcc/testsuite/gcc.target/i386/pr120908.c [new file with mode: 0644]