Annotation of researchv9/jerq/sgs/comp/mfile1.h, revision 1.1.1.1

1.1       root        1: /* @(#) mfile1.h: 1.1 12/22/83                         */
                      2: 
                      3: 
                      4: # include "macdefs.h"
                      5: # include "manifest.h"
                      6: 
                      7: /*     storage classes  */
                      8: # define SNULL 0
                      9: # define AUTO 1
                     10: # define EXTERN 2
                     11: # define STATIC 3
                     12: # define REGISTER 4
                     13: # define EXTDEF 5
                     14: # define LABEL 6
                     15: # define ULABEL 7
                     16: # define MOS 8
                     17: # define PARAM 9
                     18: # define STNAME 10
                     19: # define MOU 11
                     20: # define UNAME 12
                     21: # define TYPEDEF 13
                     22: # define FORTRAN 14
                     23: # define ENAME 15
                     24: # define MOE 16
                     25: # define UFORTRAN 17
                     26: # define USTATIC 18
                     27:        /* field size is ORed in */
                     28: # define FIELD 0100
                     29: # define FLDSIZ 077
                     30: # ifndef NODBG
                     31: extern char *scnames();
                     32: # endif
                     33: 
                     34: /*     location counters */
                     35: # define PROG 0
                     36: # define ADATA 1
                     37: # define DATA 2
                     38: # define ISTRNG 3
                     39: # define STRNG 4
                     40: 
                     41: /* symbol table flags */
                     42: # define SMOS 01
                     43: # define SHIDDEN 02
                     44: # define SHIDES 04
                     45: # define SSET 010
                     46: # define SREF 020
                     47: # define SNONUNIQ 040
                     48: # define STAG 0100
                     49: 
                     50: typedef long OFFSZ;
                     51: 
                     52: struct symtab {
                     53:        char *sname;
                     54:        TWORD stype;  /* type word */
                     55: 
                     56:        char sclass;  /* storage class */
                     57:        char slevel;  /* scope level */
                     58:        char sflags;  /* flags for set, use, hidden, mos, etc. */
                     59:        int offset;  /* offset or value */
                     60:        short dimoff; /* offset into the dimension table */
                     61:        short sizoff; /* offset into the size table */
                     62:        short suse;  /* line number of last use of the variable */
                     63:        struct symtab *scopelink;       /* chain of symbols at same level */
                     64: };
                     65: 
                     66: 
                     67: struct sw {
                     68:        CONSZ sval;
                     69:        int slab;
                     70: };
                     71: 
                     72: extern struct sw swtab[];
                     73: extern struct sw *swp;
                     74: extern int swx;
                     75: 
                     76: extern int ftnno;
                     77: extern int blevel;
                     78: extern int instruct, stwart;
                     79: 
                     80: extern int lineno, nerrors;
                     81: typedef union {
                     82:        int intval;
                     83:        NODE * nodep;
                     84: } YYSTYPE;
                     85: extern YYSTYPE yylval;
                     86: 
                     87: extern CONSZ lastcon;
                     88: extern CONSZ ccast();
                     89: extern double dcon;
                     90: 
                     91: extern char ftitle[];
                     92: extern struct symtab stab[];
                     93: extern int curftn;
                     94: extern int strftn;
                     95: extern char *locnames[];
                     96: extern int curloc;
                     97: extern int curclass;
                     98: extern int curdim;
                     99: extern int dimtab[];
                    100: extern int paramstk[];
                    101: extern int paramno;
                    102: extern int argstk[];
                    103: extern int argsoff[];
                    104: extern TWORD argty[];
                    105: extern int argno;
                    106: extern int autooff, argoff, strucoff;
                    107: extern int regvar;
                    108: extern int nextrvar;
                    109: extern int brkflag;
                    110: extern char yytext[];
                    111: 
                    112: extern int strflg;
                    113: 
                    114: extern OFFSZ inoff;
                    115: 
                    116: extern int reached;
                    117: 
                    118: /*     tunnel to buildtree for name id's */
                    119: 
                    120: extern int idname;
                    121: 
                    122: extern NODE node[];
                    123: extern NODE *lastfree;
                    124: 
                    125: extern int cflag, hflag, pflag;
                    126: 
                    127: /* various labels */
                    128: extern int brklab;
                    129: extern int contlab;
                    130: #ifdef M32B
                    131:        extern int swregno;
                    132: #endif
                    133: extern int flostat;
                    134: extern int retlab;
                    135: extern int retstat;
                    136: extern int asavbc[], *psavbc;
                    137: 
                    138: /*     flags used in structures/unions */
                    139: 
                    140: # define SEENAME 01
                    141: # define INSTRUCT 02
                    142: # define INUNION 04
                    143: # define FUNNYNAME 010
                    144: # define TAGNAME 020
                    145: 
                    146: /*     flags used in the (elementary) flow analysis ... */
                    147: 
                    148: # define FBRK 02
                    149: # define FCONT 04
                    150: # define FDEF 010
                    151: # define FLOOP 020
                    152: 
                    153: /*
                    154: * These defines control "while" and "for" loop code generation.
                    155: * wloop_level and floop_level each must be set to one of these values.
                    156: */
                    157: #define LL_TOP 0       /* test at loop top */
                    158: #define LL_BOT 1       /* test at loop bottom */
                    159: #define LL_DUP 2       /* duplicate loop test at top and bottom */
                    160: 
                    161: #ifdef M32B
                    162:        /* for register allocation optimization */
                    163:        extern int fordepth;
                    164:        extern int whdepth;
                    165:        extern int brdepth;
                    166: #   ifdef IMPREGAL
                    167:        extern void rainit(), radbl(), raname(), raua(), raftn();
                    168: #   endif
                    169: #endif
                    170: 
                    171: /*     flags used for return status */
                    172: 
                    173: # define RETVAL 1
                    174: # define NRETVAL 2
                    175: 
                    176: /*     used to mark a constant with no name field */
                    177: 
                    178: # define NONAME 040000
                    179: 
                    180:        /* mark an offset which is undefined */
                    181: 
                    182: # define NOOFFSET (-10201)
                    183: 
                    184: /*     declarations of various functions */
                    185: 
                    186: extern NODE
                    187:        *aadjust(),
                    188:        *bcon(),
                    189:        *bdty(),
                    190:        *block(),
                    191:        *bpsize(),
                    192:        *buildtree(),
                    193: #ifdef M32B
                    194:        *myand(),
                    195:        *setswreg(),
                    196: #endif
                    197:        *clocal(),
                    198:        *conval(),
                    199:        *convert(),
                    200:        *dclstruct(),
                    201:        *doszof(),
                    202:        *getstr(),
                    203:        *makety(),
                    204:        *mkty(),
                    205:        *oconvert(),
                    206:        *offcon(),
                    207:        *optim(),
                    208:        *pconvert(),
                    209:        *ptmatch(),
                    210:        *pvconvert(),
                    211:        *rstruct(),
                    212:        *sconvert(),
                    213:        *strargs(),
                    214:        *stref(),
                    215:        *talloc(),
                    216:        *tymatch(),
                    217:        *tymerge(),
                    218:        *unconvert(),
                    219:        *xicolon();
                    220: 
                    221: OFFSZ  tsize(),
                    222:        psize();
                    223: 
                    224: TWORD  types(),
                    225:        ctype();
                    226: 
                    227: char *exname(), *exdcon();
                    228: 
                    229: # define checkst(x)
                    230: 
                    231: # ifdef SDB
                    232: # include "sdb.h"
                    233: # endif
                    234: 
                    235: /* type that is equivalent to pointers in size */
                    236: # ifndef PTRTYPE
                    237: # define PTRTYPE INT
                    238: # endif

unix.superglobalmegacorp.com

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