+2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ * target.def (setup_incoming_vararg_bounds): Remove.
+ * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
+ * doc/tm.texi: Regenerate.
+ * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
+ * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
+ * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
+ (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
+
2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
MSP430: Fix lines over 80 characters long in
setup_incoming_varargs_64 (&next_cum);
}
-static void
-ix86_setup_incoming_vararg_bounds (cumulative_args_t cum_v,
- machine_mode mode,
- tree type,
- int *pretend_size ATTRIBUTE_UNUSED,
- int no_rtl)
-{
- CUMULATIVE_ARGS *cum = get_cumulative_args (cum_v);
- CUMULATIVE_ARGS next_cum;
- tree fntype;
-
- gcc_assert (!no_rtl);
-
- /* Do nothing if we use plain pointer to argument area. */
- if (!TARGET_64BIT || cum->call_abi == MS_ABI)
- return;
-
- fntype = TREE_TYPE (current_function_decl);
-
- /* For varargs, we do not want to skip the dummy va_dcl argument.
- For stdargs, we do want to skip the last named argument. */
- next_cum = *cum;
- if (stdarg_p (fntype))
- ix86_function_arg_advance (pack_cumulative_args (&next_cum), mode, type,
- true);
-}
-
-
/* Checks if TYPE is of kind va_list char *. */
static bool
#undef TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS
#define TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS true
-#undef TARGET_SETUP_INCOMING_VARARG_BOUNDS
-#define TARGET_SETUP_INCOMING_VARARG_BOUNDS ix86_setup_incoming_vararg_bounds
-
#undef TARGET_OFFLOAD_OPTIONS
#define TARGET_OFFLOAD_OPTIONS \
ix86_offload_options
returned by function call into @var{slot}.
@end deftypefn
-@deftypefn {Target Hook} void TARGET_SETUP_INCOMING_VARARG_BOUNDS (cumulative_args_t @var{args_so_far}, machine_mode @var{mode}, tree @var{type}, int *@var{pretend_args_size}, int @var{second_time})
-Use it to store bounds for anonymous register arguments stored
-into the stack. Arguments meaning is similar to
-@code{TARGET_SETUP_INCOMING_VARARGS}.
-@end deftypefn
-
@node Trampolines
@section Support for Nested Functions
@cindex support for nested functions
@hook TARGET_STORE_RETURNED_BOUNDS
-@hook TARGET_SETUP_INCOMING_VARARG_BOUNDS
-
@node Trampolines
@section Support for Nested Functions
@cindex support for nested functions
void, (rtx slot, rtx bounds),
default_store_returned_bounds)
-DEFHOOK
-(setup_incoming_vararg_bounds,
- "Use it to store bounds for anonymous register arguments stored\n\
-into the stack. Arguments meaning is similar to\n\
-@code{TARGET_SETUP_INCOMING_VARARGS}.",
- void, (cumulative_args_t args_so_far, machine_mode mode, tree type,
- int *pretend_args_size, int second_time),
- default_setup_incoming_vararg_bounds)
-
DEFHOOK
(call_args,
"While generating RTL for a function call, this target hook is invoked once\n\
return build_va_arg_indirect_ref (addr);
}
-void
-default_setup_incoming_vararg_bounds (cumulative_args_t ca ATTRIBUTE_UNUSED,
- machine_mode mode ATTRIBUTE_UNUSED,
- tree type ATTRIBUTE_UNUSED,
- int *pretend_arg_size ATTRIBUTE_UNUSED,
- int second_time ATTRIBUTE_UNUSED)
-{
-}
-
/* An implementation of TARGET_CAN_USE_DOLOOP_P for targets that do
not support nested low-overhead loops. */
extern void default_store_bounds_for_arg (rtx, rtx, rtx, rtx);
extern rtx default_load_returned_bounds (rtx);
extern void default_store_returned_bounds (rtx,rtx);
-extern void default_setup_incoming_vararg_bounds (cumulative_args_t ca ATTRIBUTE_UNUSED,
- machine_mode mode ATTRIBUTE_UNUSED,
- tree type ATTRIBUTE_UNUSED,
- int *pretend_arg_size ATTRIBUTE_UNUSED,
- int second_time ATTRIBUTE_UNUSED);
extern bool default_optab_supported_p (int, machine_mode, machine_mode,
optimization_type);
extern unsigned int default_max_noce_ifcvt_seq_cost (edge);