/* Generated automatically by the program `genattr'
from the machine description file `md'.  */

#define HAVE_ATTR_alternative
#define get_attr_alternative(insn) which_alternative
#define HAVE_ATTR_cpu
enum attr_cpu {CPU_EV4, CPU_EV5, CPU_EV6};
extern enum attr_cpu get_attr_cpu ();

#define HAVE_ATTR_type
enum attr_type {TYPE_ILD, TYPE_FLD, TYPE_LDSYM, TYPE_IST, TYPE_FST, TYPE_IBR, TYPE_FBR, TYPE_JSR, TYPE_IADD, TYPE_ILOG, TYPE_SHIFT, TYPE_ICMOV, TYPE_FCMOV, TYPE_ICMP, TYPE_IMUL, TYPE_FADD, TYPE_FMUL, TYPE_FCPYS, TYPE_FDIV, TYPE_FSQRT, TYPE_MISC, TYPE_MVI, TYPE_FTOI, TYPE_ITOF, TYPE_MULTI};
extern enum attr_type get_attr_type ();

#define HAVE_ATTR_opsize
enum attr_opsize {OPSIZE_SI, OPSIZE_DI, OPSIZE_UDI};
extern enum attr_opsize get_attr_opsize ();

#define HAVE_ATTR_trap
enum attr_trap {TRAP_NO, TRAP_YES};
extern enum attr_trap get_attr_trap ();

#define HAVE_ATTR_length
extern int get_attr_length ();
extern void init_lengths ();
extern void shorten_branches PROTO((rtx));
extern int insn_default_length PROTO((rtx));
extern int insn_variable_length_p PROTO((rtx));
extern int insn_current_length PROTO((rtx));

extern int *insn_addresses;
extern int insn_current_address;

#define INSN_SCHEDULING

extern int result_ready_cost PROTO((rtx));
extern int function_units_used PROTO((rtx));

extern struct function_unit_desc
{
  char *name;
  int bitmask;
  int multiplicity;
  int simultaneity;
  int default_cost;
  int max_issue_delay;
  int (*ready_cost_function) ();
  int (*conflict_cost_function) ();
  int max_blockage;
  unsigned int (*blockage_range_function) ();
  int (*blockage_function) ();
} function_units[];

#define FUNCTION_UNITS_SIZE 22
#define MIN_MULTIPLICITY 1
#define MAX_MULTIPLICITY 4
#define MIN_SIMULTANEITY 0
#define MAX_SIMULTANEITY 1
#define MIN_READY_COST 1
#define MAX_READY_COST 63
#define MIN_ISSUE_DELAY 1
#define MAX_ISSUE_DELAY 59
#define MIN_BLOCKAGE 1
#define MAX_BLOCKAGE 59
#define BLOCKAGE_BITS 7
#define INSN_QUEUE_SIZE 64

#define ATTR_FLAG_forward	0x1
#define ATTR_FLAG_backward	0x2
#define ATTR_FLAG_likely	0x4
#define ATTR_FLAG_very_likely	0x8
#define ATTR_FLAG_unlikely	0x10
#define ATTR_FLAG_very_unlikely	0x20
