* 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. From-SVN: r102191
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
include | Loading commit data... | |
bugreport.texi | Loading commit data... | |
c-tree.texi | Loading commit data... | |
cfg.texi | Loading commit data... | |
collect2.texi | Loading commit data... | |
compat.texi | Loading commit data... | |
configfiles.texi | Loading commit data... | |
configterms.texi | Loading commit data... | |
contrib.texi | Loading commit data... | |
contribute.texi | Loading commit data... | |
cpp.texi | Loading commit data... | |
cppenv.texi | Loading commit data... | |
cppinternals.texi | Loading commit data... | |
cppopts.texi | Loading commit data... | |
extend.texi | Loading commit data... | |
fragments.texi | Loading commit data... | |
frontends.texi | Loading commit data... | |
gcc.texi | Loading commit data... | |
gccint.texi | Loading commit data... | |
gcov.texi | Loading commit data... | |
gnu.texi | Loading commit data... | |
gty.texi | Loading commit data... | |
headerdirs.texi | Loading commit data... | |
hostconfig.texi | Loading commit data... | |
implement-c.texi | Loading commit data... | |
install-old.texi | Loading commit data... | |
install.texi | Loading commit data... | |
install.texi2html | Loading commit data... | |
interface.texi | Loading commit data... | |
invoke.texi | Loading commit data... | |
languages.texi | Loading commit data... | |
libgcc.texi | Loading commit data... | |
makefile.texi | Loading commit data... | |
md.texi | Loading commit data... | |
objc.texi | Loading commit data... | |
options.texi | Loading commit data... | |
passes.texi | Loading commit data... | |
portability.texi | Loading commit data... | |
rtl.texi | Loading commit data... | |
service.texi | Loading commit data... | |
sourcebuild.texi | Loading commit data... | |
standards.texi | Loading commit data... | |
tm.texi | Loading commit data... | |
tree-ssa.texi | Loading commit data... | |
trouble.texi | Loading commit data... |