gcc/gcc ChangeLog doc/extend.texi config/bfin/ ...

bernds@gcc.gnu.org bernds@gcc.gnu.org
Wed Jul 20 09:48:00 GMT 2005


CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	bernds@gcc.gnu.org	2005-07-20 09:48:04

Modified files:
	gcc            : ChangeLog 
	gcc/doc        : extend.texi 
	gcc/config/bfin: bfin-protos.h bfin.c bfin.h bfin.md 
	                 predicates.md 

Log message:
	* config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
	* config/bfin/predicates.md (symbol_ref_operand): New.
	(call_insn_operand): Delete.  All callers changed to use
	register_no_elim_operand.
	* config/bfin/bfin.c (init_cumulative_args): Initialize the new
	call_cookie field.
	(function_arg): Use it to generate the call's operand 2.
	(bfin_longcall_p): New function.
	(bfin_expand_call): Extra arg "cookie".  All callers and declaration
	changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
	determine if the address needs to be in a REG.
	(bfin_handle_longcall_attribute): New function.
	(bfin_attribute_table): Add "longcall" and "shortcall".
	* config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
	(CUMULATIVE_ARGS): New member call_cookie.
	(PREDICATE_CODES): Add symbol_ref_operand.
	* config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
	extra USE to the pattern.
	(call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
	New patterns, split off call_insn, sibcall_insn, call_value_insn and
	sibcall_value_insn; now the new patterns handle direct calls and the
	old ones indirect calls.
	* doc/extend.texi: Mention Blackfin in longcall/shortcall docs.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9486&r2=2.9487
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/extend.texi.diff?cvsroot=gcc&r1=1.259&r2=1.260
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/bfin/bfin-protos.h.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/bfin/bfin.c.diff?cvsroot=gcc&r1=1.15&r2=1.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/bfin/bfin.h.diff?cvsroot=gcc&r1=1.11&r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/bfin/bfin.md.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/bfin/predicates.md.diff?cvsroot=gcc&r1=1.4&r2=1.5



More information about the Gcc-cvs mailing list