/* Declarations for rtx-reader support for gen* routines.
- Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
+Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
for more details.
You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
#ifndef GCC_GENSUPPORT_H
#define GCC_GENSUPPORT_H
Must be set before calling init_md_reader. */
extern int insn_elision;
-/* If this is 1, the insn elision table doesn't even exist yet;
- maybe_eval_c_test will always return -1. This is distinct from
- insn_elision because genflags and gencodes need to see all the
- patterns, but treat elided patterns differently. */
-extern const int insn_elision_unavailable;
-
/* If the C test passed as the argument can be evaluated at compile
time, return its truth value; else return -1. The test must have
appeared somewhere in the machine description when genconditions
was run. */
extern int maybe_eval_c_test (const char *);
-/* This table should not be accessed directly; use maybe_eval_c_test. */
+/* Add an entry to the table of conditions. Used by genconditions and
+ by read-rtl.c. */
+extern void add_c_test (const char *, int);
+
+/* This structure is used internally by gensupport.c and genconditions.c. */
struct c_test
{
const char *expr;
int value;
};
-extern const struct c_test insn_conditions[];
-extern const size_t n_insn_conditions;
-
#ifdef __HASHTAB_H__
extern hashval_t hash_c_test (const void *);
extern int cmp_c_test (const void *, const void *);
+extern void traverse_c_tests (htab_trav, void *);
#endif
extern int n_comma_elts (const char *);