diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2004-01-27 15:42:36 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-01-27 14:42:36 +0000 |
commit | be446dfc6bb52f0aecbc0c7fc71b7a8fbb35be4b (patch) | |
tree | 0c3946439f6563c3412bf9d01dddc4fb80a2aca6 /gcc/config/sparc/sparc.c | |
parent | 04b1f9b877999485989fdb5265a0c48db49d2722 (diff) | |
download | gcc-be446dfc6bb52f0aecbc0c7fc71b7a8fbb35be4b.zip gcc-be446dfc6bb52f0aecbc0c7fc71b7a8fbb35be4b.tar.gz gcc-be446dfc6bb52f0aecbc0c7fc71b7a8fbb35be4b.tar.bz2 |
sparc.c (function_arg_pass_by_reference): Return 1 for SCmode and DCmode if ARCH32.
* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
for SCmode and DCmode if ARCH32.
(sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
* config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
if ARCH32.
(BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
if ARCH32.
(BASE_OUTGOING_VALUE_REG): Likewise.
From-SVN: r76708
Diffstat (limited to 'gcc/config/sparc/sparc.c')
-rw-r--r-- | gcc/config/sparc/sparc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index b732e7a..e1e37ee 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -5591,7 +5591,10 @@ function_arg_pass_by_reference (const struct sparc_args *cum ATTRIBUTE_UNUSED, if (TARGET_ARCH32) { return ((type && AGGREGATE_TYPE_P (type)) - || mode == TFmode || mode == TCmode); + || mode == TFmode + || mode == SCmode + || mode == DCmode + || mode == TCmode); } else { @@ -5803,6 +5806,8 @@ sparc_va_arg (tree valist, tree type) { if (AGGREGATE_TYPE_P (type) || TYPE_MODE (type) == TFmode + || TYPE_MODE (type) == SCmode + || TYPE_MODE (type) == DCmode || TYPE_MODE (type) == TCmode) { indirect = 1; |