OSDN Git Service

2004-12-08 Eric Christopher <echristo@redhat.com>
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Dec 2004 01:04:40 +0000 (01:04 +0000)
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Dec 2004 01:04:40 +0000 (01:04 +0000)
* config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
to avoid call to default function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91925 138bc75d-0d04-0410-961f-82ee72b054a4

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

index e780766..f9fa30f 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 0a3025a..d3b5faa 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;
+    }
 }