]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
mips.c (dump_constants_1): Generalize to include fractional and accumulator modes.
authorRichard Sandiford <rsandifo@nildram.co.uk>
Sun, 23 Sep 2007 09:29:02 +0000 (09:29 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 23 Sep 2007 09:29:02 +0000 (09:29 +0000)
gcc/
* config/mips/mips.c (dump_constants_1): Generalize to include
fractional and accumulator modes.

From-SVN: r128684

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

index 350b9bab73de9a02842adebf68b01a6a8742f6ef..3d7faf5b04d66c1a2eef67d3bdca67c78744d3ff 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * config/mips/mips.c (dump_constants_1): Generalize to include
+       fractional and accumulator modes.
+
 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
index 1d72056b2491a7f20895bcff2fa28a076bfbd9bf..5e939d1ad2f7b1cc4d25b7faadc76f183f48da5e 100644 (file)
@@ -10218,30 +10218,28 @@ add_constant (struct mips16_constant_pool *pool,
 static rtx
 dump_constants_1 (enum machine_mode mode, rtx value, rtx insn)
 {
-  switch (GET_MODE_CLASS (mode))
+  if (SCALAR_INT_MODE_P (mode)
+      || ALL_SCALAR_FRACT_MODE_P (mode)
+      || ALL_SCALAR_ACCUM_MODE_P (mode))
     {
-    case MODE_INT:
-      {
-       rtx size = GEN_INT (GET_MODE_SIZE (mode));
-       return emit_insn_after (gen_consttable_int (value, size), insn);
-      }
+      rtx size = GEN_INT (GET_MODE_SIZE (mode));
+      return emit_insn_after (gen_consttable_int (value, size), insn);
+    }
 
-    case MODE_FLOAT:
-      return emit_insn_after (gen_consttable_float (value), insn);
+  if (SCALAR_FLOAT_MODE_P (mode))
+    return emit_insn_after (gen_consttable_float (value), insn);
 
-    case MODE_VECTOR_FLOAT:
-    case MODE_VECTOR_INT:
-      {
-       int i;
-       for (i = 0; i < CONST_VECTOR_NUNITS (value); i++)
-         insn = dump_constants_1 (GET_MODE_INNER (mode),
-                                  CONST_VECTOR_ELT (value, i), insn);
-       return insn;
-      }
+  if (VECTOR_MODE_P (mode))
+    {
+      int i;
 
-    default:
-      gcc_unreachable ();
+      for (i = 0; i < CONST_VECTOR_NUNITS (value); i++)
+       insn = dump_constants_1 (GET_MODE_INNER (mode),
+                                CONST_VECTOR_ELT (value, i), insn);
+      return insn;
     }
+
+  gcc_unreachable ();
 }