aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-03-23 20:20:32 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-03-23 20:20:32 -0500
commit0cf91217da8a154f5df2273b5236d690e32366d0 (patch)
tree3a560a187497997ac38876c2393df2ce95e0863b
parent77e67eac60930cda48fcf7ceaa9dca6ebf69ae60 (diff)
downloadgcc-0cf91217da8a154f5df2273b5236d690e32366d0.zip
gcc-0cf91217da8a154f5df2273b5236d690e32366d0.tar.gz
gcc-0cf91217da8a154f5df2273b5236d690e32366d0.tar.bz2
(store_one_arg): Use int_size_in_bytes and expr_size when appropriate
instead of size_in_bytes. From-SVN: r3863
-rw-r--r--gcc/calls.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 009eda8..bd7b909 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2794,12 +2794,11 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, fndecl,
}
else
{
- register tree size = size_in_bytes (TREE_TYPE (pval));
/* PUSH_ROUNDING has no effect on us, because
emit_push_insn for BLKmode is careful to avoid it. */
- excess = (arg->size.constant - TREE_INT_CST_LOW (size)
+ excess = (arg->size.constant - int_size_in_bytes (TREE_TYPE (pval))
+ partial * UNITS_PER_WORD);
- size_rtx = expand_expr (size, NULL_RTX, VOIDmode, 0);
+ size_rtx = expr_size (TREE_TYPE (pval));
}
emit_push_insn (arg->value, arg->mode, TREE_TYPE (pval), size_rtx,