calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or MAYBE_REG_PARM_STACK_SPACE.
* calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or MAYBE_REG_PARM_STACK_SPACE. * function.c: Likewise. * system.h (FINAL_REG_PARM_STACK_SPACE): Poison. (MAYBE_REG_PARM_STACK_SPACE): Likewise. * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove. (MAYBE_REG_PARM_STACK_SPACE): Likewise. From-SVN: r78530
This commit is contained in:
parent
6d4fb96f24
commit
6c5caf00a8
@ -1,3 +1,13 @@
|
||||
2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
|
||||
MAYBE_REG_PARM_STACK_SPACE.
|
||||
* function.c: Likewise.
|
||||
* system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
|
||||
(MAYBE_REG_PARM_STACK_SPACE): Likewise.
|
||||
* doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
|
||||
(MAYBE_REG_PARM_STACK_SPACE): Likewise.
|
||||
|
||||
2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* c-decl.c (c_expand_deferred_function): Remove.
|
||||
|
25
gcc/calls.c
25
gcc/calls.c
@ -1349,11 +1349,6 @@ compute_argument_block_size (int reg_parm_stack_space,
|
||||
args_size->constant = MAX (args_size->constant,
|
||||
reg_parm_stack_space);
|
||||
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
if (reg_parm_stack_space == 0)
|
||||
args_size->constant = 0;
|
||||
#endif
|
||||
|
||||
#ifndef OUTGOING_REG_PARM_STACK_SPACE
|
||||
args_size->constant -= reg_parm_stack_space;
|
||||
#endif
|
||||
@ -1735,11 +1730,7 @@ try_to_integrate (tree fndecl, tree actparms, rtx target, int ignore,
|
||||
int reg_parm_stack_space = 0;
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = MAYBE_REG_PARM_STACK_SPACE;
|
||||
#else
|
||||
reg_parm_stack_space = REG_PARM_STACK_SPACE (fndecl);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
before_call = get_last_insn ();
|
||||
@ -2265,12 +2256,8 @@ expand_call (tree exp, rtx target, int ignore)
|
||||
}
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = MAYBE_REG_PARM_STACK_SPACE;
|
||||
#else
|
||||
reg_parm_stack_space = REG_PARM_STACK_SPACE (fndecl);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef OUTGOING_REG_PARM_STACK_SPACE
|
||||
if (reg_parm_stack_space > 0 && PUSH_ARGS)
|
||||
@ -2729,10 +2716,6 @@ expand_call (tree exp, rtx target, int ignore)
|
||||
if (pass && (flags & ECF_LIBCALL_BLOCK))
|
||||
NO_DEFER_POP;
|
||||
|
||||
#ifdef FINAL_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = FINAL_REG_PARM_STACK_SPACE (args_size.constant,
|
||||
args_size.var);
|
||||
#endif
|
||||
/* Precompute any arguments as needed. */
|
||||
if (pass)
|
||||
precompute_arguments (flags, num_actuals, args);
|
||||
@ -3695,11 +3678,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
rtx struct_value = targetm.calls.struct_value_rtx (0, 0);
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = MAYBE_REG_PARM_STACK_SPACE;
|
||||
#else
|
||||
reg_parm_stack_space = REG_PARM_STACK_SPACE ((tree) 0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* By default, library functions can not throw. */
|
||||
@ -3951,10 +3930,6 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
||||
FUNCTION_ARG_ADVANCE (args_so_far, mode, (tree) 0, 1);
|
||||
}
|
||||
|
||||
#ifdef FINAL_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = FINAL_REG_PARM_STACK_SPACE (args_size.constant,
|
||||
args_size.var);
|
||||
#endif
|
||||
/* If this machine requires an external definition for library
|
||||
functions, write one out. */
|
||||
assemble_external_libcall (fun);
|
||||
|
@ -3455,33 +3455,6 @@ which.
|
||||
@c above is overfull. not sure what to do. --mew 5feb93 did
|
||||
@c something, not sure if it looks good. --mew 10feb93
|
||||
|
||||
@defmac MAYBE_REG_PARM_STACK_SPACE
|
||||
@defmacx FINAL_REG_PARM_STACK_SPACE (@var{const_size}, @var{var_size})
|
||||
Define these macros in addition to the one above if functions might
|
||||
allocate stack space for arguments even when their values are passed
|
||||
in registers. These should be used when the stack space allocated
|
||||
for arguments in registers is not a simple constant independent of the
|
||||
function declaration.
|
||||
|
||||
The value of the first macro is the size, in bytes, of the area that
|
||||
we should initially assume would be reserved for arguments passed in registers.
|
||||
|
||||
The value of the second macro is the actual size, in bytes, of the area
|
||||
that will be reserved for arguments passed in registers. This takes two
|
||||
arguments: an integer representing the number of bytes of fixed sized
|
||||
arguments on the stack, and a tree representing the number of bytes of
|
||||
variable sized arguments on the stack.
|
||||
|
||||
When these macros are defined, @code{REG_PARM_STACK_SPACE} will only be
|
||||
called for libcall functions, the current function, or for a function
|
||||
being called when it is known that such stack space must be allocated.
|
||||
In each case this value can be easily computed.
|
||||
|
||||
When deciding whether a called function needs such stack space, and how
|
||||
much space to reserve, GCC uses these two macros instead of
|
||||
@code{REG_PARM_STACK_SPACE}.
|
||||
@end defmac
|
||||
|
||||
@defmac OUTGOING_REG_PARM_STACK_SPACE
|
||||
Define this if it is the responsibility of the caller to allocate the area
|
||||
reserved for arguments passed in registers.
|
||||
|
@ -4347,12 +4347,8 @@ assign_parms (tree fndecl)
|
||||
fnargs = split_complex_args (fnargs);
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = MAYBE_REG_PARM_STACK_SPACE;
|
||||
#else
|
||||
reg_parm_stack_space = REG_PARM_STACK_SPACE (fndecl);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef INIT_CUMULATIVE_INCOMING_ARGS
|
||||
INIT_CUMULATIVE_INCOMING_ARGS (args_so_far, fntype, NULL_RTX);
|
||||
@ -4554,12 +4550,9 @@ assign_parms (tree fndecl)
|
||||
partial = FUNCTION_ARG_PARTIAL_NREGS (args_so_far, promoted_mode,
|
||||
passed_type, named_arg);
|
||||
if (partial
|
||||
#ifndef MAYBE_REG_PARM_STACK_SPACE
|
||||
/* The caller might already have allocated stack space
|
||||
for the register parameters. */
|
||||
&& reg_parm_stack_space == 0
|
||||
#endif
|
||||
)
|
||||
&& reg_parm_stack_space == 0)
|
||||
{
|
||||
/* Part of this argument is passed in registers and part
|
||||
is passed on the stack. Ask the prologue code to extend
|
||||
@ -4660,16 +4653,10 @@ assign_parms (tree fndecl)
|
||||
if (entry_parm == stack_parm
|
||||
|| (GET_CODE (entry_parm) == PARALLEL
|
||||
&& XEXP (XVECEXP (entry_parm, 0, 0), 0) == NULL_RTX)
|
||||
#if defined (REG_PARM_STACK_SPACE) && ! defined (MAYBE_REG_PARM_STACK_SPACE)
|
||||
#if defined (REG_PARM_STACK_SPACE)
|
||||
/* On some machines, even if a parm value arrives in a register
|
||||
there is still an (uninitialized) stack slot allocated for it.
|
||||
|
||||
??? When MAYBE_REG_PARM_STACK_SPACE is defined, we can't tell
|
||||
whether this parameter already has a stack slot allocated,
|
||||
because an arg block exists only if current_function_args_size
|
||||
is larger than some threshold, and we haven't calculated that
|
||||
yet. So, for now, we just assume that stack slots never exist
|
||||
in this case. */
|
||||
there is still an (uninitialized) stack slot allocated
|
||||
for it. */
|
||||
|| REG_PARM_STACK_SPACE (fndecl) > 0
|
||||
#endif
|
||||
)
|
||||
@ -5292,10 +5279,8 @@ assign_parms (tree fndecl)
|
||||
minimum length. */
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifndef MAYBE_REG_PARM_STACK_SPACE
|
||||
current_function_args_size = MAX (current_function_args_size,
|
||||
REG_PARM_STACK_SPACE (fndecl));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
current_function_args_size
|
||||
@ -5490,11 +5475,7 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs,
|
||||
int part_size_in_regs;
|
||||
|
||||
#ifdef REG_PARM_STACK_SPACE
|
||||
#ifdef MAYBE_REG_PARM_STACK_SPACE
|
||||
reg_parm_stack_space = MAYBE_REG_PARM_STACK_SPACE;
|
||||
#else
|
||||
reg_parm_stack_space = REG_PARM_STACK_SPACE (fndecl);
|
||||
#endif
|
||||
|
||||
/* If we have found a stack parm before we reach the end of the
|
||||
area reserved for registers, skip that area. */
|
||||
|
@ -637,7 +637,8 @@ typedef char _Bool;
|
||||
PROMOTED_MODE EXPAND_BUILTIN_VA_END \
|
||||
LINKER_DOES_NOT_WORK_WITH_DWARF2 FUNCTION_ARG_KEEP_AS_REFERENCE \
|
||||
GIV_SORT_CRITERION MAX_LONG_TYPE_SIZE MAX_LONG_DOUBLE_TYPE_SIZE \
|
||||
MAX_WCHAR_TYPE_SIZE GCOV_TYPE_SIZE SHARED_SECTION_ASM_OP
|
||||
MAX_WCHAR_TYPE_SIZE GCOV_TYPE_SIZE SHARED_SECTION_ASM_OP \
|
||||
FINAL_REG_PARM_STACK_SPACE MAYBE_REG_PARM_STACK_SPACE
|
||||
|
||||
/* Hooks that are no longer used. */
|
||||
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
|
||||
|
Loading…
Reference in New Issue
Block a user