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

1.1       root        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.1 (Berkeley) 6/5/85
                      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 mc68000
                     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     2
                     42: #define        REG_DATA        0
                     43: #define        REG_ADDR        1
                     44: #endif mc68000
                     45: #endif PC
                     46: 
                     47: struct om {
                     48:        long    om_max;
                     49: #ifdef PC
                     50:        long    low_water[NUMREGTYPES];
                     51: #endif PC
                     52:        struct tmps {
                     53:            long        om_off;
                     54: #ifdef PC
                     55:            long        next_avail[NUMREGTYPES];
                     56: #endif PC
                     57:        }       curtmps;
                     58: } sizes[DSPLYSZ];
                     59: 
                     60:     /*
                     61:      * an enumeration for whether a temporary can be a register.  cf. tmps.c
                     62:      */
                     63: #define NOREG 0
                     64: #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.