summaryrefslogtreecommitdiff
path: root/gcc/recog.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/recog.h')
-rw-r--r--gcc/recog.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/recog.h b/gcc/recog.h
index 1bf77b4d0fc..d96da77fccc 100644
--- a/gcc/recog.h
+++ b/gcc/recog.h
@@ -20,6 +20,13 @@ Boston, MA 02111-1307, USA. */
#include "gansidecl.h"
+/* Types of operands. */
+enum op_type {
+ OP_IN,
+ OP_OUT,
+ OP_INOUT
+};
+
extern void init_recog PROTO((void));
extern void init_recog_no_volatile PROTO((void));
extern int recog_memoized PROTO((rtx));
@@ -28,7 +35,7 @@ extern int validate_change PROTO((rtx, rtx *, rtx, int));
extern int apply_change_group PROTO((void));
extern int num_validated_changes PROTO((void));
extern void cancel_changes PROTO((int));
-extern int constrain_operands PROTO((int, int));
+extern int constrain_operands PROTO((int));
extern int memory_address_p PROTO((enum machine_mode, rtx));
extern int strict_memory_address_p PROTO((enum machine_mode, rtx));
extern int validate_replace_rtx PROTO((rtx, rtx, rtx));
@@ -103,6 +110,9 @@ extern enum machine_mode recog_operand_mode[];
/* Indexed by N, gives the constraint string for operand N. */
extern char *recog_constraints[];
+/* Indexed by N, gives the type (in, out, inout) for operand N. */
+extern enum op_type recog_op_type[];
+
#ifndef REGISTER_CONSTRAINTS
/* Indexed by N, nonzero if operand N should be an address. */
extern char recog_operand_address_p[];