]> 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>
Thu, 17 Jul 2025 15:42:36 +0000 (08:42 -0700)
commit59db34888d289dae8fae2bcbf5e435be53da0edc
tree822c54d2e195177fd746813625fa25130e23d4ec
parent4d929cd27e66c7d9c519cbcd77f12e1d58e85689
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]