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