summaryrefslogtreecommitdiff
path: root/gcc/jump.c
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-21 14:38:01 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-21 14:38:01 +0000
commit0fc1e6fa55ab2c412298e947ef56fff54d256d8d (patch)
tree11d1dc2d20769a88c452555a826eb05acdb56978 /gcc/jump.c
parent4a4d48d5d8e969366d5109f5508b3bb53f0693a9 (diff)
downloadgcc-0fc1e6fa55ab2c412298e947ef56fff54d256d8d.tar.gz
2005-03-21 Paolo Bonzini <bonzini@gnu.org>
* combine.c (combine_simplify_rtx, simplify_if_then_else, simplify_logical, if_then_else_cond, known_cond, simplify_comparison): Adjust calls to reverse_comparison. Don't use combine_reversed_comparison_code). (combine_reversed_comparison_code): Remove. (reversed_comparison): Using reversed_comparison_code, move it... * jump.c (reversed_comparison): ... here. * rtl.h (reversed_comparison): Add prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96801 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/jump.c')
-rw-r--r--gcc/jump.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index a120300fc09..dc81c521851 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -449,6 +449,20 @@ reversed_comparison_code (rtx comparison, rtx insn)
XEXP (comparison, 0),
XEXP (comparison, 1), insn);
}
+
+/* Return comparison with reversed code of EXP.
+ Return NULL_RTX in case we fail to do the reversal. */
+rtx
+reversed_comparison (rtx exp, enum machine_mode mode)
+{
+ enum rtx_code reversed_code = reversed_comparison_code (exp, NULL_RTX);
+ if (reversed_code == UNKNOWN)
+ return NULL_RTX;
+ else
+ return simplify_gen_relational (reversed_code, mode, VOIDmode,
+ XEXP (exp, 0), XEXP (exp, 1));
+}
+
/* Given an rtx-code for a comparison, return the code for the negated
comparison. If no such code exists, return UNKNOWN.