diff options
author | Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> | 1998-10-17 01:28:57 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-10-16 19:28:57 -0600 |
commit | 0a578fee772469fe17168079f48b5b1a37b30522 (patch) | |
tree | 1c32cb74e56fdcc9e94bba84731ea49ea1e5910f /gcc/recog.h | |
parent | e02bdac1315357e99067a279385d0e39fa66ee33 (diff) | |
download | gcc-0a578fee772469fe17168079f48b5b1a37b30522.zip gcc-0a578fee772469fe17168079f48b5b1a37b30522.tar.gz gcc-0a578fee772469fe17168079f48b5b1a37b30522.tar.bz2 |
Makefile.in (insn-extract.o): Fix dependencies.
* Makefile.in (insn-extract.o): Fix dependencies.
* genextract.c (main): Generate includes for insn-config.h and
recog.h.
Delete generation of declarations which are now in recog.h.
* genrecog.c (main): Delete generation of definitions which are
now in recog.c.
* local-alloc.c (block_alloc): Use extract_insn and the variables
it sets up instead of looking up values by insn_code.
* recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
recog_dup_num): Define here instead of generating the definition in
genrecog.c.
(recog_n_operands, recog_n_dups, recog_n_alternatives,
recog_operand_mode, recog_constraints, recog_operand_address_p):
New variables.
(extract_insn): New function.
* recog.h (extract_insn): Declare function.
(which_alternative, recog_n_operands, recog_n_dups,
recog_n_alternatives, recog_operand_mode, recog_constraints,
recog_operand_address_p): Declare variables.
* regclass.c (n_occurrences): New static function.
* reload.c (n_occurrences): Delete function.
(find_reloads): Use extract_insn.
* reload.h (n_occurrences): Delete declaration.
From-SVN: r23147
Diffstat (limited to 'gcc/recog.h')
-rw-r--r-- | gcc/recog.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/recog.h b/gcc/recog.h index 980b76f..195efe3 100644 --- a/gcc/recog.h +++ b/gcc/recog.h @@ -61,10 +61,15 @@ 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)); +extern void extract_insn PROTO((rtx)); /* Nonzero means volatile operands are recognized. */ extern int volatile_ok; +/* Set by constrain_operands to the number of the alternative that + matched. */ +extern int which_alternative; + /* The following vectors hold the results from insn_extract. */ /* Indexed by N, gives value of operand N. */ @@ -81,6 +86,28 @@ extern rtx *recog_dup_loc[]; Nth duplicate-appearance of an operand. */ extern char recog_dup_num[]; +/* The next variables are set up by extract_insn. */ + +/* The number of operands of the insn. */ +extern int recog_n_operands; + +/* The number of MATCH_DUPs in the insn. */ +extern int recog_n_dups; + +/* The number of alternatives in the constraints for the insn. */ +extern int recog_n_alternatives; + +/* Indexed by N, gives the mode of operand N. */ +extern enum machine_mode recog_operand_mode[]; + +/* Indexed by N, gives the constraint string for operand N. */ +extern char *recog_constraints[]; + +#ifndef REGISTER_CONSTRAINTS +/* Indexed by N, nonzero if operand N should be an address. */ +extern char recog_operand_address_p[]; +#endif + /* Access the output function for CODE. */ #define OUT_FCN(CODE) (*insn_outfun[(int) (CODE)]) |