diff options
author | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-29 22:10:44 +0000 |
---|---|---|
committer | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-29 22:10:44 +0000 |
commit | 367dc0cdc359d5c2ee19a4d2f983f092d185f00e (patch) | |
tree | a4ec15aceec0b091ed501e69eca717c1e7b43626 /gcc/ifcvt.c | |
parent | bbb82bbf2e7663e15d60b83225ae3e363c55c11d (diff) | |
download | gcc-367dc0cdc359d5c2ee19a4d2f983f092d185f00e.tar.gz |
* flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
just the codes, call reversed_comparison_code ().
(ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
(not_reg_cond): Use reversed_comparison_code.
(and_reg_cond): Likewise.
* ifcvt.c (cond_exec_process_if_block): Likewise.
* doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86737 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 7473054757f..0767eb25008 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -491,6 +491,7 @@ cond_exec_process_if_block (ce_if_block_t * ce_info, { rtx start, end; rtx t, f; + enum rtx_code f_code; bb = block_fallthru (bb); start = first_active_insn (bb); @@ -510,11 +511,11 @@ cond_exec_process_if_block (ce_if_block_t * ce_info, if (! t) goto fail; - f = gen_rtx_fmt_ee (reverse_condition (GET_CODE (t)), - GET_MODE (t), - XEXP (t, 0), - XEXP (t, 1)); + f_code = reversed_comparison_code (t, BB_END (bb)); + if (f_code == UNKNOWN) + goto fail; + f = gen_rtx_fmt_ee (f_code, GET_MODE (t), XEXP (t, 0), XEXP (t, 1)); if (ce_info->and_and_p) { t = gen_rtx_AND (GET_MODE (t), true_expr, t); |