Commit f2f84cba by Nathan Sidwell Committed by Nathan Sidwell

v850.c (print_operand): Use gcc_assert and gcc_unreachable, as appropriate.

	* config/v850/v850.c (print_operand): Use gcc_assert and
	gcc_unreachable, as appropriate.
	(print_operand_address, v850_handle_data_area_attribute,
	v850_encode_data_area, construct_restore_jr, construct_save_jarl,
	v850_insert_attributes, construct_prepare_instruction): Likewise.
	* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
	* config/v850/v850.md (movsicc, *sasf_1): Likewise.

From-SVN: r99351
parent bb22512c
2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
* config/v850/v850.c (print_operand): Use gcc_assert and
gcc_unreachable, as appropriate.
(print_operand_address, v850_handle_data_area_attribute,
v850_encode_data_area, construct_restore_jr, construct_save_jarl,
v850_insert_attributes, construct_prepare_instruction): Likewise.
* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
* config/v850/v850.md (movsicc, *sasf_1): Likewise.
2005-05-07 Kazu Hirata <kazu@cs.umass.edu> 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
* tree-ssa-loop-ivcanon.c, config/i386/i386.c, * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
......
...@@ -518,30 +518,40 @@ print_operand (FILE * file, rtx x, int code) ...@@ -518,30 +518,40 @@ print_operand (FILE * file, rtx x, int code)
fprintf (file, "l"); fprintf (file, "l");
break; break;
default: default:
abort (); gcc_unreachable ();
} }
break; break;
case 'F': /* high word of CONST_DOUBLE */ case 'F': /* high word of CONST_DOUBLE */
if (GET_CODE (x) == CONST_INT) switch (GET_CODE (x))
fprintf (file, "%d", (INTVAL (x) >= 0) ? 0 : -1);
else if (GET_CODE (x) == CONST_DOUBLE)
{ {
case CONST_INT:
fprintf (file, "%d", (INTVAL (x) >= 0) ? 0 : -1);
break;
case CONST_DOUBLE:
const_double_split (x, &high, &low); const_double_split (x, &high, &low);
fprintf (file, "%ld", (long) high); fprintf (file, "%ld", (long) high);
break;
default:
gcc_unreachable ();
} }
else
abort ();
break; break;
case 'G': /* low word of CONST_DOUBLE */ case 'G': /* low word of CONST_DOUBLE */
if (GET_CODE (x) == CONST_INT) switch (GET_CODE (x))
fprintf (file, "%ld", (long) INTVAL (x));
else if (GET_CODE (x) == CONST_DOUBLE)
{ {
case CONST_INT:
fprintf (file, "%ld", (long) INTVAL (x));
break;
case CONST_DOUBLE:
const_double_split (x, &high, &low); const_double_split (x, &high, &low);
fprintf (file, "%ld", (long) low); fprintf (file, "%ld", (long) low);
break;
default:
gcc_unreachable ();
} }
else
abort ();
break; break;
case 'L': case 'L':
fprintf (file, "%d\n", (int)(INTVAL (x) & 0xffff)); fprintf (file, "%d\n", (int)(INTVAL (x) & 0xffff));
...@@ -550,14 +560,12 @@ print_operand (FILE * file, rtx x, int code) ...@@ -550,14 +560,12 @@ print_operand (FILE * file, rtx x, int code)
fprintf (file, "%d", exact_log2 (INTVAL (x))); fprintf (file, "%d", exact_log2 (INTVAL (x)));
break; break;
case 'O': case 'O':
if (special_symbolref_operand (x, VOIDmode)) gcc_assert (special_symbolref_operand (x, VOIDmode));
{
if (GET_CODE (x) == SYMBOL_REF) if (GET_CODE (x) == CONST)
;
else if (GET_CODE (x) == CONST)
x = XEXP (XEXP (x, 0), 0); x = XEXP (XEXP (x, 0), 0);
else else
abort (); gcc_assert (GET_CODE (x) == SYMBOL_REF);
if (SYMBOL_REF_ZDA_P (x)) if (SYMBOL_REF_ZDA_P (x))
fprintf (file, "zdaoff"); fprintf (file, "zdaoff");
...@@ -566,26 +574,19 @@ print_operand (FILE * file, rtx x, int code) ...@@ -566,26 +574,19 @@ print_operand (FILE * file, rtx x, int code)
else if (SYMBOL_REF_TDA_P (x)) else if (SYMBOL_REF_TDA_P (x))
fprintf (file, "tdaoff"); fprintf (file, "tdaoff");
else else
abort (); gcc_unreachable ();
}
else
abort ();
break; break;
case 'P': case 'P':
if (special_symbolref_operand (x, VOIDmode)) gcc_assert (special_symbolref_operand (x, VOIDmode));
output_addr_const (file, x); output_addr_const (file, x);
else
abort ();
break; break;
case 'Q': case 'Q':
if (special_symbolref_operand (x, VOIDmode)) gcc_assert (special_symbolref_operand (x, VOIDmode));
{
if (GET_CODE (x) == SYMBOL_REF) if (GET_CODE (x) == CONST)
;
else if (GET_CODE (x) == CONST)
x = XEXP (XEXP (x, 0), 0); x = XEXP (XEXP (x, 0), 0);
else else
abort (); gcc_assert (GET_CODE (x) == SYMBOL_REF);
if (SYMBOL_REF_ZDA_P (x)) if (SYMBOL_REF_ZDA_P (x))
fprintf (file, "r0"); fprintf (file, "r0");
...@@ -594,10 +595,7 @@ print_operand (FILE * file, rtx x, int code) ...@@ -594,10 +595,7 @@ print_operand (FILE * file, rtx x, int code)
else if (SYMBOL_REF_TDA_P (x)) else if (SYMBOL_REF_TDA_P (x))
fprintf (file, "ep"); fprintf (file, "ep");
else else
abort (); gcc_unreachable ();
}
else
abort ();
break; break;
case 'R': /* 2nd word of a double. */ case 'R': /* 2nd word of a double. */
switch (GET_CODE (x)) switch (GET_CODE (x))
...@@ -636,7 +634,7 @@ print_operand (FILE * file, rtx x, int code) ...@@ -636,7 +634,7 @@ print_operand (FILE * file, rtx x, int code)
switch (GET_MODE (x)) switch (GET_MODE (x))
{ {
default: default:
abort (); gcc_unreachable ();
case QImode: fputs (".b", file); break; case QImode: fputs (".b", file); break;
case HImode: fputs (".h", file); break; case HImode: fputs (".h", file); break;
...@@ -648,12 +646,13 @@ print_operand (FILE * file, rtx x, int code) ...@@ -648,12 +646,13 @@ print_operand (FILE * file, rtx x, int code)
fputs (reg_names[0], file); fputs (reg_names[0], file);
break; break;
case 'z': /* reg or zero */ case 'z': /* reg or zero */
if (x == const0_rtx) if (GET_CODE (x) == REG)
fputs (reg_names[0], file);
else if (GET_CODE (x) == REG)
fputs (reg_names[REGNO (x)], file); fputs (reg_names[REGNO (x)], file);
else else
abort (); {
gcc_assert (x == const0_rtx);
fputs (reg_names[0], file);
}
break; break;
default: default:
switch (GET_CODE (x)) switch (GET_CODE (x))
...@@ -680,7 +679,7 @@ print_operand (FILE * file, rtx x, int code) ...@@ -680,7 +679,7 @@ print_operand (FILE * file, rtx x, int code)
print_operand_address (file, x); print_operand_address (file, x);
break; break;
default: default:
abort (); gcc_unreachable ();
} }
break; break;
...@@ -779,7 +778,7 @@ print_operand_address (FILE * file, rtx addr) ...@@ -779,7 +778,7 @@ print_operand_address (FILE * file, rtx addr)
reg_name = "ep"; reg_name = "ep";
} }
else else
abort (); gcc_unreachable ();
fprintf (file, "%s(", off_name); fprintf (file, "%s(", off_name);
output_addr_const (file, addr); output_addr_const (file, addr);
...@@ -2131,7 +2130,7 @@ v850_handle_data_area_attribute (tree* node, ...@@ -2131,7 +2130,7 @@ v850_handle_data_area_attribute (tree* node,
else if (is_attribute_p ("zda", name)) else if (is_attribute_p ("zda", name))
data_area = DATA_AREA_ZDA; data_area = DATA_AREA_ZDA;
else else
abort (); gcc_unreachable ();
switch (TREE_CODE (decl)) switch (TREE_CODE (decl))
{ {
...@@ -2246,7 +2245,7 @@ v850_encode_data_area (tree decl, rtx symbol) ...@@ -2246,7 +2245,7 @@ v850_encode_data_area (tree decl, rtx symbol)
case DATA_AREA_ZDA: flags |= SYMBOL_FLAG_ZDA; break; case DATA_AREA_ZDA: flags |= SYMBOL_FLAG_ZDA; break;
case DATA_AREA_TDA: flags |= SYMBOL_FLAG_TDA; break; case DATA_AREA_TDA: flags |= SYMBOL_FLAG_TDA; break;
case DATA_AREA_SDA: flags |= SYMBOL_FLAG_SDA; break; case DATA_AREA_SDA: flags |= SYMBOL_FLAG_SDA; break;
default: abort (); default: gcc_unreachable ();
} }
SYMBOL_REF_FLAGS (symbol) = flags; SYMBOL_REF_FLAGS (symbol) = flags;
} }
...@@ -2285,12 +2284,9 @@ construct_restore_jr (rtx op) ...@@ -2285,12 +2284,9 @@ construct_restore_jr (rtx op)
/* Work out how many bytes to pop off the stack before retrieving /* Work out how many bytes to pop off the stack before retrieving
registers. */ registers. */
if (GET_CODE (XVECEXP (op, 0, 1)) != SET) gcc_assert (GET_CODE (XVECEXP (op, 0, 1)) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (XVECEXP (op, 0, 1))) == PLUS);
if (GET_CODE (SET_SRC (XVECEXP (op, 0, 1))) != PLUS) gcc_assert (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)) == CONST_INT);
abort ();
if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)) != CONST_INT)
abort ();
stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)); stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1));
...@@ -2310,12 +2306,10 @@ construct_restore_jr (rtx op) ...@@ -2310,12 +2306,10 @@ construct_restore_jr (rtx op)
{ {
rtx vector_element = XVECEXP (op, 0, i); rtx vector_element = XVECEXP (op, 0, i);
if (GET_CODE (vector_element) != SET) gcc_assert (GET_CODE (vector_element) == SET);
abort (); gcc_assert (GET_CODE (SET_DEST (vector_element)) == REG);
if (GET_CODE (SET_DEST (vector_element)) != REG) gcc_assert (register_is_ok_for_epilogue (SET_DEST (vector_element),
abort (); SImode));
if (! register_is_ok_for_epilogue (SET_DEST (vector_element), SImode))
abort ();
mask |= 1 << REGNO (SET_DEST (vector_element)); mask |= 1 << REGNO (SET_DEST (vector_element));
} }
...@@ -2327,24 +2321,19 @@ construct_restore_jr (rtx op) ...@@ -2327,24 +2321,19 @@ construct_restore_jr (rtx op)
break; break;
} }
if (first >= 32) gcc_assert (first < 32);
abort ();
/* Discover the last register to pop. */ /* Discover the last register to pop. */
if (mask & (1 << LINK_POINTER_REGNUM)) if (mask & (1 << LINK_POINTER_REGNUM))
{ {
if (stack_bytes != 16) gcc_assert (stack_bytes == 16);
abort ();
last = LINK_POINTER_REGNUM; last = LINK_POINTER_REGNUM;
} }
else else
{ {
if (stack_bytes != 0) gcc_assert (!stack_bytes);
abort (); gcc_assert (mask & (1 << 29));
if ((mask & (1 << 29)) == 0)
abort ();
last = 29; last = 29;
} }
...@@ -2401,14 +2390,10 @@ construct_save_jarl (rtx op) ...@@ -2401,14 +2390,10 @@ construct_save_jarl (rtx op)
} }
/* Paranoia. */ /* Paranoia. */
if (GET_CODE (XVECEXP (op, 0, 0)) != SET) gcc_assert (GET_CODE (XVECEXP (op, 0, 0)) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (XVECEXP (op, 0, 0))) == PLUS);
if (GET_CODE (SET_SRC (XVECEXP (op, 0, 0))) != PLUS) gcc_assert (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 0)) == REG);
abort (); gcc_assert (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)) == CONST_INT);
if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 0)) != REG)
abort ();
if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)) != CONST_INT)
abort ();
/* Work out how many bytes to push onto the stack after storing the /* Work out how many bytes to push onto the stack after storing the
registers. */ registers. */
...@@ -2430,12 +2415,10 @@ construct_save_jarl (rtx op) ...@@ -2430,12 +2415,10 @@ construct_save_jarl (rtx op)
{ {
rtx vector_element = XVECEXP (op, 0, i); rtx vector_element = XVECEXP (op, 0, i);
if (GET_CODE (vector_element) != SET) gcc_assert (GET_CODE (vector_element) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (vector_element)) == REG);
if (GET_CODE (SET_SRC (vector_element)) != REG) gcc_assert (register_is_ok_for_epilogue (SET_SRC (vector_element),
abort (); SImode));
if (! register_is_ok_for_epilogue (SET_SRC (vector_element), SImode))
abort ();
mask |= 1 << REGNO (SET_SRC (vector_element)); mask |= 1 << REGNO (SET_SRC (vector_element));
} }
...@@ -2447,23 +2430,19 @@ construct_save_jarl (rtx op) ...@@ -2447,23 +2430,19 @@ construct_save_jarl (rtx op)
break; break;
} }
if (first >= 32) gcc_assert (first < 32);
abort ();
/* Discover the last register to push. */ /* Discover the last register to push. */
if (mask & (1 << LINK_POINTER_REGNUM)) if (mask & (1 << LINK_POINTER_REGNUM))
{ {
if (stack_bytes != -16) gcc_assert (stack_bytes == -16);
abort ();
last = LINK_POINTER_REGNUM; last = LINK_POINTER_REGNUM;
} }
else else
{ {
if (stack_bytes != 0) gcc_assert (!stack_bytes);
abort (); gcc_assert (mask & (1 << 29));
if ((mask & (1 << 29)) == 0)
abort ();
last = 29; last = 29;
} }
...@@ -2642,7 +2621,7 @@ v850_insert_attributes (tree decl, tree * attr_ptr ATTRIBUTE_UNUSED ) ...@@ -2642,7 +2621,7 @@ v850_insert_attributes (tree decl, tree * attr_ptr ATTRIBUTE_UNUSED )
switch (v850_get_data_area (decl)) switch (v850_get_data_area (decl))
{ {
default: default:
abort (); gcc_unreachable ();
case DATA_AREA_SDA: case DATA_AREA_SDA:
kind = ((TREE_READONLY (decl)) kind = ((TREE_READONLY (decl))
...@@ -2711,12 +2690,9 @@ construct_dispose_instruction (rtx op) ...@@ -2711,12 +2690,9 @@ construct_dispose_instruction (rtx op)
/* Work out how many bytes to pop off the /* Work out how many bytes to pop off the
stack before retrieving registers. */ stack before retrieving registers. */
if (GET_CODE (XVECEXP (op, 0, 1)) != SET) gcc_assert (GET_CODE (XVECEXP (op, 0, 1)) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (XVECEXP (op, 0, 1))) == PLUS);
if (GET_CODE (SET_SRC (XVECEXP (op, 0, 1))) != PLUS) gcc_assert (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)) == CONST_INT);
abort ();
if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)) != CONST_INT)
abort ();
stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1)); stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 1)), 1));
...@@ -2738,12 +2714,10 @@ construct_dispose_instruction (rtx op) ...@@ -2738,12 +2714,10 @@ construct_dispose_instruction (rtx op)
{ {
rtx vector_element = XVECEXP (op, 0, i); rtx vector_element = XVECEXP (op, 0, i);
if (GET_CODE (vector_element) != SET) gcc_assert (GET_CODE (vector_element) == SET);
abort (); gcc_assert (GET_CODE (SET_DEST (vector_element)) == REG);
if (GET_CODE (SET_DEST (vector_element)) != REG) gcc_assert (register_is_ok_for_epilogue (SET_DEST (vector_element),
abort (); SImode));
if (! register_is_ok_for_epilogue (SET_DEST (vector_element), SImode))
abort ();
if (REGNO (SET_DEST (vector_element)) == 2) if (REGNO (SET_DEST (vector_element)) == 2)
use_callt = 1; use_callt = 1;
...@@ -2837,12 +2811,9 @@ construct_prepare_instruction (rtx op) ...@@ -2837,12 +2811,9 @@ construct_prepare_instruction (rtx op)
/* Work out how many bytes to push onto /* Work out how many bytes to push onto
the stack after storing the registers. */ the stack after storing the registers. */
if (GET_CODE (XVECEXP (op, 0, 0)) != SET) gcc_assert (GET_CODE (XVECEXP (op, 0, 0)) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (XVECEXP (op, 0, 0))) == PLUS);
if (GET_CODE (SET_SRC (XVECEXP (op, 0, 0))) != PLUS) gcc_assert (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)) == CONST_INT);
abort ();
if (GET_CODE (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)) != CONST_INT)
abort ();
stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)); stack_bytes = INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1));
...@@ -2863,12 +2834,10 @@ construct_prepare_instruction (rtx op) ...@@ -2863,12 +2834,10 @@ construct_prepare_instruction (rtx op)
{ {
rtx vector_element = XVECEXP (op, 0, i); rtx vector_element = XVECEXP (op, 0, i);
if (GET_CODE (vector_element) != SET) gcc_assert (GET_CODE (vector_element) == SET);
abort (); gcc_assert (GET_CODE (SET_SRC (vector_element)) == REG);
if (GET_CODE (SET_SRC (vector_element)) != REG) gcc_assert (register_is_ok_for_epilogue (SET_SRC (vector_element),
abort (); SImode));
if (! register_is_ok_for_epilogue (SET_SRC (vector_element), SImode))
abort ();
if (REGNO (SET_SRC (vector_element)) == 2) if (REGNO (SET_SRC (vector_element)) == 2)
use_callt = 1; use_callt = 1;
......
...@@ -554,7 +554,7 @@ enum reg_class ...@@ -554,7 +554,7 @@ enum reg_class
else if ((FROM) == ARG_POINTER_REGNUM) \ else if ((FROM) == ARG_POINTER_REGNUM) \
(OFFSET) = compute_frame_size (get_frame_size (), (long *)0); \ (OFFSET) = compute_frame_size (get_frame_size (), (long *)0); \
else \ else \
abort (); \ gcc_unreachable (); \
} }
/* Keep the stack pointer constant throughout the function. */ /* Keep the stack pointer constant throughout the function. */
......
...@@ -876,6 +876,7 @@ ...@@ -876,6 +876,7 @@
" "
{ {
rtx insn = get_last_insn_anywhere (); rtx insn = get_last_insn_anywhere ();
rtx src;
if ( (GET_CODE (operands[2]) == CONST_INT if ( (GET_CODE (operands[2]) == CONST_INT
&& GET_CODE (operands[3]) == CONST_INT)) && GET_CODE (operands[3]) == CONST_INT))
...@@ -903,28 +904,28 @@ ...@@ -903,28 +904,28 @@
if (GET_CODE (operands[3]) != REG) if (GET_CODE (operands[3]) != REG)
operands[3] = copy_to_mode_reg (SImode, operands[3]); operands[3] = copy_to_mode_reg (SImode, operands[3]);
} }
if (GET_CODE (insn) == INSN gcc_assert (GET_CODE (insn) == INSN
&& GET_CODE (PATTERN (insn)) == SET && GET_CODE (PATTERN (insn)) == SET
&& SET_DEST (PATTERN (insn)) == cc0_rtx) && SET_DEST (PATTERN (insn)) == cc0_rtx);
{
rtx src = SET_SRC (PATTERN (insn)); src = SET_SRC (PATTERN (insn));
if (GET_CODE (src) == COMPARE) switch (GET_CODE (src))
{ {
case COMPARE:
operands[4] = XEXP (src, 0); operands[4] = XEXP (src, 0);
operands[5] = XEXP (src, 1); operands[5] = XEXP (src, 1);
} break;
else if (GET_CODE (src) == REG
|| GET_CODE (src) == SUBREG) case REG:
{ case SUBREG:
operands[4] = src; operands[4] = src;
operands[5] = const0_rtx; operands[5] = const0_rtx;
break;
default:
gcc_unreachable ();
} }
else
abort ();
}
else
abort ();
}") }")
;; ??? Clobbering the condition codes is overkill. ;; ??? Clobbering the condition codes is overkill.
...@@ -1002,7 +1003,7 @@ ...@@ -1002,7 +1003,7 @@
(ashift:SI (match_operand:SI 2 "register_operand" "") (ashift:SI (match_operand:SI 2 "register_operand" "")
(const_int 1))))] (const_int 1))))]
"TARGET_V850E" "TARGET_V850E"
"* abort ();") "* gcc_unreachable ();")
(define_insn "*sasf_2" (define_insn "*sasf_2"
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment