made reading of list from description file a bit more general
This commit is contained in:
parent
46c8b743f2
commit
7f5c3ac4f6
|
@ -29,35 +29,34 @@ STATIC get_instrs(f, s_p)
|
|||
FILE *f;
|
||||
cset *s_p;
|
||||
{
|
||||
/* Read a set of instructions from inputfile f into *s_p.
|
||||
* Such a set must be delimited by a number lower than
|
||||
* the number of the first EM mnemonic.
|
||||
/* Read a set of integers from inputfile f into *s_p.
|
||||
* Such a set must be delimited by a negative number.
|
||||
*/
|
||||
int instr;
|
||||
|
||||
fscanf(f, "%d", &instr);
|
||||
while (instr >= sp_fmnem) {
|
||||
while (instr >= 0) {
|
||||
Cadd((Celem_t) instr, s_p);
|
||||
fscanf(f, "%d", &instr);
|
||||
}
|
||||
}
|
||||
|
||||
STATIC choose_cset(f, s_p)
|
||||
STATIC choose_cset(f, s_p, max)
|
||||
FILE *f;
|
||||
cset *s_p;
|
||||
{
|
||||
/* Read two compact sets of EM instructions from inputfile f.
|
||||
/* Read two compact sets of integers from inputfile f.
|
||||
* Choose the first if we optimize with respect to time,
|
||||
* the second if we optimize with respect to space, as
|
||||
* indicated by time_space_ratio.
|
||||
*/
|
||||
cset cs1, cs2; /* Two dummy sets. */
|
||||
|
||||
*s_p = Cempty_set((short) sp_lmnem);
|
||||
*s_p = Cempty_set((short) max);
|
||||
|
||||
cs1 = Cempty_set((short) sp_lmnem);
|
||||
cs1 = Cempty_set((short) max);
|
||||
get_instrs(f, &cs1);
|
||||
cs2 = Cempty_set((short) sp_lmnem);
|
||||
cs2 = Cempty_set((short) max);
|
||||
get_instrs(f, &cs2);
|
||||
|
||||
Ccopy_set(time_space_ratio >= 50 ? cs1 : cs2, s_p);
|
||||
|
@ -80,13 +79,13 @@ cs_machinit(f)
|
|||
/* Choose a set of instructions which must only be eliminated
|
||||
* if they are at the root of another expression.
|
||||
*/
|
||||
choose_cset(f, &addr_modes);
|
||||
choose_cset(f, &addr_modes, sp_lmnem);
|
||||
|
||||
/* Choose a set of cheap instructions; i.e. instructions that
|
||||
* are cheaper than a move to save the result of such an
|
||||
* instruction.
|
||||
*/
|
||||
choose_cset(f, &cheaps);
|
||||
choose_cset(f, &cheaps, sp_lmnem);
|
||||
|
||||
/* Read how many lexical levels back an LXL/LXA instruction
|
||||
* must at least look before it will be eliminated.
|
||||
|
@ -113,7 +112,7 @@ cs_machinit(f)
|
|||
* when they stay, and with which is not dealt in the common
|
||||
* decision routines.
|
||||
*/
|
||||
choose_cset(f, &forbidden);
|
||||
choose_cset(f, &forbidden, sp_lmnem);
|
||||
}
|
||||
|
||||
STATIC bool is_index(lnp)
|
||||
|
|
Loading…
Reference in a new issue