diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2025-08-29 16:48:44 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2025-08-30 06:10:27 -0700 |
commit | e91990c1bcafdbb026c28297ac2b84c597a22b22 (patch) | |
tree | 90f2cc8a784f5fdad3bd287ad6ffec73ca13e94b /libjava/classpath/gnu/java | |
parent | bfa70ddb650ec91c2511d351b2b3c3f78dfad6d4 (diff) | |
download | gcc-e91990c1bcafdbb026c28297ac2b84c597a22b22.zip gcc-e91990c1bcafdbb026c28297ac2b84c597a22b22.tar.gz gcc-e91990c1bcafdbb026c28297ac2b84c597a22b22.tar.bz2 |
x86-64: Use UNSPEC_DTPOFF to check source operand in TLS64_COMBINE
Since the first operand of PLUS in the source of TLS64_COMBINE pattern:
(set (reg/f:DI 128)
(plus:DI (unspec:DI [
(symbol_ref:DI ("_TLS_MODULE_BASE_") [flags 0x10])
(reg:DI 126)
(reg/f:DI 7 sp)
] UNSPEC_TLSDESC)
(const:DI (unspec:DI [
(symbol_ref:DI ("bfd_error") [flags 0x1a] <var_decl 0x7fffe99d6e40 bfd_error>)
] UNSPEC_DTPOFF))))
is unused, use the second operand of PLUS:
(const:DI (unspec:DI [
(symbol_ref:DI ("bfd_error") [flags 0x1a] <var_decl 0x7fffe99d6e40 bfd_error>)
] UNSPEC_DTPOFF))
to check if 2 TLS_COMBINE patterns have the same source.
gcc/
PR target/121725
* config/i386/i386-features.cc
(pass_x86_cse::candidate_gnu2_tls_p): Use the UNSPEC_DTPOFF
operand to check source operand in TLS64_COMBINE pattern.
gcc/testsuite/
PR target/121725
* gcc.target/i386/pr121725-1a.c: New test.
* gcc.target/i386/pr121725-1b.c: Likewise.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'libjava/classpath/gnu/java')
0 files changed, 0 insertions, 0 deletions