Annotation of 42BSD/ucb/pascal/src/tmps.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.