summaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-27 07:05:18 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-27 07:05:18 +0000
commit0fee47f4b75b538c02375f8bf0e4b23ccd107fac (patch)
tree4fb176f0e3f8d0be12e1b3e8dc88d2e5e55ee7b6 /gcc/function.c
parent0b46aa51cb558276e1f47db062b9eb574b5b0f6c (diff)
downloadgcc-0fee47f4b75b538c02375f8bf0e4b23ccd107fac.tar.gz
* calls.c (initialize_argument_information): If an argument has no
stack space associated with it, and BLOCK_REG_PADDING is defined, use it to decide at which end the argument should be padded. * function.c (assign_parms): Allocate BLKmode stack slots. * config/mips/mips-protos.h (mips_pad_arg_upward): Declare. (mips_pad_reg_upward): Declare. * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING. (CUMULATIVE_ARGS): Remove num_adjusts and adjusts. (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward. (BLOCK_REG_PADDING): Use mips_pad_reg_upward. * config/mips/mips.c (struct mips_arg_info): Remove struct_p. (mips_expand_call): Remove code for generating structure shifts. (mips_arg_info): Don't set struct_p. Don't set fpr_p for non-float types unless using the EABI. (function_arg_advance): Don't generate shift instructions. (function_arg): Don't return them. Don't short-circuit the check for double structure chunks for DFmode arguments. (mips_pad_arg_upward, mips_pad_reg_upward): New functions. (mips_expand_prologue): Remove code to emit structure shifts. * config/mips/irix6-libc-compat.c: Remove workarounds for buggy structure passing (inet_ntoa, inet_lnaof, inet_netof). Update comments to say that only structure returns are a problem. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70843 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/function.c b/gcc/function.c
index fd7c7f79350..a17ace15d9d 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4674,9 +4674,8 @@ assign_parms (tree fndecl)
if (stack_parm == 0)
{
- stack_parm
- = assign_stack_local (GET_MODE (entry_parm),
- size_stored, 0);
+ stack_parm = assign_stack_local (BLKmode, size_stored, 0);
+ PUT_MODE (stack_parm, GET_MODE (entry_parm));
set_mem_attributes (stack_parm, parm, 1);
}