diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-08 18:45:21 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-08 18:45:21 +0000 |
commit | 13f08ee73a09f0fed0c11095b6d7dd1ba887fc15 (patch) | |
tree | e2b5ae247504eef2927039baf6729090ed6d7ff8 /gcc/targhooks.h | |
parent | 5f4df34e57a3bca40bd36e7cbe1e0cf6306b511c (diff) | |
download | gcc-13f08ee73a09f0fed0c11095b6d7dd1ba887fc15.tar.gz |
* function.c (reference_callee_copied): New.
(assign_parm_setup_reg): Use it.
* calls.c (initialize_argument_information): Likewise.
(emit_library_call_value_1): Likewise.
* function.h (reference_callee_copied): Declare.
* target.h (struct gcc_target): Add callee_copies.
* target-def.h (TARGET_CALLEE_COPIES): New.
(TARGET_PASS_BY_REFERENCE): Update default.
* expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* targhooks.c (hook_callee_copies_named): New.
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
hook_pass_by_reference_false.
(hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
* targhooks.h: Update decls.
* config/arc/arc.c (TARGET_CALLEE_COPIES): New.
* config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
* config/frv/frv.c (frv_function_arg_callee_copies): Remove.
* config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
* config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
* config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/mips/mips.c (TARGET_CALLEE_COPIES): New.
(mips_callee_copies): New.
* config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
* config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
* config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/pa/pa.c (TARGET_CALLEE_COPIES): New.
* config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/sh/sh.c (sh_callee_copies): New.
(TARGET_CALLEE_COPIES): New.
* config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* config/v850/v850.c (TARGET_CALLEE_COPIES): New.
* config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
* doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
for FUNCTION_ARG_CALLEE_COPIES.
* doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87195 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/targhooks.h')
-rw-r--r-- | gcc/targhooks.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/gcc/targhooks.h b/gcc/targhooks.h index 8745f7eb5b7..bbdfacdc0a5 100644 --- a/gcc/targhooks.h +++ b/gcc/targhooks.h @@ -28,22 +28,31 @@ extern bool default_return_in_memory (tree, tree); extern rtx default_expand_builtin_saveregs (void); extern void default_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int); extern rtx default_builtin_setjmp_frame_value (void); -extern bool hook_bool_CUMULATIVE_ARGS_false (CUMULATIVE_ARGS *); extern bool default_pretend_outgoing_varargs_named (CUMULATIVE_ARGS *); extern enum machine_mode default_eh_return_filter_mode (void); extern unsigned HOST_WIDE_INT default_shift_truncation_mask (enum machine_mode); -extern bool hook_bool_CUMULATIVE_ARGS_true (CUMULATIVE_ARGS *); extern tree default_cxx_guard_type (void); extern tree default_cxx_get_cookie_size (tree); -extern bool hook_pass_by_reference_false - (CUMULATIVE_ARGS *, enum machine_mode mode, tree, bool); extern bool hook_pass_by_reference_must_pass_in_stack (CUMULATIVE_ARGS *, enum machine_mode mode, tree, bool); +extern bool hook_callee_copies_named + (CUMULATIVE_ARGS *ca, enum machine_mode, tree, bool); extern void default_unwind_emit (FILE *, rtx); extern bool default_scalar_mode_supported_p (enum machine_mode); + +/* These are here, and not in hooks.[ch], because not all users of + hooks.h include tm.h, and thus we don't have CUMULATIVE_ARGS. */ + +extern bool hook_bool_CUMULATIVE_ARGS_false (CUMULATIVE_ARGS *); +extern bool hook_bool_CUMULATIVE_ARGS_true (CUMULATIVE_ARGS *); + +extern bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false + (CUMULATIVE_ARGS *, enum machine_mode, tree, bool); +extern bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true + (CUMULATIVE_ARGS *, enum machine_mode, tree, bool); |