summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-04-29 12:54:19 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1999-04-29 12:54:19 +0000
commitdd837bff4b91a50684dd9c2535fda948eaa86901 (patch)
treef82b91abd07dc24d86f6c56307c7621d341ff5a2
parent4d2c4cac01f4f800299afa7e0b7e212dfefabe3f (diff)
downloadgcc-dd837bff4b91a50684dd9c2535fda948eaa86901.tar.gz
* calls.c (emit_call_1): Pass rounded_stack_size to emit_call
instead of the unrounded size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26694 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/calls.c14
2 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2c9c9424a6d..ba0194a6987 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Apr 29 12:53:33 1999 Richard Henderson <rth@cygnus.com>
+
+ * calls.c (emit_call_1): Pass rounded_stack_size to emit_call
+ instead of the unrounded size.
+
1999-04-28 14:40 Bruce Korb <ddsinc09@ix.netcom.com>
* fixinc/mkfixinc.sh: Makesure the result shell script is writable
diff --git a/gcc/calls.c b/gcc/calls.c
index 466c7785c6e..03bac91251b 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -389,7 +389,7 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
rtx call_fusage;
int is_const;
{
- rtx stack_size_rtx = GEN_INT (stack_size);
+ rtx rounded_stack_size_rtx = GEN_INT (rounded_stack_size);
rtx struct_value_size_rtx = GEN_INT (struct_value_size);
rtx call_insn;
#ifndef ACCUMULATE_OUTGOING_ARGS
@@ -416,10 +416,10 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
if (valreg)
pat = gen_call_value_pop (valreg,
gen_rtx_MEM (FUNCTION_MODE, funexp),
- stack_size_rtx, next_arg_reg, n_pop);
+ rounded_stack_size_rtx, next_arg_reg, n_pop);
else
pat = gen_call_pop (gen_rtx_MEM (FUNCTION_MODE, funexp),
- stack_size_rtx, next_arg_reg, n_pop);
+ rounded_stack_size_rtx, next_arg_reg, n_pop);
emit_call_insn (pat);
already_popped = 1;
@@ -434,11 +434,11 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
if (valreg)
emit_call_insn (gen_call_value (valreg,
gen_rtx_MEM (FUNCTION_MODE, funexp),
- stack_size_rtx, next_arg_reg,
+ rounded_stack_size_rtx, next_arg_reg,
NULL_RTX));
else
emit_call_insn (gen_call (gen_rtx_MEM (FUNCTION_MODE, funexp),
- stack_size_rtx, next_arg_reg,
+ rounded_stack_size_rtx, next_arg_reg,
struct_value_size_rtx));
}
else
@@ -492,8 +492,8 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
= gen_rtx_EXPR_LIST (VOIDmode,
gen_rtx_CLOBBER (VOIDmode, stack_pointer_rtx),
CALL_INSN_FUNCTION_USAGE (call_insn));
- stack_size -= n_popped;
rounded_stack_size -= n_popped;
+ rounded_stack_size_rtx = GEN_INT (rounded_stack_size);
}
if (rounded_stack_size != 0)
@@ -501,7 +501,7 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
if (flag_defer_pop && inhibit_defer_pop == 0 && !is_const)
pending_stack_adjust += rounded_stack_size;
else
- adjust_stack (GEN_INT (rounded_stack_size));
+ adjust_stack (rounded_stack_size_rtx);
}
#endif
}