aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc/sparc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/sparc/sparc.c')
-rw-r--r--gcc/config/sparc/sparc.c7
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;