OSDN Git Service

* rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 May 2003 16:57:17 +0000 (16:57 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 May 2003 16:57:17 +0000 (16:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66906 138bc75d-0d04-0410-961f-82ee72b054a4

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

index d15fadc..23b8ff1 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 adfa5cb..dc25005 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;