NetBSD/gnu/usr.bin/gcc2/arch/sparc/insn-attr.h

96 lines
3.1 KiB
C

/* Generated automatically by the program `genattr'
from the machine description file `md'. */
#ifndef PROTO
#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
#define PROTO(ARGS) ARGS
#else
#define PROTO(ARGS) ()
#endif
#endif
#define HAVE_ATTR_alternative
#define get_attr_alternative(insn) which_alternative
#define HAVE_ATTR_type
enum attr_type {TYPE_MOVE, TYPE_UNARY, TYPE_BINARY, TYPE_COMPARE, TYPE_LOAD, TYPE_STORE, TYPE_UNCOND_BRANCH, TYPE_BRANCH, TYPE_CALL, TYPE_CALL_NO_DELAY_SLOT, TYPE_ADDRESS, TYPE_FPLOAD, TYPE_FPSTORE, TYPE_FP, TYPE_FPCMP, TYPE_FPMUL, TYPE_FPDIV, TYPE_FPSQRT, TYPE_MULTI, TYPE_MISC};
extern enum attr_type get_attr_type ();
#define HAVE_ATTR_use_clobbered
enum attr_use_clobbered {USE_CLOBBERED_FALSE, USE_CLOBBERED_TRUE};
extern enum attr_use_clobbered get_attr_use_clobbered ();
#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 HAVE_ATTR_in_call_delay
enum attr_in_call_delay {IN_CALL_DELAY_FALSE, IN_CALL_DELAY_TRUE};
extern enum attr_in_call_delay get_attr_in_call_delay ();
#define DELAY_SLOTS
extern int num_delay_slots PROTO((rtx));
extern int eligible_for_delay PROTO((rtx, int, rtx, int));
extern int const_num_delay_slots PROTO((rtx));
#define HAVE_ATTR_in_branch_delay
enum attr_in_branch_delay {IN_BRANCH_DELAY_FALSE, IN_BRANCH_DELAY_TRUE};
extern enum attr_in_branch_delay get_attr_in_branch_delay ();
#define HAVE_ATTR_in_uncond_branch_delay
enum attr_in_uncond_branch_delay {IN_UNCOND_BRANCH_DELAY_FALSE, IN_UNCOND_BRANCH_DELAY_TRUE};
extern enum attr_in_uncond_branch_delay get_attr_in_uncond_branch_delay ();
#define HAVE_ATTR_in_annul_branch_delay
enum attr_in_annul_branch_delay {IN_ANNUL_BRANCH_DELAY_FALSE, IN_ANNUL_BRANCH_DELAY_TRUE};
extern enum attr_in_annul_branch_delay get_attr_in_annul_branch_delay ();
#define ANNUL_IFFALSE_SLOTS
extern int eligible_for_annul_false ();
#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 3
#define MIN_MULTIPLICITY 1
#define MAX_MULTIPLICITY 1
#define MIN_SIMULTANEITY 1
#define MAX_SIMULTANEITY 1
#define MIN_READY_COST 2
#define MAX_READY_COST 63
#define MIN_ISSUE_DELAY 1
#define MAX_ISSUE_DELAY 1
#define MIN_BLOCKAGE 2
#define MAX_BLOCKAGE 63
#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