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