diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-04-03 09:37:26 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-04-03 09:37:26 -0700 |
commit | 31031eddacda46a500b2390f52cd4474bcaf84ca (patch) | |
tree | 28111445709b1e369e559db59f8c46cf5b81a203 /gcc/recog.h | |
parent | 732dcb6f2a8254467d15cffc3cebf3467c4d010f (diff) | |
download | gcc-31031eddacda46a500b2390f52cd4474bcaf84ca.zip gcc-31031eddacda46a500b2390f52cd4474bcaf84ca.tar.gz gcc-31031eddacda46a500b2390f52cd4474bcaf84ca.tar.bz2 |
dummy commit before merge
From-SVN: r18980
Diffstat (limited to 'gcc/recog.h')
-rw-r--r-- | gcc/recog.h | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/gcc/recog.h b/gcc/recog.h index cd270ed..8918c89 100644 --- a/gcc/recog.h +++ b/gcc/recog.h @@ -1,5 +1,5 @@ /* Declarations for interface to insn recognizer and insn-output.c. - Copyright (C) 1987, 1996 Free Software Foundation, Inc. + Copyright (C) 1987, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU CC. @@ -20,37 +20,49 @@ Boston, MA 02111-1307, USA. */ #include "gansidecl.h" -/* Recognize an insn and return its insn-code, - which is the sequence number of the DEFINE_INSN that it matches. - If the insn does not match, return -1. */ - -extern int recog_memoized PROTO((rtx)); - -/* Determine whether a proposed change to an insn or MEM will make it - invalid. Make the change if not. */ - -extern int validate_change PROTO((rtx, rtx *, rtx, int)); - -/* Apply a group of changes if valid. */ - -extern int apply_change_group PROTO((void)); - -/* Return the number of changes so far in the current group. */ - -extern int num_validated_changes PROTO((void)); - -/* Retract some changes. */ - -extern void cancel_changes PROTO((int)); +extern void init_recog PROTO((void)); +extern void init_recog_no_volatile PROTO((void)); +extern int recog_memoized PROTO((rtx)); +extern int check_asm_operands PROTO((rtx)); +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 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)); +extern int reg_fits_class_p PROTO((rtx, enum reg_class, int, + enum machine_mode)); +extern rtx *find_single_use PROTO((rtx, rtx, rtx *)); + +extern int general_operand PROTO((rtx, enum machine_mode)); +extern int address_operand PROTO((rtx, enum machine_mode)); +extern int register_operand PROTO((rtx, enum machine_mode)); +extern int scratch_operand PROTO((rtx, enum machine_mode)); +extern int immediate_operand PROTO((rtx, enum machine_mode)); +extern int const_int_operand PROTO((rtx, enum machine_mode)); +extern int cosnt_double_operand PROTO((rtx, enum machine_mode)); +extern int nonimmediate_operand PROTO((rtx, enum machine_mode)); +extern int nonmemory_operand PROTO((rtx, enum machine_mode)); +extern int push_operand PROTO((rtx, enum machine_mode)); +extern int memory_operand PROTO((rtx, enum machine_mode)); +extern int indirect_operand PROTO((rtx, enum machine_mode)); +extern int mode_independent_operand PROTO((rtx, enum machine_mode)); +extern int comparison_operator PROTO((rtx, enum machine_mode)); + +extern int offsettable_memref_p PROTO((rtx)); +extern int offsettable_nonstrict_memref_p PROTO((rtx)); +extern int offsettable_address_p PROTO((int, enum machine_mode, rtx)); +extern int mode_dependent_address_p PROTO((rtx)); + +extern int recog PROTO((rtx, rtx, int *)); +extern void add_clobbers PROTO((rtx, int)); +extern void insn_extract PROTO((rtx)); /* Nonzero means volatile operands are recognized. */ - extern int volatile_ok; -/* Extract the operands from an insn that has been recognized. */ - -extern void insn_extract PROTO((rtx)); - /* The following vectors hold the results from insn_extract. */ /* Indexed by N, gives value of operand N. */ |