OSDN Git Service

* rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic.
[pf3gnuchains/gcc-fork.git] / gcc / config / rs6000 / rs6000.c
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;