From f2531eb6e5d9c62379284931f9994e69718015b2 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sun, 23 Sep 2007 09:29:02 +0000 Subject: [PATCH] mips.c (dump_constants_1): Generalize to include fractional and accumulator modes. gcc/ * config/mips/mips.c (dump_constants_1): Generalize to include fractional and accumulator modes. From-SVN: r128684 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 36 +++++++++++++++++------------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 350b9bab73d..3d7faf5b04d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-09-23 Richard Sandiford + + * config/mips/mips.c (dump_constants_1): Generalize to include + fractional and accumulator modes. + 2007-09-23 Richard Sandiford * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 1d72056b249..5e939d1ad2f 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -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 (); } -- 2.30.2