1*11339Speter /* Copyright (c) 1983 Regents of the University of California */ 2*11339Speter 3*11339Speter /* static char sccsid[] = "@(#)tmps.h 1.1 02/28/83"; */ 4*11339Speter 5*11339Speter /* 6*11339Speter * The following structure is used 7*11339Speter * to keep track of the amount of variable 8*11339Speter * storage required by each block. 9*11339Speter * "Max" is the high water mark, "off" 10*11339Speter * the current need. Temporaries for "for" 11*11339Speter * loops and "with" statements are allocated 12*11339Speter * in the local variable area and these 13*11339Speter * numbers are thereby changed if necessary. 14*11339Speter * 15*11339Speter * for the compiler, 16*11339Speter * low_water is the lowest number register allocated of its type 17*11339Speter * next_avail is the next available register of its type 18*11339Speter */ 19*11339Speter 20*11339Speter #ifdef PC 21*11339Speter #ifdef vax 22*11339Speter /* 23*11339Speter * the number of register types. 24*11339Speter * the details of how many of each kind of register there is 25*11339Speter * (and what they are for) is known in tmps.c 26*11339Speter */ 27*11339Speter #define NUMREGTYPES 1 28*11339Speter #define REG_GENERAL 0 29*11339Speter #endif vax 30*11339Speter 31*11339Speter #ifdef mc68000 32*11339Speter /* 33*11339Speter * the number of register types. 34*11339Speter * the details of how many of each kind of register there is 35*11339Speter * (and what they are for) is known in tmps.c 36*11339Speter */ 37*11339Speter #define NUMREGTYPES 2 38*11339Speter #define REG_DATA 0 39*11339Speter #define REG_ADDR 1 40*11339Speter #endif mc68000 41*11339Speter #endif PC 42*11339Speter 43*11339Speter struct om { 44*11339Speter long om_max; 45*11339Speter #ifdef PC 46*11339Speter long low_water[NUMREGTYPES]; 47*11339Speter #endif PC 48*11339Speter struct tmps { 49*11339Speter long om_off; 50*11339Speter #ifdef PC 51*11339Speter long next_avail[NUMREGTYPES]; 52*11339Speter #endif PC 53*11339Speter } curtmps; 54*11339Speter } sizes[DSPLYSZ]; 55*11339Speter 56*11339Speter /* 57*11339Speter * an enumeration for whether a temporary can be a register. cf. tmps.c 58*11339Speter */ 59*11339Speter #define NOREG 0 60*11339Speter #define REGOK 1 61