Commit 5f1355ef by Jan Hubicka Committed by Jan Hubicka

ifcvt.c (noce_try_addcc): Do not call emit_conditional_add with weird operands.

Fri Jan 10 22:05:35 CET 2003  Jan Hubicka  <jh@suse.cz>

	* ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
	with weird operands.

From-SVN: r61169
parent 6787cc15
Fri Jan 10 22:05:35 CET 2003 Jan Hubicka <jh@suse.cz>
* ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
with weird operands.
2003-01-10 Dale Johannesen <dalej@apple.com> 2003-01-10 Dale Johannesen <dalej@apple.com>
* calls.c (load_register_parameters): Add is_sibcall, sibcall_failure * calls.c (load_register_parameters): Add is_sibcall, sibcall_failure
......
...@@ -882,26 +882,30 @@ noce_try_addcc (if_info) ...@@ -882,26 +882,30 @@ noce_try_addcc (if_info)
enum rtx_code code = reversed_comparison_code (cond, if_info->jump); enum rtx_code code = reversed_comparison_code (cond, if_info->jump);
/* First try to use addcc pattern. */ /* First try to use addcc pattern. */
start_sequence (); if (general_operand (XEXP (cond, 0), VOIDmode)
target = emit_conditional_add (if_info->x, code, && general_operand (XEXP (cond, 1), VOIDmode))
XEXP (cond, 0), XEXP (cond, 1),
VOIDmode,
if_info->b, XEXP (if_info->a, 1),
GET_MODE (if_info->x),
(code == LTU || code == GEU
|| code == LEU || code == GTU));
if (target)
{ {
if (target != if_info->x) start_sequence ();
noce_emit_move_insn (if_info->x, target); target = emit_conditional_add (if_info->x, code,
XEXP (cond, 0), XEXP (cond, 1),
VOIDmode,
if_info->b, XEXP (if_info->a, 1),
GET_MODE (if_info->x),
(code == LTU || code == GEU
|| code == LEU || code == GTU));
if (target)
{
if (target != if_info->x)
noce_emit_move_insn (if_info->x, target);
seq = get_insns (); seq = get_insns ();
end_sequence ();
emit_insn_before_scope (seq, if_info->jump,
INSN_SCOPE (if_info->insn_a));
return TRUE;
}
end_sequence (); end_sequence ();
emit_insn_before_scope (seq, if_info->jump,
INSN_SCOPE (if_info->insn_a));
return TRUE;
} }
end_sequence ();
/* If that fails, construct conditional increment or decrement using /* If that fails, construct conditional increment or decrement using
setcc. */ setcc. */
......
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