gcc/gcc ChangeLog cse.c config/i386/i386.c con ...
jakub@gcc.gnu.org
jakub@gcc.gnu.org
Tue Feb 25 02:23:00 GMT 2003
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcc-3_2-rhl8-branch
Changes by: jakub@gcc.gnu.org 2003-02-25 02:23:30
Modified files:
gcc : ChangeLog cse.c
gcc/config/i386: i386.c i386.h i386.md linux.h linux64.h
Log message:
2003-02-24 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (struct ix86_address): Add seg.
(no_seg_address_operand): New function.
(ix86_decompose_address): Support segment overrides.
(ix86_address_cost): Take segment overrides into account.
(legitimate_address_p): Remove UNSPEC_TP special casing.
(get_thread_pointer): Add to_reg argument.
(legitimize_address): Move TLS emit code...
(legitimize_tls_address): ...here. New function.
(print_operand_address): Handle segment overrides.
(ix86_expand_move): Use legitimize_tls_address.
* config/i386/i386.h (MASK_SVR3_SHLIB, TARGET_SVR3_SHLIB): Remove.
(MASK_TLS_DIRECT_SEG_REFS, TARGET_TLS_DIRECT_SEG_REFS): Define.
(TARGET_SWITCHES): Remove -msvr3-shlib, add
TARGET_TLS_DIRECT_SEG_REFS_DEFAULT to default.
(TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Define to 0 if not defined.
(RTX_COSTS): Handle segment overrides.
(PREDICATE_CODES): Add no_seg_address_operand.
* config/i386/i386.md (UNSPEC_TP_MEM): Define.
(lea_1, lea_1_rex64, lea_1_zext, lea_2_rex64): Use
no_seg_address_operand.
(load_tp_si, load_tp_di, add_tp_si, add_tp_di): New insns.
* config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Define.
* config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Define.
* cse.c (find_best_addr): Consider binary operators even if second
argument is not CONST_INT.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.13152.2.657.2.27.2.76&r2=1.13152.2.657.2.27.2.77
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cse.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.218.2.3&r2=1.218.2.3.4.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.368.2.19.2.2.2.21&r2=1.368.2.19.2.2.2.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.h.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.243.2.8.4.17&r2=1.243.2.8.4.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.339.2.13.2.1.2.11&r2=1.339.2.13.2.1.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/linux.h.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.34.2.2.8.2&r2=1.34.2.2.8.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/linux64.h.diff?cvsroot=gcc&only_with_tag=gcc-3_2-rhl8-branch&r1=1.3.10.6.4.4&r2=1.3.10.6.4.5
More information about the Gcc-cvs
mailing list