This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gcc/gcc ChangeLog cse.c config/i386/i386.c con ...


CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-rhl-branch
Changes by:	jakub@gcc.gnu.org	2003-05-20 13:14:59

Modified files:
	gcc            : ChangeLog cse.c 
	gcc/config/i386: i386.c i386.h i386.md linux.h linux64.h 

Log message:
	* 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_3-rhl-branch&r1=1.16114.2.523.2.17&r2=1.16114.2.523.2.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cse.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.244.2.2&r2=1.244.2.2.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.495.2.20.4.2&r2=1.495.2.20.4.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.309.2.6&r2=1.309.2.6.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.404.2.14.4.1&r2=1.404.2.14.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/linux.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.42&r2=1.42.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/linux64.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-rhl-branch&r1=1.18.4.2&r2=1.18.4.2.4.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]