diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/sh/sh.h | 10 |
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) \ |
