* rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
authorDavid Edelsohn <edelsohn@gnu.org>
Sat, 17 May 2003 16:57:17 +0000 (16:57 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Sat, 17 May 2003 16:57:17 +0000 (12:57 -0400)
From-SVN: r66906

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index d15fadc6626f002f3d3499212192b80c8a00939f..23b8ff1397440dd75440def007c3fcbb6df4a3ec 100644 (file)
@@ -1,3 +1,7 @@
+2003-05-17  David Edelsohn  <edelsohn@gnu.org>
+
+       * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
+
 2003-05-17  Neil Booth  <neil@daikokuya.co.uk>
 
        * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS.
index adfa5cb52cd3f70bb961bc37b51c04747177576a..dc25005679a0a0b814bb8f2b3a2ff8c3a9a1a903 100644 (file)
@@ -14352,7 +14352,7 @@ rtx
 rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
 {
   enum machine_mode mode;
-  unsigned int regno = GP_ARG_RETURN;
+  unsigned int regno;
 
   if ((INTEGRAL_TYPE_P (valtype)
        && TYPE_PRECISION (valtype) < BITS_PER_WORD)
@@ -14361,14 +14361,9 @@ rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
   else
     mode = TYPE_MODE (valtype);
 
-  if (TREE_CODE (valtype) == REAL_TYPE)
-    {
-      if (TARGET_HARD_FLOAT && TARGET_FPRS)
-       regno = FP_ARG_RETURN;
-      else if (TARGET_SPE_ABI && !TARGET_FPRS)
-       regno = GP_ARG_RETURN;
-    }
-  else if (TARGET_ALTIVEC && TREE_CODE (valtype) == VECTOR_TYPE)
+  if (TREE_CODE (valtype) == REAL_TYPE && TARGET_HARD_FLOAT && TARGET_FPRS)
+    regno = FP_ARG_RETURN;
+  else if (TREE_CODE (valtype) == VECTOR_TYPE && TARGET_ALTIVEC)
     regno = ALTIVEC_ARG_RETURN;
   else
     regno = GP_ARG_RETURN;