diff options
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; |