aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.def
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-06 17:48:53 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-06 17:48:53 -0700
commit3262c1f5523c538ecdd39d04babbd66f93c7c3bc (patch)
tree3b0e97f95773667e75f99846a5ed03bc396e5a12 /gcc/rtl.def
parent9444af72b4d9a9b5cb9289e13a624ff5731b2797 (diff)
downloadgcc-3262c1f5523c538ecdd39d04babbd66f93c7c3bc.zip
gcc-3262c1f5523c538ecdd39d04babbd66f93c7c3bc.tar.gz
gcc-3262c1f5523c538ecdd39d04babbd66f93c7c3bc.tar.bz2
rtl.def (DEFINE_COND_EXEC): New.
* rtl.def (DEFINE_COND_EXEC): New. * md.texi: Document it. * gensupport.c (input_file): Remove. (struct queue_elem): Add lineno. (rtx_ready_queue): Remove. (errors): New. (predicable_default): New. (predicable_true, predicable_false): New. (define_attr_queue, define_attr_tail): New. (define_insn_queue, define_insn_tail): New. (define_cond_exec_queue, define_cond_exec_tail): New. (other_queue, other_tail): New. (queue_pattern): New. (process_rtx): Add patterns to the appropriate queues. (is_predicable, identify_predicable_attribute): New. (n_alternatives, collect_insn_data): New. (alter_predicate_for_insn, alter_test_for_insn): New. (shift_output_template, alter_output_for_insn): New. (process_one_cond_exec, process_define_cond_exec): New. (init_md_reader): Read the entire file. Process define_cond_exec. (read_md_rtx): Return elements from the queues. From-SVN: r33751
Diffstat (limited to 'gcc/rtl.def')
-rw-r--r--gcc/rtl.def13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def
index 29cb5ee..d9a35f5 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -310,6 +310,19 @@ DEF_RTL_EXPR(DEFINE_FUNCTION_UNIT, "define_function_unit", "siieiiV", 'x')
/* Define attribute computation for `asm' instructions. */
DEF_RTL_EXPR(DEFINE_ASM_ATTRIBUTES, "define_asm_attributes", "V", 'x' )
+/* Definition of a conditional execution meta operation. Automatically
+ generates new instances of DEFINE_INSN, selected by having attribute
+ "predicable" true. The new pattern will contain a COND_EXEC and the
+ predicate at top-level.
+
+ Operand:
+ 0: The predicate pattern. The top-level form should match a
+ relational operator. Operands should have only one alternative.
+ 1: A C expression giving an additional condition for recognizing
+ the generated pattern.
+ 2: A template or C code to produce assembler output. */
+DEF_RTL_EXPR(DEFINE_COND_EXEC, "define_cond_exec", "Ess", 'x')
+
/* SEQUENCE appears in the result of a `gen_...' function
for a DEFINE_EXPAND that wants to make several insns.
Its elements are the bodies of the insns that should be made.