122252Sdist /* 222252Sdist * Copyright (c) 1980 Regents of the University of California. 322252Sdist * All rights reserved. The Berkeley software License Agreement 422252Sdist * specifies the terms and conditions for redistribution. 522252Sdist * 6*30029Smckusick * @(#)tmps.h 5.2 (Berkeley) 11/12/86 722252Sdist */ 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 35*30029Smckusick #ifdef tahoe 36*30029Smckusick /* 37*30029Smckusick * the number of register types. 38*30029Smckusick * the details of how many of each kind of register there is 39*30029Smckusick * (and what they are for) is known in tmps.c 40*30029Smckusick */ 41*30029Smckusick #define NUMREGTYPES 1 42*30029Smckusick #define REG_GENERAL 0 43*30029Smckusick #endif tahoe 44*30029Smckusick 4511339Speter #ifdef mc68000 4611339Speter /* 4711339Speter * the number of register types. 4811339Speter * the details of how many of each kind of register there is 4911339Speter * (and what they are for) is known in tmps.c 5011339Speter */ 5111339Speter #define NUMREGTYPES 2 5211339Speter #define REG_DATA 0 5311339Speter #define REG_ADDR 1 5411339Speter #endif mc68000 5511339Speter #endif PC 5611339Speter 5711339Speter struct om { 5811339Speter long om_max; 5911339Speter #ifdef PC 6011339Speter long low_water[NUMREGTYPES]; 6111339Speter #endif PC 6211339Speter struct tmps { 6311339Speter long om_off; 6411339Speter #ifdef PC 6511339Speter long next_avail[NUMREGTYPES]; 6611339Speter #endif PC 6711339Speter } curtmps; 6811339Speter } sizes[DSPLYSZ]; 6911339Speter 7011339Speter /* 7111339Speter * an enumeration for whether a temporary can be a register. cf. tmps.c 7211339Speter */ 7311339Speter #define NOREG 0 7411339Speter #define REGOK 1 75