OSDN Git Service

* sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Jun 2002 18:11:55 +0000 (18:11 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Jun 2002 18:11:55 +0000 (18:11 +0000)
arguments into account for stack_regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54961 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/sh.h

index addb5da..10ef8b6 100644 (file)
@@ -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{}} */'
index 32baea4..faf030c 100644 (file)
@@ -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)                      \