xref: /original-bsd/usr.bin/pascal/src/tmps.h (revision 2d18f455)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)tmps.h	5.2 (Berkeley) 11/12/86
7  */
8 
9 /*
10  * The following structure is used
11  * to keep track of the amount of variable
12  * storage required by each block.
13  * "Max" is the high water mark, "off"
14  * the current need. Temporaries for "for"
15  * loops and "with" statements are allocated
16  * in the local variable area and these
17  * numbers are thereby changed if necessary.
18  *
19  * for the compiler,
20  *	low_water is the lowest number register allocated of its type
21  *	next_avail is the next available register of its type
22  */
23 
24 #ifdef PC
25 #ifdef vax
26     /*
27      *	the number of register types.
28      *	the details of how many of each kind of register there is
29      *	(and what they are for) is known in tmps.c
30      */
31 #define	NUMREGTYPES	1
32 #define	REG_GENERAL	0
33 #endif vax
34 
35 #ifdef tahoe
36     /*
37      *	the number of register types.
38      *	the details of how many of each kind of register there is
39      *	(and what they are for) is known in tmps.c
40      */
41 #define	NUMREGTYPES	1
42 #define	REG_GENERAL	0
43 #endif tahoe
44 
45 #ifdef mc68000
46     /*
47      *	the number of register types.
48      *	the details of how many of each kind of register there is
49      *	(and what they are for) is known in tmps.c
50      */
51 #define	NUMREGTYPES	2
52 #define	REG_DATA	0
53 #define	REG_ADDR	1
54 #endif mc68000
55 #endif PC
56 
57 struct om {
58 	long	om_max;
59 #ifdef PC
60 	long	low_water[NUMREGTYPES];
61 #endif PC
62 	struct tmps {
63 	    long	om_off;
64 #ifdef PC
65 	    long	next_avail[NUMREGTYPES];
66 #endif PC
67 	}	curtmps;
68 } sizes[DSPLYSZ];
69 
70     /*
71      *	an enumeration for whether a temporary can be a register.  cf. tmps.c
72      */
73 #define NOREG 0
74 #define REGOK 1
75