OSDN Git Service

* config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Apr 2005 07:04:49 +0000 (07:04 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 29 Apr 2005 07:04:49 +0000 (07:04 +0000)
gcc_unreachable as appropriate.
(gen_conditional_move, xtensa_split_operand_pair,
xtensa_split_operand_pair, xtensa_copy_incoming_a7,
xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
xtensa_copy_incoming_a7, xtensa_output_literal,
xtensa_output_literal, xtensa_output_literal): Likewise.
* config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
*bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
movsicc_internal1, movsfcc_internal0,
movsfcc_internal1): Likewise.

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

gcc/ChangeLog
gcc/config/xtensa/xtensa.c
gcc/config/xtensa/xtensa.h
gcc/config/xtensa/xtensa.md

index 492dec3..fc060a7 100644 (file)
@@ -1,3 +1,18 @@
+2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
+       gcc_unreachable as appropriate.
+       (gen_conditional_move, xtensa_split_operand_pair,
+       xtensa_split_operand_pair, xtensa_copy_incoming_a7,
+       xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
+       xtensa_copy_incoming_a7, xtensa_output_literal,
+       xtensa_output_literal, xtensa_output_literal): Likewise.
+       * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
+       * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
+       *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
+       movsicc_internal1, movsfcc_internal0,
+       movsfcc_internal1): Likewise.
+
 2005-04-28  James E Wilson  <wilson@specifixinc.com>
 
        * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
index 4e8e518..a45c886 100644 (file)
@@ -667,8 +667,7 @@ gen_int_relational (enum rtx_code test_code, /* relational test (EQ, etc) */
   struct cmp_info *p_info;
 
   test = map_test_to_internal_test (test_code);
-  if (test == ITEST_MAX)
-    abort ();
+  gcc_assert (test != ITEST_MAX);
 
   p_info = &info[ (int)test ];
 
@@ -864,7 +863,7 @@ gen_conditional_move (rtx cmp)
                {
                case LT: code = GE; break;
                case GE: code = LT; break;
-               default: abort ();
+               default: gcc_unreachable ();
                }
            }
 
@@ -956,7 +955,7 @@ xtensa_split_operand_pair (rtx operands[4], enum machine_mode mode)
       break;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 
   switch (GET_CODE (operands[0]))
@@ -972,7 +971,7 @@ xtensa_split_operand_pair (rtx operands[4], enum machine_mode mode)
       break;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
@@ -1076,8 +1075,7 @@ xtensa_copy_incoming_a7 (rtx opnd)
     return opnd;
 
   /* This function should never be called again once a7 has been copied.  */
-  if (cfun->machine->set_frame_ptr_insn)
-    abort ();
+  gcc_assert (!cfun->machine->set_frame_ptr_insn);
 
   mode = GET_MODE (opnd);
 
@@ -1086,8 +1084,7 @@ xtensa_copy_incoming_a7 (rtx opnd)
   reg = opnd;
   if (GET_CODE (reg) == SUBREG)
     {
-      if (SUBREG_BYTE (reg) != 0)
-       abort ();
+      gcc_assert (SUBREG_BYTE (reg) == 0);
       reg = SUBREG_REG (reg);
     }
   if (GET_CODE (reg) != REG
@@ -1096,8 +1093,7 @@ xtensa_copy_incoming_a7 (rtx opnd)
     return opnd;
 
   /* 1-word args will always be in a7; 2-word args in a6/a7.  */
-  if (REGNO (reg) + HARD_REGNO_NREGS (A7_REG, mode) - 1 != A7_REG)
-    abort ();
+  gcc_assert (REGNO (reg) + HARD_REGNO_NREGS (A7_REG, mode) - 1 == A7_REG);
 
   cfun->machine->need_a7_copy = false;
 
@@ -1129,7 +1125,7 @@ xtensa_copy_incoming_a7 (rtx opnd)
       emit_insn (gen_movqi_internal (tmp, gen_raw_REG (mode, A7_REG)));
       break;
     default:
-      abort ();
+      gcc_unreachable ();
     }
 
   cfun->machine->set_frame_ptr_insn = emit_insn (gen_set_frame_ptr ());
@@ -1838,8 +1834,7 @@ xtensa_output_literal (FILE *file, rtx x, enum machine_mode mode, int labelno)
   switch (GET_MODE_CLASS (mode))
     {
     case MODE_FLOAT:
-      if (GET_CODE (x) != CONST_DOUBLE)
-       abort ();
+      gcc_assert (GET_CODE (x) == CONST_DOUBLE);
 
       REAL_VALUE_FROM_CONST_DOUBLE (r, x);
       switch (mode)
@@ -1856,7 +1851,7 @@ xtensa_output_literal (FILE *file, rtx x, enum machine_mode mode, int labelno)
          break;
 
        default:
-         abort ();
+         gcc_unreachable ();
        }
 
       break;
@@ -1864,24 +1859,27 @@ xtensa_output_literal (FILE *file, rtx x, enum machine_mode mode, int labelno)
     case MODE_INT:
     case MODE_PARTIAL_INT:
       size = GET_MODE_SIZE (mode);
-      if (size == 4)
+      switch (size)
        {
+       case 4:
          output_addr_const (file, x);
          fputs ("\n", file);
-       }
-      else if (size == 8)
-       {
+         break;
+
+       case 8:
          output_addr_const (file, operand_subword (x, 0, 0, DImode));
          fputs (", ", file);
          output_addr_const (file, operand_subword (x, 1, 0, DImode));
          fputs ("\n", file);
+         break;
+
+       default:
+         gcc_unreachable ();
        }
-      else
-       abort ();
       break;
 
     default:
-      abort ();
+      gcc_unreachable ();
     }
 }
 
index fc5351a..9f2f7d6 100644 (file)
@@ -588,12 +588,17 @@ extern enum reg_class xtensa_char_to_class[256];
 #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)                   \
   do {                                                                 \
     compute_frame_size (get_frame_size ());                            \
-    if ((FROM) == FRAME_POINTER_REGNUM)                                        \
-      (OFFSET) = 0;                                                    \
-    else if ((FROM) == ARG_POINTER_REGNUM)                             \
-      (OFFSET) = xtensa_current_frame_size;                            \
-    else                                                               \
-      abort ();                                                                \
+    switch (FROM)                                                      \
+      {                                                                        \
+      case FRAME_POINTER_REGNUM:                                       \
+        (OFFSET) = 0;                                                  \
+       break;                                                          \
+      case ARG_POINTER_REGNUM:                                         \
+        (OFFSET) = xtensa_current_frame_size;                          \
+       break;                                                          \
+      default:                                                         \
+       gcc_unreachable ();                                             \
+      }                                                                        \
   } while (0)
 
 /* If defined, the maximum amount of space required for outgoing
index 56388b5..cd08f76 100644 (file)
        case NE:        return "bne\t%0, %1, %2";
        case LT:        return "blt\t%0, %1, %2";
        case GE:        return "bge\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else if (INTVAL (operands[1]) == 0)
                                : "bnez\t%0, %2");
        case LT:        return "bltz\t%0, %2";
        case GE:        return "bgez\t%0, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        case NE:        return "bnei\t%0, %d1, %2";
        case LT:        return "blti\t%0, %d1, %2";
        case GE:        return "bgei\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump,jump")
    (set_attr "mode"    "none")
        case NE:        return "beq\t%0, %1, %2";
        case LT:        return "bge\t%0, %1, %2";
        case GE:        return "blt\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else if (INTVAL (operands[1]) == 0)
                                : "beqz\t%0, %2");
        case LT:        return "bgez\t%0, %2";
        case GE:        return "bltz\t%0, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        case NE:        return "beqi\t%0, %d1, %2";
        case LT:        return "bgei\t%0, %d1, %2";
        case GE:        return "blti\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump,jump")
    (set_attr "mode"    "none")
        {
        case LTU:       return "bltu\t%0, %1, %2";
        case GEU:       return "bgeu\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        {
        case LTU:       return "bltui\t%0, %d1, %2";
        case GEU:       return "bgeui\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump,jump")
    (set_attr "mode"    "none")
        {
        case LTU:       return "bgeu\t%0, %1, %2";
        case GEU:       return "bltu\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        {
        case LTU:       return "bgeui\t%0, %d1, %2";
        case GEU:       return "bltui\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump,jump")
    (set_attr "mode"    "none")
        {
        case EQ:        return "bbci\t%0, %d1, %2";
        case NE:        return "bbsi\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        {
        case EQ:        return "bbc\t%0, %1, %2";
        case NE:        return "bbs\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump")
    (set_attr "mode"    "none")
        {
        case EQ:        return "bbsi\t%0, %d1, %2";
        case NE:        return "bbci\t%0, %d1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        {
        case EQ:        return "bbs\t%0, %1, %2";
        case NE:        return "bbc\t%0, %1, %2";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "jump")
    (set_attr "mode"    "none")
     {
     case EQ:           return "bnone\t%0, %1, %2";
     case NE:           return "bany\t%0, %1, %2";
-    default:           break;
+    default:           gcc_unreachable ();
     }
-  abort ();
-  return "";
 }
   [(set_attr "type"    "jump")
    (set_attr "mode"    "none")
     {
     case EQ:           return "bany\t%0, %1, %2";
     case NE:           return "bnone\t%0, %1, %2";
-    default:           break;
+    default:           gcc_unreachable ();
     }
-  abort ();
-  return "";
 }
   [(set_attr "type"    "jump")
    (set_attr "mode"    "none")
        case NE:        return "movnez\t%0, %2, %1";
        case LT:        return "movltz\t%0, %2, %1";
        case GE:        return "movgez\t%0, %2, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
   else
        case NE:        return "moveqz\t%0, %3, %1";
        case LT:        return "movgez\t%0, %3, %1";
        case GE:        return "movltz\t%0, %3, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "move,move")
    (set_attr "mode"    "SI")
     case 1:
       if (isEq) return "movt\t%0, %3, %1";
       return "movf\t%0, %3, %1";
+    default:
+      gcc_unreachable ();
     }
-  abort ();
-  return "";
 }
   [(set_attr "type"    "move,move")
    (set_attr "mode"    "SI")
                         (match_operand:SF 3 "register_operand" "0,r,0,f")))]
   ""
 {
-  if (which_alternative == 0)
+  switch (which_alternative)
     {
+    case 0:
       switch (GET_CODE (operands[4]))
        {
        case EQ:        return "moveqz\t%0, %2, %1";
        case NE:        return "movnez\t%0, %2, %1";
        case LT:        return "movltz\t%0, %2, %1";
        case GE:        return "movgez\t%0, %2, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
-    }
-  else if (which_alternative == 1)
-    {
+      break;
+    case 1:
       switch (GET_CODE (operands[4]))
        {
        case EQ:        return "movnez\t%0, %3, %1";
        case NE:        return "moveqz\t%0, %3, %1";
        case LT:        return "movgez\t%0, %3, %1";
        case GE:        return "movltz\t%0, %3, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
-    }
-  else if (which_alternative == 2)
-    {
+      break;
+    case 2:
       switch (GET_CODE (operands[4]))
        {
        case EQ:        return "moveqz.s %0, %2, %1";
        case NE:        return "movnez.s %0, %2, %1";
        case LT:        return "movltz.s %0, %2, %1";
        case GE:        return "movgez.s %0, %2, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
-    }
-  else if (which_alternative == 3)
-    {
+      break;
+    case 3:
       switch (GET_CODE (operands[4]))
        {
        case EQ:        return "movnez.s %0, %3, %1";
        case NE:        return "moveqz.s %0, %3, %1";
        case LT:        return "movgez.s %0, %3, %1";
        case GE:        return "movltz.s %0, %3, %1";
-       default:        break;
+       default:        gcc_unreachable ();
        }
+      break;
+    default:
+      gcc_unreachable ();
     }
-  abort ();
-  return "";
+  gcc_unreachable ();
 }
   [(set_attr "type"    "move,move,move,move")
    (set_attr "mode"    "SF")
     case 3:
       if (isEq) return "movt.s\t%0, %3, %1";
       return "movf.s\t%0, %3, %1";
+    default:
+      gcc_unreachable ();
     }
-  abort ();
-  return "";
 }
   [(set_attr "type"    "move,move,move,move")
    (set_attr "mode"    "SF")