aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>1999-01-03 20:43:14 +0000
committerJeff Law <law@gcc.gnu.org>1999-01-03 13:43:14 -0700
commit362cc3d434b402148d579551c6f3ff4d4798a296 (patch)
treef3bee78195ed2ea424f2fed1ca5659020bca3406 /gcc/expr.h
parent1cd0a8edcaa31b8e1b76fc17ae41f3aa268fd5af (diff)
downloadgcc-362cc3d434b402148d579551c6f3ff4d4798a296.zip
gcc-362cc3d434b402148d579551c6f3ff4d4798a296.tar.gz
gcc-362cc3d434b402148d579551c6f3ff4d4798a296.tar.bz2
optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL for a target with HAVE_cc0 defined.
* optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL for a target with HAVE_cc0 defined. (emit_cmp_and_jump_insns): New function. * expr.h (emit_cmp_and_jump_insns): Prototype it. * loop.c (check_dbra_loop): Use it to replace calls to emit_cmp_insn and emit_jump_insn and to canonicalise the comparison if necessary. * unroll.c (unroll_loop): Likewise. From-SVN: r24471
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 134c095..c6740c2 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -614,6 +614,11 @@ extern void emit_0_to_1_insn PROTO((rtx));
extern void emit_cmp_insn PROTO((rtx, rtx, enum rtx_code, rtx,
enum machine_mode, int, int));
+/* Emit a pair of rtl insns to compare two rtx's and to jump
+ to a label if the comparison is true. */
+extern void emit_cmp_and_jump_insns PROTO((rtx, rtx, enum rtx_code, rtx,
+ enum machine_mode, int, int, rtx));
+
/* Nonzero if a compare of mode MODE can be done straightforwardly
(without splitting it into pieces). */
extern int can_compare_p PROTO((enum machine_mode));