* config/i386/i386.c (struct ix86_address): Add seg. (no_seg_address_operand): New. (ix86_decompose_address): Restructure PLUS loop. Accept one UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS. Adjust ESP swap test to test for a regnum, not stack_pointer_rtx. (ix86_address_cost): Reduce cost if non-default segment. (legitimate_address_p): Remove UNSPEC_TP check. (get_thread_pointer): Add to_reg argument. Don't represent the thread pointer as a memory load. (legitimize_tls_address): Split out of ... (legitimize_address): ... here. (print_operand_address): Handle parts.seg. (ix86_expand_move): Use legitimize_tls_address. (ix86_rtx_costs): Handle UNSPEC_TP. * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New. (TARGET_TLS_DIRECT_SEG_REFS): New. (TARGET_SWITCHES): Add tls-direct-seg-refs. (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default. (PREDICATE_CODES): Add no_seg_address_operand. * config/i386/i386.md (lea_1): Use it. (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise. (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New. * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. * doc/invoke.texi: Add -mtls-direct-seg-refs. From-SVN: r67475
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
include | Loading commit data... | |
.cvsignore | Loading commit data... | |
bugreport.texi | Loading commit data... | |
c-tree.texi | Loading commit data... | |
collect2.texi | Loading commit data... | |
compat.texi | Loading commit data... | |
configfiles.texi | Loading commit data... | |
configterms.texi | Loading commit data... | |
contrib.texi | Loading commit data... | |
contribute.texi | Loading commit data... | |
cpp.texi | Loading commit data... | |
cppenv.texi | Loading commit data... | |
cppinternals.texi | Loading commit data... | |
cppopts.texi | Loading commit data... | |
extend.texi | Loading commit data... | |
fragments.texi | Loading commit data... | |
frontends.texi | Loading commit data... | |
gcc.texi | Loading commit data... | |
gccint.texi | Loading commit data... | |
gcov.texi | Loading commit data... | |
gnu.texi | Loading commit data... | |
gty.texi | Loading commit data... | |
headerdirs.texi | Loading commit data... | |
hostconfig.texi | Loading commit data... | |
install-old.texi | Loading commit data... | |
install.texi | Loading commit data... | |
install.texi2html | Loading commit data... | |
interface.texi | Loading commit data... | |
invoke.texi | Loading commit data... | |
languages.texi | Loading commit data... | |
libgcc.texi | Loading commit data... | |
makefile.texi | Loading commit data... | |
md.texi | Loading commit data... | |
objc.texi | Loading commit data... | |
passes.texi | Loading commit data... | |
portability.texi | Loading commit data... | |
rtl.texi | Loading commit data... | |
service.texi | Loading commit data... | |
sourcebuild.texi | Loading commit data... | |
standards.texi | Loading commit data... | |
tm.texi | Loading commit data... | |
trouble.texi | Loading commit data... |