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>
* calls.c (load_register_parameters): Add is_sibcall, sibcall_failure
......
......@@ -882,26 +882,30 @@ noce_try_addcc (if_info)
enum rtx_code code = reversed_comparison_code (cond, if_info->jump);
/* First try to use addcc pattern. */
start_sequence ();
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 (general_operand (XEXP (cond, 0), VOIDmode)
&& general_operand (XEXP (cond, 1), VOIDmode))
{
if (target != if_info->x)
noce_emit_move_insn (if_info->x, target);
start_sequence ();
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 ();
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
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