Commit 4696acf0 by Zhenqiang Chen Committed by Zhenqiang Chen

ifcvt.c (HAVE_cbranchcc4): Define.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* ifcvt.c (HAVE_cbranchcc4): Define.
	(noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
	Use HAVE_cbranchcc4.

From-SVN: r217646
parent 7dd23670
2014-11-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
* ifcvt.c (HAVE_cbranchcc4): Define.
(noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Use HAVE_cbranchcc4.
2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
......@@ -75,6 +75,10 @@
+ 1)
#endif
#ifndef HAVE_cbranchcc4
#define HAVE_cbranchcc4 0
#endif
#define IFCVT_MULTIPLE_DUMPS 1
#define NULL_BLOCK ((basic_block) NULL)
......@@ -1459,10 +1463,16 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, enum rtx_code code,
end_sequence ();
}
/* Don't even try if the comparison operands are weird. */
/* Don't even try if the comparison operands are weird
except that the target supports cbranchcc4. */
if (! general_operand (cmp_a, GET_MODE (cmp_a))
|| ! general_operand (cmp_b, GET_MODE (cmp_b)))
return NULL_RTX;
{
if (!(HAVE_cbranchcc4)
|| GET_MODE_CLASS (GET_MODE (cmp_a)) != MODE_CC
|| cmp_b != const0_rtx)
return NULL_RTX;
}
#if HAVE_conditional_move
unsignedp = (code == LTU || code == GEU
......@@ -1909,7 +1919,7 @@ noce_get_alt_condition (struct noce_if_info *if_info, rtx target,
}
cond = canonicalize_condition (if_info->jump, cond, reverse,
earliest, target, false, true);
earliest, target, HAVE_cbranchcc4, true);
if (! cond || ! reg_mentioned_p (target, cond))
return NULL;
......@@ -2401,7 +2411,7 @@ noce_get_condition (rtx_insn *jump, rtx_insn **earliest, bool then_else_reversed
/* Otherwise, fall back on canonicalize_condition to do the dirty
work of manipulating MODE_CC values and COMPARE rtx codes. */
tmp = canonicalize_condition (jump, cond, reverse, earliest,
NULL_RTX, false, true);
NULL_RTX, HAVE_cbranchcc4, true);
/* We don't handle side-effects in the condition, like handling
REG_INC notes and making sure no duplicate conditions are emitted. */
......
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