OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [gensupport.h] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* Declarations for rtx-reader support for gen* routines.
/* Declarations for rtx-reader support for gen* routines.
   Copyright (C) 2000, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
   Copyright (C) 2000, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify it under
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
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
Software Foundation; either version 3, or (at your option) any later
version.
version.
 
 
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.
for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
#ifndef GCC_GENSUPPORT_H
#ifndef GCC_GENSUPPORT_H
#define GCC_GENSUPPORT_H
#define GCC_GENSUPPORT_H
 
 
struct obstack;
struct obstack;
extern struct obstack *rtl_obstack;
extern struct obstack *rtl_obstack;
extern const char *in_fname;
extern const char *in_fname;
 
 
extern int init_md_reader_args_cb (int, char **, bool (*)(const char *));
extern int init_md_reader_args_cb (int, char **, bool (*)(const char *));
extern int init_md_reader_args (int, char **);
extern int init_md_reader_args (int, char **);
extern rtx read_md_rtx (int *, int *);
extern rtx read_md_rtx (int *, int *);
 
 
extern void message_with_line (int, const char *, ...)
extern void message_with_line (int, const char *, ...)
     ATTRIBUTE_PRINTF_2;
     ATTRIBUTE_PRINTF_2;
 
 
/* Set this to 0 to disable automatic elision of insn patterns which
/* Set this to 0 to disable automatic elision of insn patterns which
   can never be used in this configuration.  See genconditions.c.
   can never be used in this configuration.  See genconditions.c.
   Must be set before calling init_md_reader.  */
   Must be set before calling init_md_reader.  */
extern int insn_elision;
extern int insn_elision;
 
 
/* If the C test passed as the argument can be evaluated at compile
/* 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
   time, return its truth value; else return -1.  The test must have
   appeared somewhere in the machine description when genconditions
   appeared somewhere in the machine description when genconditions
   was run.  */
   was run.  */
extern int maybe_eval_c_test (const char *);
extern int maybe_eval_c_test (const char *);
 
 
/* Add an entry to the table of conditions.  Used by genconditions and
/* Add an entry to the table of conditions.  Used by genconditions and
   by read-rtl.c.  */
   by read-rtl.c.  */
extern void add_c_test (const char *, int);
extern void add_c_test (const char *, int);
 
 
/* This structure is used internally by gensupport.c and genconditions.c.  */
/* This structure is used internally by gensupport.c and genconditions.c.  */
struct c_test
struct c_test
{
{
  const char *expr;
  const char *expr;
  int value;
  int value;
};
};
 
 
#ifdef __HASHTAB_H__
#ifdef __HASHTAB_H__
extern hashval_t hash_c_test (const void *);
extern hashval_t hash_c_test (const void *);
extern int cmp_c_test (const void *, const void *);
extern int cmp_c_test (const void *, const void *);
extern void traverse_c_tests (htab_trav, void *);
extern void traverse_c_tests (htab_trav, void *);
#endif
#endif
 
 
extern int n_comma_elts (const char *);
extern int n_comma_elts (const char *);
extern const char *scan_comma_elt (const char **);
extern const char *scan_comma_elt (const char **);
 
 
/* Predicate handling: helper functions and data structures.  */
/* Predicate handling: helper functions and data structures.  */
 
 
struct pred_data
struct pred_data
{
{
  struct pred_data *next;       /* for iterating over the set of all preds */
  struct pred_data *next;       /* for iterating over the set of all preds */
  const char *name;             /* predicate name */
  const char *name;             /* predicate name */
  bool special;                 /* special handling of modes? */
  bool special;                 /* special handling of modes? */
 
 
  /* data used primarily by genpreds.c */
  /* data used primarily by genpreds.c */
  const char *c_block;          /* C test block */
  const char *c_block;          /* C test block */
  rtx exp;                      /* RTL test expression */
  rtx exp;                      /* RTL test expression */
 
 
  /* data used primarily by genrecog.c */
  /* data used primarily by genrecog.c */
  enum rtx_code singleton;      /* if pred takes only one code, that code */
  enum rtx_code singleton;      /* if pred takes only one code, that code */
  bool allows_non_lvalue;       /* if pred allows non-lvalue expressions */
  bool allows_non_lvalue;       /* if pred allows non-lvalue expressions */
  bool allows_non_const;        /* if pred allows non-const expressions */
  bool allows_non_const;        /* if pred allows non-const expressions */
  bool codes[NUM_RTX_CODE];     /* set of codes accepted */
  bool codes[NUM_RTX_CODE];     /* set of codes accepted */
};
};
 
 
extern struct pred_data *first_predicate;
extern struct pred_data *first_predicate;
extern struct pred_data *lookup_predicate (const char *);
extern struct pred_data *lookup_predicate (const char *);
extern void add_predicate (struct pred_data *);
extern void add_predicate (struct pred_data *);
 
 
#define FOR_ALL_PREDICATES(p) for (p = first_predicate; p; p = p->next)
#define FOR_ALL_PREDICATES(p) for (p = first_predicate; p; p = p->next)
 
 
/* This callback will be invoked whenever an rtl include directive is
/* This callback will be invoked whenever an rtl include directive is
   processed.  To be used for creation of the dependency file.  */
   processed.  To be used for creation of the dependency file.  */
extern void (*include_callback) (const char *);
extern void (*include_callback) (const char *);
 
 
#endif /* GCC_GENSUPPORT_H */
#endif /* GCC_GENSUPPORT_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.