aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2002-06-24 18:11:55 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2002-06-24 19:11:55 +0100
commit87912be720118115eded3786b807a34cfb0f0a81 (patch)
tree8d0afa5df2a9d284b0a2e3139376746a66be8dbf /gcc
parent0d893a63543e2d476899c2d7c319327eef2dafa5 (diff)
downloadgcc-87912be720118115eded3786b807a34cfb0f0a81.zip
gcc-87912be720118115eded3786b807a34cfb0f0a81.tar.gz
gcc-87912be720118115eded3786b807a34cfb0f0a81.tar.bz2
sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK arguments into account for stack_regs.
* sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK arguments into account for stack_regs. From-SVN: r54961
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.h10
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index addb5da..10ef8b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jun 24 18:53:56 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
+ arguments into account for stack_regs.
+
2002-06-24 Matt Kraai <kraai@alumni.cmu.edu>
* doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 32baea4..faf030c 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1711,9 +1711,13 @@ struct sh_args {
(CUM).arg_count[(int) SH_ARG_INT] += numregs; \
if (TARGET_SHCOMPACT \
&& SHCOMPACT_FORCE_ON_STACK (MODE_, TYPE_)) \
- (CUM).call_cookie \
- |= CALL_COOKIE_INT_REG (((CUM).arg_count[(int) SH_ARG_INT] \
- - numregs), 1); \
+ { \
+ (CUM).call_cookie \
+ |= CALL_COOKIE_INT_REG (((CUM).arg_count[(int) SH_ARG_INT] \
+ - numregs), 1); \
+ /* N.B. We want this also for outgoing. */\
+ (CUM).stack_regs += numregs; \
+ } \
else if ((CUM).byref) \
{ \
if (! (CUM).outgoing) \