mips.c (mips_scalar_mode_supported_p): Rewrite to avoid call to default function.
authorEric Christopher <echristo@redhat.com>
Thu, 9 Dec 2004 01:04:40 +0000 (01:04 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Thu, 9 Dec 2004 01:04:40 +0000 (01:04 +0000)
2004-12-08  Eric Christopher  <echristo@redhat.com>

* config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
to avoid call to default function.

From-SVN: r91925

gcc/ChangeLog
gcc/config/mips/mips.c

index e780766c2629cda01a8d9cf6f0c0906547a6e6e4..f9fa30f99a57a10f2394e55e83d8eed8bcdc717e 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-08  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
+       to avoid call to default function.
+
 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
 
        PR 17982
index 0a3025a83a08e91454e7052d4568e84302844353..d3b5faa53c216fff0a7d4347121643553f8bc7b2 100644 (file)
@@ -7087,19 +7087,34 @@ mips_valid_pointer_mode (enum machine_mode mode)
 
    then compiled with -mabi=64 and -mint64. We have no
    32-bit type at that point and so the default case
-   always fails.  Instead of special casing everything
-   it's easier to accept SImode in this function and
-   then punt to the default which will work for all
-   of the cases where we deal with TARGET_64BIT, etc.  */
+   always fails.  */
+
 static bool
 mips_scalar_mode_supported_p (enum machine_mode mode)
 {
-  /* We can always handle SImode.  */
-  if (mode == SImode)
-    return true;
-  else
-    return default_scalar_mode_supported_p (mode);
+  switch (mode)
+    {
+    case QImode:
+    case HImode:
+    case SImode:
+    case DImode:
+      return true;
+
+      /* Handled via optabs.c.  */
+    case TImode:
+      return TARGET_64BIT;
 
+    case SFmode:
+    case DFmode:
+      return true;
+
+      /* LONG_DOUBLE_TYPE_SIZE is 128 for TARGET_NEWABI only.  */
+    case TFmode:
+      return TARGET_NEWABI;
+
+    default:
+      return false;
+    }
 }