Commit e6d29d15 by Nathan Sidwell Committed by Nathan Sidwell

arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and gcc_unreachable as appropriate.

	* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
	gcc_unreachable as appropriate.
	(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
	* config/arm/arm.c (arm_override_options, arm_compute_func_type,
	use_return_insn, const_ok_for_op, arm_gen_constant,
	arm_canonicalize_comparison, legitimize_pic_address,
	thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
	arm_cirrus_insn_p, cirrus_reorg, minmax_code,
	load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
	emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
	arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
	move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
	dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
	fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
	output_call, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa,
	output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
	output_move_double, arithmetic_instr, shift_op, int_log2,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_output_function_epilogue,
	emit_multi_reg_push, arm_get_frame_offsets,
	arm_compute_initial_elimination_offset, arm_expand_prologue,
	arm_print_operand, arm_assemble_integer, get_arm_condition_code,
	arm_final_prescan_insn, arm_init_iwmmxt_builtins,
	arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
	thumb_compute_initial_elimination_offset,
	thumb_output_function_prologue, thumb_load_double_from_address,
	thumb_output_move_mem_multiple, thumb_reload_out_hi,
	arm_emit_vector_const, arm_dbx_register_number): Likewise.
	* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
	* config/arm/arm.md (thumb_extendhisi2,
	*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
	*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
	thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
	*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
	* config/arm/cirrus.md (*cirrus_arm_movdi,
	*cirrus_movdf_hard_insn): Likewise.
	* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.

From-SVN: r98850
parent 4845b383
2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
gcc_unreachable as appropriate.
(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
* config/arm/arm.c (arm_override_options, arm_compute_func_type,
use_return_insn, const_ok_for_op, arm_gen_constant,
arm_canonicalize_comparison, legitimize_pic_address,
thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
arm_cirrus_insn_p, cirrus_reorg, minmax_code,
load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
output_call, output_mov_long_double_fpa_from_arm,
output_mov_long_double_arm_from_fpa,
output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
output_move_double, arithmetic_instr, shift_op, int_log2,
output_return_instruction, arm_output_function_prologue,
arm_output_epilogue, arm_output_function_epilogue,
emit_multi_reg_push, arm_get_frame_offsets,
arm_compute_initial_elimination_offset, arm_expand_prologue,
arm_print_operand, arm_assemble_integer, get_arm_condition_code,
arm_final_prescan_insn, arm_init_iwmmxt_builtins,
arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
thumb_compute_initial_elimination_offset,
thumb_output_function_prologue, thumb_load_double_from_address,
thumb_output_move_mem_multiple, thumb_reload_out_hi,
arm_emit_vector_const, arm_dbx_register_number): Likewise.
* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
* config/arm/arm.md (thumb_extendhisi2,
*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
* config/arm/cirrus.md (*cirrus_arm_movdi,
*cirrus_movdf_hard_insn): Likewise.
* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2005-04-27 Kazu Hirata <kazu@cs.umass.edu> 2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow.h (ssa_names): Change the type to VEC(tree,gc). * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
......
...@@ -2565,7 +2565,7 @@ extern int making_const_table; ...@@ -2565,7 +2565,7 @@ extern int making_const_table;
} \ } \
\ \
default: \ default: \
abort(); \ gcc_unreachable (); \
} \ } \
} \ } \
else if (GET_CODE (X) == PRE_INC || GET_CODE (X) == POST_INC \ else if (GET_CODE (X) == PRE_INC || GET_CODE (X) == POST_INC \
...@@ -2573,8 +2573,7 @@ extern int making_const_table; ...@@ -2573,8 +2573,7 @@ extern int making_const_table;
{ \ { \
extern enum machine_mode output_memory_reference_mode; \ extern enum machine_mode output_memory_reference_mode; \
\ \
if (GET_CODE (XEXP (X, 0)) != REG) \ gcc_assert (GET_CODE (XEXP (X, 0)) == REG); \
abort (); \
\ \
if (GET_CODE (X) == PRE_DEC || GET_CODE (X) == PRE_INC) \ if (GET_CODE (X) == PRE_DEC || GET_CODE (X) == PRE_INC) \
asm_fprintf (STREAM, "[%r, #%s%d]!", \ asm_fprintf (STREAM, "[%r, #%s%d]!", \
...@@ -2618,8 +2617,7 @@ extern int making_const_table; ...@@ -2618,8 +2617,7 @@ extern int making_const_table;
asm_fprintf (STREAM, "%r!", REGNO (XEXP (X, 0))); \ asm_fprintf (STREAM, "%r!", REGNO (XEXP (X, 0))); \
else if (GET_CODE (X) == PLUS) \ else if (GET_CODE (X) == PLUS) \
{ \ { \
if (GET_CODE (XEXP (X, 0)) != REG) \ gcc_assert (GET_CODE (XEXP (X, 0)) == REG); \
abort (); \
if (GET_CODE (XEXP (X, 1)) == CONST_INT) \ if (GET_CODE (XEXP (X, 1)) == CONST_INT) \
asm_fprintf (STREAM, "[%r, #%wd]", \ asm_fprintf (STREAM, "[%r, #%wd]", \
REGNO (XEXP (X, 0)), \ REGNO (XEXP (X, 0)), \
......
...@@ -3614,12 +3614,8 @@ ...@@ -3614,12 +3614,8 @@
ops[1] = mem; ops[1] = mem;
ops[2] = const0_rtx; ops[2] = const0_rtx;
} }
if (GET_CODE (ops[1]) != REG) gcc_assert (GET_CODE (ops[1]) == REG);
{
debug_rtx (ops[1]);
abort ();
}
ops[0] = operands[0]; ops[0] = operands[0];
ops[3] = operands[2]; ops[3] = operands[2];
...@@ -3634,7 +3630,7 @@ ...@@ -3634,7 +3630,7 @@
;; We used to have an early-clobber on the scratch register here. ;; We used to have an early-clobber on the scratch register here.
;; However, there's a bug somewhere in reload which means that this ;; However, there's a bug somewhere in reload which means that this
;; can be partially ignored during spill allocation if the memory ;; can be partially ignored during spill allocation if the memory
;; address also needs reloading; this causes an abort later on when ;; address also needs reloading; this causes us to die later on when
;; we try to verify the operands. Fortunately, we don't really need ;; we try to verify the operands. Fortunately, we don't really need
;; the early-clobber: we can always use operand 0 if operand 2 ;; the early-clobber: we can always use operand 0 if operand 2
;; overlaps the address. ;; overlaps the address.
...@@ -3685,11 +3681,7 @@ ...@@ -3685,11 +3681,7 @@
ops[2] = const0_rtx; ops[2] = const0_rtx;
} }
if (GET_CODE (ops[1]) != REG) gcc_assert (GET_CODE (ops[1]) == REG);
{
debug_rtx (ops[1]);
abort ();
}
ops[0] = operands[0]; ops[0] = operands[0];
if (reg_mentioned_p (operands[2], ops[1])) if (reg_mentioned_p (operands[2], ops[1]))
...@@ -3949,10 +3941,9 @@ ...@@ -3949,10 +3941,9 @@
else else
output_asm_insn (\"mov\\t%0, %2\;ldrsb\\t%0, [%1, %0]\", ops); output_asm_insn (\"mov\\t%0, %2\;ldrsb\\t%0, [%1, %0]\", ops);
} }
else if (GET_CODE (b) != REG)
abort ();
else else
{ {
gcc_assert (GET_CODE (b) == REG);
if (REGNO (b) == REGNO (ops[0])) if (REGNO (b) == REGNO (ops[0]))
{ {
output_asm_insn (\"ldrb\\t%0, [%2, %1]\", ops); output_asm_insn (\"ldrb\\t%0, [%2, %1]\", ops);
...@@ -4032,10 +4023,9 @@ ...@@ -4032,10 +4023,9 @@
else else
output_asm_insn (\"mov\\t%0, %2\;ldrsb\\t%0, [%1, %0]\", ops); output_asm_insn (\"mov\\t%0, %2\;ldrsb\\t%0, [%1, %0]\", ops);
} }
else if (GET_CODE (b) != REG)
abort ();
else else
{ {
gcc_assert (GET_CODE (b) == REG);
if (REGNO (b) == REGNO (ops[0])) if (REGNO (b) == REGNO (ops[0]))
{ {
output_asm_insn (\"ldrb\\t%0, [%2, %1]\", ops); output_asm_insn (\"ldrb\\t%0, [%2, %1]\", ops);
...@@ -4778,8 +4768,7 @@ ...@@ -4778,8 +4768,7 @@
{ {
/* Writing a constant to memory needs a scratch, which should /* Writing a constant to memory needs a scratch, which should
be handled with SECONDARY_RELOADs. */ be handled with SECONDARY_RELOADs. */
if (GET_CODE (operands[0]) != REG) gcc_assert (GET_CODE (operands[0]) == REG);
abort ();
operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0); operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0);
emit_insn (gen_movsi (operands[0], operands[1])); emit_insn (gen_movsi (operands[0], operands[1]));
...@@ -4821,8 +4810,7 @@ ...@@ -4821,8 +4810,7 @@
{ {
/* Writing a constant to memory needs a scratch, which should /* Writing a constant to memory needs a scratch, which should
be handled with SECONDARY_RELOADs. */ be handled with SECONDARY_RELOADs. */
if (GET_CODE (operands[0]) != REG) gcc_assert (GET_CODE (operands[0]) == REG);
abort ();
operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0); operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0);
emit_insn (gen_movsi (operands[0], operands[1])); emit_insn (gen_movsi (operands[0], operands[1]));
...@@ -4846,7 +4834,7 @@ ...@@ -4846,7 +4834,7 @@
case 3: return \"mov %0, %1\"; case 3: return \"mov %0, %1\";
case 4: return \"mov %0, %1\"; case 4: return \"mov %0, %1\";
case 5: return \"mov %0, %1\"; case 5: return \"mov %0, %1\";
default: abort (); default: gcc_unreachable ();
case 1: case 1:
/* The stack pointer can end up being taken as an index register. /* The stack pointer can end up being taken as an index register.
Catch this case here and deal with it. */ Catch this case here and deal with it. */
...@@ -4957,7 +4945,7 @@ ...@@ -4957,7 +4945,7 @@
(clobber (match_operand:SI 2 "register_operand" "=&l"))] (clobber (match_operand:SI 2 "register_operand" "=&l"))]
"TARGET_THUMB" "TARGET_THUMB"
"* "*
abort ();" gcc_unreachable ();"
) )
;; We use a DImode scratch because we may occasionally need an additional ;; We use a DImode scratch because we may occasionally need an additional
...@@ -5052,8 +5040,7 @@ ...@@ -5052,8 +5040,7 @@
{ {
/* Writing a constant to memory needs a scratch, which should /* Writing a constant to memory needs a scratch, which should
be handled with SECONDARY_RELOADs. */ be handled with SECONDARY_RELOADs. */
if (GET_CODE (operands[0]) != REG) gcc_assert (GET_CODE (operands[0]) == REG);
abort ();
operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0); operands[0] = gen_rtx_SUBREG (SImode, operands[0], 0);
emit_insn (gen_movsi (operands[0], operands[1])); emit_insn (gen_movsi (operands[0], operands[1]));
...@@ -7059,8 +7046,7 @@ ...@@ -7059,8 +7046,7 @@
(pc)))] (pc)))]
"TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
"* "*
if (arm_ccfsm_state != 0) gcc_assert (!arm_ccfsm_state);
abort ();
return \"bvs\\t%l0\;beq\\t%l0\"; return \"bvs\\t%l0\;beq\\t%l0\";
" "
...@@ -7076,8 +7062,7 @@ ...@@ -7076,8 +7062,7 @@
(pc)))] (pc)))]
"TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
"* "*
if (arm_ccfsm_state != 0) gcc_assert (!arm_ccfsm_state);
abort ();
return \"bmi\\t%l0\;bgt\\t%l0\"; return \"bmi\\t%l0\;bgt\\t%l0\";
" "
...@@ -7112,8 +7097,7 @@ ...@@ -7112,8 +7097,7 @@
(label_ref (match_operand 0 "" ""))))] (label_ref (match_operand 0 "" ""))))]
"TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
"* "*
if (arm_ccfsm_state != 0) gcc_assert (!arm_ccfsm_state);
abort ();
return \"bmi\\t%l0\;bgt\\t%l0\"; return \"bmi\\t%l0\;bgt\\t%l0\";
" "
...@@ -7129,8 +7113,7 @@ ...@@ -7129,8 +7113,7 @@
(label_ref (match_operand 0 "" ""))))] (label_ref (match_operand 0 "" ""))))]
"TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
"* "*
if (arm_ccfsm_state != 0) gcc_assert (!arm_ccfsm_state);
abort ();
return \"bvs\\t%l0\;beq\\t%l0\"; return \"bvs\\t%l0\;beq\\t%l0\";
" "
...@@ -7286,14 +7269,14 @@ ...@@ -7286,14 +7269,14 @@
; [(set (match_operand:SI 0 "s_register_operand" "") ; [(set (match_operand:SI 0 "s_register_operand" "")
; (uneq:SI (match_dup 1) (const_int 0)))] ; (uneq:SI (match_dup 1) (const_int 0)))]
; "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" ; "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
; "abort ();" ; "gcc_unreachable ();"
; ) ; )
; ;
; (define_expand "sltgt" ; (define_expand "sltgt"
; [(set (match_operand:SI 0 "s_register_operand" "") ; [(set (match_operand:SI 0 "s_register_operand" "")
; (ltgt:SI (match_dup 1) (const_int 0)))] ; (ltgt:SI (match_dup 1) (const_int 0)))]
; "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA" ; "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
; "abort ();" ; "gcc_unreachable ();"
; ) ; )
(define_insn "*mov_scc" (define_insn "*mov_scc"
......
...@@ -391,7 +391,7 @@ ...@@ -391,7 +391,7 @@
/* Shifting by 0 will just copy %1 into %0. */ /* Shifting by 0 will just copy %1 into %0. */
case 7: return \"cfsh64%?\\t%V0, %V1, #0\"; case 7: return \"cfsh64%?\\t%V0, %V1, #0\";
default: abort (); default: gcc_unreachable ();
} }
}" }"
[(set_attr "length" " 8, 8, 8, 8, 8, 4, 4, 4") [(set_attr "length" " 8, 8, 8, 8, 8, 4, 4, 4")
...@@ -468,7 +468,7 @@ ...@@ -468,7 +468,7 @@
case 7: return \"cfmvdlr\\t%V0, %Q1\;cfmvdhr%?\\t%V0, %R1\"; case 7: return \"cfmvdlr\\t%V0, %Q1\;cfmvdhr%?\\t%V0, %R1\";
case 8: return \"cfmvrdl%?\\t%Q0, %V1\;cfmvrdh%?\\t%R0, %V1\"; case 8: return \"cfmvrdl%?\\t%Q0, %V1\;cfmvrdh%?\\t%R0, %V1\";
case 9: return \"cfstrd%?\\t%V1, %0\"; case 9: return \"cfstrd%?\\t%V1, %0\";
default: abort (); default: gcc_unreachable ();
} }
}" }"
[(set_attr "type" "load1,store2, *,store2,load1, *, load1, *, *,store2") [(set_attr "type" "load1,store2, *,store2,load1, *, load1, *, *,store2")
......
...@@ -108,13 +108,11 @@ arm_mark_dllexport (decl) ...@@ -108,13 +108,11 @@ arm_mark_dllexport (decl)
tree idp; tree idp;
rtlname = XEXP (DECL_RTL (decl), 0); rtlname = XEXP (DECL_RTL (decl), 0);
if (GET_CODE (rtlname) == SYMBOL_REF) if (GET_CODE (rtlname) == MEM)
oldname = XSTR (rtlname, 0); rtlname = XEXP (rtlname, 0);
else if (GET_CODE (rtlname) == MEM gcc_assert (GET_CODE (rtlname) == SYMBOL_REF);
&& GET_CODE (XEXP (rtlname, 0)) == SYMBOL_REF) oldname = XSTR (rtlname, 0);
oldname = XSTR (XEXP (rtlname, 0), 0);
else
abort ();
if (arm_dllimport_name_p (oldname)) if (arm_dllimport_name_p (oldname))
oldname += 9; oldname += 9;
else if (arm_dllexport_name_p (oldname)) else if (arm_dllexport_name_p (oldname))
...@@ -147,17 +145,13 @@ arm_mark_dllimport (decl) ...@@ -147,17 +145,13 @@ arm_mark_dllimport (decl)
rtlname = XEXP (DECL_RTL (decl), 0); rtlname = XEXP (DECL_RTL (decl), 0);
if (GET_CODE (rtlname) == SYMBOL_REF) if (GET_CODE (rtlname) == MEM)
oldname = XSTR (rtlname, 0); rtlname = XEXP (rtlname, 0);
else if (GET_CODE (rtlname) == MEM gcc_assert (GET_CODE (rtlname) == SYMBOL_REF);
&& GET_CODE (XEXP (rtlname, 0)) == SYMBOL_REF) oldname = XSTR (rtlname, 0);
oldname = XSTR (XEXP (rtlname, 0), 0);
else
abort ();
if (arm_dllexport_name_p (oldname)) gcc_assert (!arm_dllexport_name_p (oldname));
abort (); /* this shouldn't happen */ if (arm_dllimport_name_p (oldname))
else if (arm_dllimport_name_p (oldname))
return; /* already done */ return; /* already done */
/* ??? One can well ask why we're making these checks here, /* ??? One can well ask why we're making these checks here,
......
...@@ -158,7 +158,7 @@ ...@@ -158,7 +158,7 @@
case 7: case 7:
return \"fstd%?\\t%P1, %0\\t%@ int\"; return \"fstd%?\\t%P1, %0\\t%@ int\";
default: default:
abort (); gcc_unreachable ();
} }
" "
[(set_attr "type" "*,load2,store2,r_2_f,f_2_r,ffarith,f_load,f_store") [(set_attr "type" "*,load2,store2,r_2_f,f_2_r,ffarith,f_load,f_store")
...@@ -217,7 +217,7 @@ ...@@ -217,7 +217,7 @@
case 7: case 7:
return \"#\"; return \"#\";
default: default:
abort (); gcc_unreachable ();
} }
} }
" "
......
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