]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix mips_function_value for TARGET_SINGLE_FLOAT.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 22 Oct 1996 22:28:41 +0000 (22:28 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 22 Oct 1996 22:28:41 +0000 (22:28 +0000)
From-SVN: r12996

gcc/config/mips/mips.c

index 3bfd940c79523935d3a6a2a626756ec43045783b..e2b99c77f1fe9771c66c1da46aeae496411d1d87 100644 (file)
@@ -5894,7 +5894,15 @@ mips_function_value (valtype, func)
 
   /* ??? How should we return complex float?  */
   if (mclass == MODE_FLOAT || mclass == MODE_COMPLEX_FLOAT)
-    reg = FP_RETURN;
+    {
+      if (TARGET_SINGLE_FLOAT
+         && (mclass == MODE_FLOAT
+             ? GET_MODE_SIZE (mode) > 4
+             : GET_MODE_SIZE (mode) / 2 > 4))
+       reg = GP_RETURN;
+      else
+       reg = FP_RETURN;
+    }
   else if (TREE_CODE (valtype) == RECORD_TYPE
           && mips_abi != ABI_32 && mips_abi != ABI_EABI)
     {