This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Assertify xtensa


This patch assertifies the xtensa target files.

I built an i86 hosted xtensa-none-elf cross compiler and libraries, but
I cannot test it as newlib doesn't support xtensa.  Fortunately there
weren't too many aborts, so I'm relatively confident this is correct.

Is anybody able to do more thorough checking? Is this ok as is?

nathan
--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk

2005-04-28  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.

Index: config/xtensa/xtensa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.c,v
retrieving revision 1.74
diff -c -3 -p -r1.74 xtensa.c
*** config/xtensa/xtensa.c	23 Apr 2005 21:28:44 -0000	1.74
--- config/xtensa/xtensa.c	28 Apr 2005 16:10:36 -0000
*************** gen_int_relational (enum rtx_code test_c
*** 667,674 ****
    struct cmp_info *p_info;
  
    test = map_test_to_internal_test (test_code);
!   if (test == ITEST_MAX)
!     abort ();
  
    p_info = &info[ (int)test ];
  
--- 667,673 ----
    struct cmp_info *p_info;
  
    test = map_test_to_internal_test (test_code);
!   gcc_assert (test != ITEST_MAX);
  
    p_info = &info[ (int)test ];
  
*************** gen_conditional_move (rtx cmp)
*** 864,870 ****
  		{
  		case LT: code = GE; break;
  		case GE: code = LT; break;
! 		default: abort ();
  		}
  	    }
  
--- 863,869 ----
  		{
  		case LT: code = GE; break;
  		case GE: code = LT; break;
! 		default: gcc_unreachable ();
  		}
  	    }
  
*************** xtensa_split_operand_pair (rtx operands[
*** 956,962 ****
        break;
  
      default:
!       abort ();
      }
  
    switch (GET_CODE (operands[0]))
--- 955,961 ----
        break;
  
      default:
!       gcc_unreachable ();
      }
  
    switch (GET_CODE (operands[0]))
*************** xtensa_split_operand_pair (rtx operands[
*** 972,978 ****
        break;
  
      default:
!       abort ();
      }
  }
  
--- 971,977 ----
        break;
  
      default:
!       gcc_unreachable ();
      }
  }
  
*************** xtensa_copy_incoming_a7 (rtx opnd)
*** 1076,1083 ****
      return opnd;
  
    /* This function should never be called again once a7 has been copied.  */
!   if (cfun->machine->set_frame_ptr_insn)
!     abort ();
  
    mode = GET_MODE (opnd);
  
--- 1075,1081 ----
      return opnd;
  
    /* This function should never be called again once a7 has been copied.  */
!   gcc_assert (!cfun->machine->set_frame_ptr_insn);
  
    mode = GET_MODE (opnd);
  
*************** xtensa_copy_incoming_a7 (rtx opnd)
*** 1086,1093 ****
    reg = opnd;
    if (GET_CODE (reg) == SUBREG)
      {
!       if (SUBREG_BYTE (reg) != 0)
! 	abort ();
        reg = SUBREG_REG (reg);
      }
    if (GET_CODE (reg) != REG
--- 1084,1090 ----
    reg = opnd;
    if (GET_CODE (reg) == SUBREG)
      {
!       gcc_assert (SUBREG_BYTE (reg) == 0);
        reg = SUBREG_REG (reg);
      }
    if (GET_CODE (reg) != REG
*************** xtensa_copy_incoming_a7 (rtx opnd)
*** 1096,1103 ****
      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 ();
  
    cfun->machine->need_a7_copy = false;
  
--- 1093,1099 ----
      return opnd;
  
    /* 1-word args will always be in a7; 2-word args in a6/a7.  */
!   gcc_assert (REGNO (reg) + HARD_REGNO_NREGS (A7_REG, mode) - 1 == A7_REG);
  
    cfun->machine->need_a7_copy = false;
  
*************** xtensa_copy_incoming_a7 (rtx opnd)
*** 1129,1135 ****
        emit_insn (gen_movqi_internal (tmp, gen_raw_REG (mode, A7_REG)));
        break;
      default:
!       abort ();
      }
  
    cfun->machine->set_frame_ptr_insn = emit_insn (gen_set_frame_ptr ());
--- 1125,1131 ----
        emit_insn (gen_movqi_internal (tmp, gen_raw_REG (mode, A7_REG)));
        break;
      default:
!       gcc_unreachable ();
      }
  
    cfun->machine->set_frame_ptr_insn = emit_insn (gen_set_frame_ptr ());
*************** xtensa_output_literal (FILE *file, rtx x
*** 1838,1845 ****
    switch (GET_MODE_CLASS (mode))
      {
      case MODE_FLOAT:
!       if (GET_CODE (x) != CONST_DOUBLE)
! 	abort ();
  
        REAL_VALUE_FROM_CONST_DOUBLE (r, x);
        switch (mode)
--- 1834,1840 ----
    switch (GET_MODE_CLASS (mode))
      {
      case MODE_FLOAT:
!       gcc_assert (GET_CODE (x) == CONST_DOUBLE);
  
        REAL_VALUE_FROM_CONST_DOUBLE (r, x);
        switch (mode)
*************** xtensa_output_literal (FILE *file, rtx x
*** 1856,1862 ****
  	  break;
  
  	default:
! 	  abort ();
  	}
  
        break;
--- 1851,1857 ----
  	  break;
  
  	default:
! 	  gcc_unreachable ();
  	}
  
        break;
*************** xtensa_output_literal (FILE *file, rtx x
*** 1864,1887 ****
      case MODE_INT:
      case MODE_PARTIAL_INT:
        size = GET_MODE_SIZE (mode);
!       if (size == 4)
  	{
  	  output_addr_const (file, x);
  	  fputs ("\n", file);
! 	}
!       else if (size == 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);
  	}
-       else
- 	abort ();
        break;
  
      default:
!       abort ();
      }
  }
  
--- 1859,1885 ----
      case MODE_INT:
      case MODE_PARTIAL_INT:
        size = GET_MODE_SIZE (mode);
!       switch (size)
  	{
+ 	case 4:
  	  output_addr_const (file, x);
  	  fputs ("\n", file);
! 	  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 ();
  	}
        break;
  
      default:
!       gcc_unreachable ();
      }
  }
  
Index: config/xtensa/xtensa.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.h,v
retrieving revision 1.65
diff -c -3 -p -r1.65 xtensa.h
*** config/xtensa/xtensa.h	8 Apr 2005 07:57:27 -0000	1.65
--- config/xtensa/xtensa.h	28 Apr 2005 16:10:39 -0000
*************** extern enum reg_class xtensa_char_to_cla
*** 588,599 ****
  #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 ();								\
    } while (0)
  
  /* If defined, the maximum amount of space required for outgoing
--- 588,604 ----
  #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)			\
    do {									\
      compute_frame_size (get_frame_size ());				\
!     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: config/xtensa/xtensa.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.md,v
retrieving revision 1.26
diff -c -3 -p -r1.26 xtensa.md
*** config/xtensa/xtensa.md	28 Apr 2005 05:38:50 -0000	1.26
--- config/xtensa/xtensa.md	28 Apr 2005 16:10:43 -0000
***************
*** 1326,1332 ****
  	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;
  	}
      }
    else if (INTVAL (operands[1]) == 0)
--- 1326,1332 ----
  	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:	gcc_unreachable ();
  	}
      }
    else if (INTVAL (operands[1]) == 0)
***************
*** 1341,1347 ****
  				: "bnez\t%0, %2");
  	case LT:	return "bltz\t%0, %2";
  	case GE:	return "bgez\t%0, %2";
! 	default:	break;
  	}
      }
    else
--- 1341,1347 ----
  				: "bnez\t%0, %2");
  	case LT:	return "bltz\t%0, %2";
  	case GE:	return "bgez\t%0, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1352,1362 ****
  	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;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
--- 1352,1361 ----
  	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:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
***************
*** 1379,1385 ****
  	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;
  	}
      }
    else if (INTVAL (operands[1]) == 0)
--- 1378,1384 ----
  	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:	gcc_unreachable ();
  	}
      }
    else if (INTVAL (operands[1]) == 0)
***************
*** 1394,1400 ****
  				: "beqz\t%0, %2");
  	case LT:	return "bgez\t%0, %2";
  	case GE:	return "bltz\t%0, %2";
! 	default:	break;
  	}
      }
    else
--- 1393,1399 ----
  				: "beqz\t%0, %2");
  	case LT:	return "bgez\t%0, %2";
  	case GE:	return "bltz\t%0, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1405,1415 ****
  	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;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
--- 1404,1413 ----
  	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:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
***************
*** 1430,1436 ****
  	{
  	case LTU:	return "bltu\t%0, %1, %2";
  	case GEU:	return "bgeu\t%0, %1, %2";
! 	default:	break;
  	}
      }
    else
--- 1428,1434 ----
  	{
  	case LTU:	return "bltu\t%0, %1, %2";
  	case GEU:	return "bgeu\t%0, %1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1439,1449 ****
  	{
  	case LTU:	return "bltui\t%0, %d1, %2";
  	case GEU:	return "bgeui\t%0, %d1, %2";
! 	default:	break;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
--- 1437,1446 ----
  	{
  	case LTU:	return "bltui\t%0, %d1, %2";
  	case GEU:	return "bgeui\t%0, %d1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
***************
*** 1464,1470 ****
  	{
  	case LTU:	return "bgeu\t%0, %1, %2";
  	case GEU:	return "bltu\t%0, %1, %2";
! 	default:	break;
  	}
      }
    else
--- 1461,1467 ----
  	{
  	case LTU:	return "bgeu\t%0, %1, %2";
  	case GEU:	return "bltu\t%0, %1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1473,1483 ****
  	{
  	case LTU:	return "bgeui\t%0, %d1, %2";
  	case GEU:	return "bltui\t%0, %d1, %2";
! 	default:	break;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
--- 1470,1479 ----
  	{
  	case LTU:	return "bgeui\t%0, %d1, %2";
  	case GEU:	return "bltui\t%0, %d1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump,jump")
     (set_attr "mode"	"none")
***************
*** 1505,1511 ****
  	{
  	case EQ:	return "bbci\t%0, %d1, %2";
  	case NE:	return "bbsi\t%0, %d1, %2";
! 	default:	break;
  	}
      }
    else
--- 1501,1507 ----
  	{
  	case EQ:	return "bbci\t%0, %d1, %2";
  	case NE:	return "bbsi\t%0, %d1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1514,1524 ****
  	{
  	case EQ:	return "bbc\t%0, %1, %2";
  	case NE:	return "bbs\t%0, %1, %2";
! 	default:	break;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
--- 1510,1519 ----
  	{
  	case EQ:	return "bbc\t%0, %1, %2";
  	case NE:	return "bbs\t%0, %1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
***************
*** 1544,1550 ****
  	{
  	case EQ:	return "bbsi\t%0, %d1, %2";
  	case NE:	return "bbci\t%0, %d1, %2";
! 	default:	break;
  	}
      }
    else
--- 1539,1545 ----
  	{
  	case EQ:	return "bbsi\t%0, %d1, %2";
  	case NE:	return "bbci\t%0, %d1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1553,1563 ****
  	{
  	case EQ:	return "bbs\t%0, %1, %2";
  	case NE:	return "bbc\t%0, %1, %2";
! 	default:	break;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
--- 1548,1557 ----
  	{
  	case EQ:	return "bbs\t%0, %1, %2";
  	case NE:	return "bbc\t%0, %1, %2";
! 	default:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
***************
*** 1577,1586 ****
      {
      case EQ:		return "bnone\t%0, %1, %2";
      case NE:		return "bany\t%0, %1, %2";
!     default:		break;
      }
-   abort ();
-   return "";
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
--- 1571,1578 ----
      {
      case EQ:		return "bnone\t%0, %1, %2";
      case NE:		return "bany\t%0, %1, %2";
!     default:		gcc_unreachable ();
      }
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
***************
*** 1600,1609 ****
      {
      case EQ:		return "bany\t%0, %1, %2";
      case NE:		return "bnone\t%0, %1, %2";
!     default:		break;
      }
-   abort ();
-   return "";
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
--- 1592,1599 ----
      {
      case EQ:		return "bany\t%0, %1, %2";
      case NE:		return "bnone\t%0, %1, %2";
!     default:		gcc_unreachable ();
      }
  }
    [(set_attr "type"	"jump")
     (set_attr "mode"	"none")
***************
*** 1758,1764 ****
  	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;
  	}
      }
    else
--- 1748,1754 ----
  	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:	gcc_unreachable ();
  	}
      }
    else
***************
*** 1769,1779 ****
  	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;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"move,move")
     (set_attr "mode"	"SI")
--- 1759,1768 ----
  	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:	gcc_unreachable ();
  	}
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"move,move")
     (set_attr "mode"	"SI")
***************
*** 1797,1805 ****
      case 1:
        if (isEq) return "movt\t%0, %3, %1";
        return "movf\t%0, %3, %1";
      }
-   abort ();
-   return "";
  }
    [(set_attr "type"	"move,move")
     (set_attr "mode"	"SI")
--- 1786,1794 ----
      case 1:
        if (isEq) return "movt\t%0, %3, %1";
        return "movf\t%0, %3, %1";
+     default:
+       gcc_unreachable ();
      }
  }
    [(set_attr "type"	"move,move")
     (set_attr "mode"	"SI")
***************
*** 1814,1865 ****
  			 (match_operand:SF 3 "register_operand" "0,r,0,f")))]
    ""
  {
!   if (which_alternative == 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;
  	}
!     }
!   else if (which_alternative == 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;
  	}
!     }
!   else if (which_alternative == 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;
  	}
!     }
!   else if (which_alternative == 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;
  	}
      }
!   abort ();
!   return "";
  }
    [(set_attr "type"	"move,move,move,move")
     (set_attr "mode"	"SF")
--- 1803,1854 ----
  			 (match_operand:SF 3 "register_operand" "0,r,0,f")))]
    ""
  {
!   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:	gcc_unreachable ();
  	}
!       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:	gcc_unreachable ();
  	}
!       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:	gcc_unreachable ();
  	}
!       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:	gcc_unreachable ();
  	}
+       break;
+     default:
+       gcc_unreachable ();
      }
!   gcc_unreachable ();
  }
    [(set_attr "type"	"move,move,move,move")
     (set_attr "mode"	"SF")
***************
*** 1889,1897 ****
      case 3:
        if (isEq) return "movt.s\t%0, %3, %1";
        return "movf.s\t%0, %3, %1";
      }
-   abort ();
-   return "";
  }
    [(set_attr "type"	"move,move,move,move")
     (set_attr "mode"	"SF")
--- 1878,1886 ----
      case 3:
        if (isEq) return "movt.s\t%0, %3, %1";
        return "movf.s\t%0, %3, %1";
+     default:
+       gcc_unreachable ();
      }
  }
    [(set_attr "type"	"move,move,move,move")
     (set_attr "mode"	"SF")

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]