]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/rs6000/rs6000-protos.h
rs6000.c (rs6000_default_long_calls, [...]): New.
authorZack Weinberg <zack@gcc.gnu.org>
Sat, 11 May 2002 16:25:05 +0000 (16:25 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Sat, 11 May 2002 16:25:05 +0000 (16:25 +0000)
commita5c76ee6e2c613ac4c3e309e562d51bea137c73a
tree965a5479e4bfdccd120057916613030f604465fc
parent4c476cf33a7c259d3b2ac991bbd3a6bc176b93c9
rs6000.c (rs6000_default_long_calls, [...]): New.

* config/rs6000/rs6000.c (rs6000_default_long_calls,
rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
(TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
(rs6000_override_options): Handle -m(no-)longcall.
(init_cumulative_args, output_mi_thunk): Check for both
longcall and shortcall attributes on the function.
(rs6000_attribute_table): Add "shortcall".
(rs6000_handle_longcall_attribute): Update comment.
(altivec_expand_unop_builtin, altivec_expand_binop_builtin,
altivec_expand_ternop_builtin): Add default clauses to switches
to silence warnings.

* config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
(TARGET_OPTIONS): Add longcall and no-longcall.

* config/rs6000/rs6000.md (call_nonlocal_sysv,
call_value_nonlocal_sysv): Split by alternatives.  One pair
accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
the call cookie.  The other pair accepts only LR/CTR and has
no restriction.

* config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
tmake_file.
* config/rs6000/rs6000-c.c: New file.
* config/rs6000/t-rs6000-c-rule: New file.
* config/rs6000/rs6000-protos.c: Add multiple-include guard.
Prototype rs6000_pragma_longcall.

* doc/extend.texi: Document shortcall attribute.
* doc/invoke.texi: Document -mlongcall, -mno-longcall.

From-SVN: r53382
gcc/ChangeLog
gcc/config.gcc
gcc/config/rs6000/rs6000-c.c [new file with mode: 0644]
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/t-rs6000-c-rule [new file with mode: 0644]
gcc/doc/extend.texi
gcc/doc/invoke.texi