-static void
-write_units (num_units, multiplicity, simultaneity,
- ready_cost, issue_delay, blockage)
- int num_units;
- struct range *multiplicity;
- struct range *simultaneity;
- struct range *ready_cost;
- struct range *issue_delay;
- struct range *blockage;
-{
- int i, q_size;
-
- printf ("#define INSN_SCHEDULING\n\n");
- printf ("extern int result_ready_cost PARAMS ((rtx));\n");
- printf ("extern int function_units_used PARAMS ((rtx));\n\n");
- printf ("extern const struct function_unit_desc\n");
- printf ("{\n");
- printf (" const char *const name;\n");
- printf (" const int bitmask;\n");
- printf (" const int multiplicity;\n");
- printf (" const int simultaneity;\n");
- printf (" const int default_cost;\n");
- printf (" const int max_issue_delay;\n");
- printf (" int (*const ready_cost_function) PARAMS ((rtx));\n");
- printf (" int (*const conflict_cost_function) PARAMS ((rtx, rtx));\n");
- printf (" const int max_blockage;\n");
- printf (" unsigned int (*const blockage_range_function) PARAMS ((rtx));\n");
- printf (" int (*const blockage_function) PARAMS ((rtx, rtx));\n");
- printf ("} function_units[];\n\n");
- printf ("#define FUNCTION_UNITS_SIZE %d\n", num_units);
- printf ("#define MIN_MULTIPLICITY %d\n", multiplicity->min);
- printf ("#define MAX_MULTIPLICITY %d\n", multiplicity->max);
- printf ("#define MIN_SIMULTANEITY %d\n", simultaneity->min);
- printf ("#define MAX_SIMULTANEITY %d\n", simultaneity->max);
- printf ("#define MIN_READY_COST %d\n", ready_cost->min);
- printf ("#define MAX_READY_COST %d\n", ready_cost->max);
- printf ("#define MIN_ISSUE_DELAY %d\n", issue_delay->min);
- printf ("#define MAX_ISSUE_DELAY %d\n", issue_delay->max);
- printf ("#define MIN_BLOCKAGE %d\n", blockage->min);
- printf ("#define MAX_BLOCKAGE %d\n", blockage->max);
- for (i = 0; (1 << i) < blockage->max; i++)
- ;
- printf ("#define BLOCKAGE_BITS %d\n", i + 1);
-
- /* INSN_QUEUE_SIZE is a power of two larger than MAX_BLOCKAGE and
- MAX_READY_COST. This is the longest time an isnsn may be queued. */
- i = MAX (blockage->max, ready_cost->max);
- for (q_size = 1; q_size <= i; q_size <<= 1)
- ;
- printf ("#define INSN_QUEUE_SIZE %d\n", q_size);
-}
-
-extern int main PARAMS ((int, char **));
-