Annotation of 43BSDReno/pgrm/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.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

unix.superglobalmegacorp.com

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