gcc/gcc ChangeLog config/ia64/ia64-protos.h co ...

rth@gcc.gnu.org rth@gcc.gnu.org
Wed May 11 21:34:00 GMT 2005


CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	rth@gcc.gnu.org	2005-05-11 21:34:19

Modified files:
	gcc            : ChangeLog 
	gcc/config/ia64: ia64-protos.h ia64.c ia64.h ia64.md 
	                 predicates.md 

Log message:
	PR target/21412
	* config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
	(ia64_cannot_force_const_mem): New.
	(tls_symbolic_operand_type): New.
	(ia64_legitimate_constant_p): New.
	(ia64_expand_load_address): Return true on success.  Improve
	checks for when we should not split.
	(ia64_expand_tls_address): New addend operand.  Distribute it
	as appropriate to the tls_kind.  Delay referencing gp.
	(ia64_expand_move): Split symbolic addend as necessary.  Handle
	tls symbols with addends.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
	p0, f0, f1, and r13.
	(LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
	* config/ia64/ia64.md (UNSPEC_DTPMOD): New.
	(symbolic_operand splitter): Pass everything through
	ia64_expand_load_address and FAIL or DONE as appropriate.
	(load_fptr): Only accept after reload.
	(load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
	load_symptr_low, load_ltoff_dtpmod,
	(load_dtpmod): New.
	(load_dtprel): Only accept tls symbols.
	(load_dtprel64, load_dtprel22): Likewise.
	(load_tprel, load_tprel64, load_tprel22): Likewise.
	(load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
	(add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
	(add_dtprel14, add_dtprel22): Likewise.
	(add_tprel, add_tprel14, add_tprel22): Likewise.
	* config/ia64/predicates.md (small_addr_symbolic_operand): New.
	(any_offset_symbol_operand, aligned_offset_symbol_operand): New.
	(got_symbolic_operand): Check CONST offsets.
	(tls_symbolic_operand, ld_tls_symbolic_operand): New.
	(ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
	(move_operand): Don't handle tls here.  Check CONST offsets.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8740&r2=2.8741
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64-protos.h.diff?cvsroot=gcc&r1=1.71&r2=1.72
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64.c.diff?cvsroot=gcc&r1=1.362&r2=1.363
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64.h.diff?cvsroot=gcc&r1=1.197&r2=1.198
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64.md.diff?cvsroot=gcc&r1=1.151&r2=1.152
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/predicates.md.diff?cvsroot=gcc&r1=1.6&r2=1.7



More information about the Gcc-cvs mailing list