1*22252Sdist /* 2*22252Sdist * Copyright (c) 1980 Regents of the University of California. 3*22252Sdist * All rights reserved. The Berkeley software License Agreement 4*22252Sdist * specifies the terms and conditions for redistribution. 5*22252Sdist * 6*22252Sdist * @(#)tmps.h 5.1 (Berkeley) 06/05/85 7*22252Sdist */ 811339Speter 911339Speter /* 1011339Speter * The following structure is used 1111339Speter * to keep track of the amount of variable 1211339Speter * storage required by each block. 1311339Speter * "Max" is the high water mark, "off" 1411339Speter * the current need. Temporaries for "for" 1511339Speter * loops and "with" statements are allocated 1611339Speter * in the local variable area and these 1711339Speter * numbers are thereby changed if necessary. 1811339Speter * 1911339Speter * for the compiler, 2011339Speter * low_water is the lowest number register allocated of its type 2111339Speter * next_avail is the next available register of its type 2211339Speter */ 2311339Speter 2411339Speter #ifdef PC 2511339Speter #ifdef vax 2611339Speter /* 2711339Speter * the number of register types. 2811339Speter * the details of how many of each kind of register there is 2911339Speter * (and what they are for) is known in tmps.c 3011339Speter */ 3111339Speter #define NUMREGTYPES 1 3211339Speter #define REG_GENERAL 0 3311339Speter #endif vax 3411339Speter 3511339Speter #ifdef mc68000 3611339Speter /* 3711339Speter * the number of register types. 3811339Speter * the details of how many of each kind of register there is 3911339Speter * (and what they are for) is known in tmps.c 4011339Speter */ 4111339Speter #define NUMREGTYPES 2 4211339Speter #define REG_DATA 0 4311339Speter #define REG_ADDR 1 4411339Speter #endif mc68000 4511339Speter #endif PC 4611339Speter 4711339Speter struct om { 4811339Speter long om_max; 4911339Speter #ifdef PC 5011339Speter long low_water[NUMREGTYPES]; 5111339Speter #endif PC 5211339Speter struct tmps { 5311339Speter long om_off; 5411339Speter #ifdef PC 5511339Speter long next_avail[NUMREGTYPES]; 5611339Speter #endif PC 5711339Speter } curtmps; 5811339Speter } sizes[DSPLYSZ]; 5911339Speter 6011339Speter /* 6111339Speter * an enumeration for whether a temporary can be a register. cf. tmps.c 6211339Speter */ 6311339Speter #define NOREG 0 6411339Speter #define REGOK 1 65