Annotation of 43BSDTahoe/new/X/inline/inline.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1984 Regents of the University of California */
                      2: 
                      3: /* @(#)inline.h        1.2     (Berkeley)      8/20/84 */
                      4: 
                      5: /*
                      6:  * COMMENTCHAR is the character delimiting comments in the assembler.
                      7:  * LABELCHAR is the character that separates labels from instructions.
                      8:  * ARGSEPCHAR is the character that separates arguments in instructions.
                      9:  * QUOTECHAR is the character that quotes strings in the assember.
                     10:  */
                     11: #define COMMENTCHAR    '#'
                     12: #define LABELCHAR      ':'
                     13: #define ARGSEPCHAR     ','
                     14: #define QUOTECHAR      '"'
                     15: 
                     16: /*
                     17:  * Expansion parameters:
                     18:  *   QUEUESIZE is the number of instructions to be considered for 
                     19:  *     integration of argument pushes and pops
                     20:  *   MAXLINELEN is the longest expected input line
                     21:  *   MAXARGS is the maximum number of arguments in an assembly instruction
                     22:  */
                     23: #define QUEUESIZE      16
                     24: #define MAXLINELEN     256
                     25: #define MAXARGS                10
                     26: 
                     27: /*
                     28:  * The following global variables are used to manipulate the queue of
                     29:  * recently seen instructions.
                     30:  *     line - The queue of instructions.
                     31:  *     bufhead - Pointer to next availble queue slot. It is not
                     32:  *             considered part of te instruction stream until
                     33:  *             bufhead is advanced.
                     34:  *     buftail - Pointer to last instruction in queue.
                     35:  * Note that bufhead == buftail implies that the queue is empty.
                     36:  */
                     37: int bufhead, buftail;
                     38: char line[QUEUESIZE][MAXLINELEN];
                     39: 
                     40: #define SUCC(qindex) ((qindex) + 1 == QUEUESIZE ? 0 : (qindex) + 1)
                     41: #define PRED(qindex) ((qindex) - 1 < 0 ? QUEUESIZE - 1 : (qindex) - 1)
                     42: 
                     43: /*
                     44:  * Hash table headers should be twice as big as the number of patterns.
                     45:  * They must be a power of two.
                     46:  */
                     47: #define HSHSIZ 128
                     48: 
                     49: /*
                     50:  * These tables specify the substitutions that are to be done.
                     51:  */
                     52: struct pats {
                     53:        char    *name;
                     54:        char    *replace;
                     55:        struct  pats *next;
                     56:        int     size;
                     57: };
                     58: struct pats *patshdr[HSHSIZ];
                     59: extern struct pats language_ptab[], libc_ptab[], machine_ptab[];
                     60: 
                     61: /*
                     62:  * This table defines the set of instructions that demark the
                     63:  * end of a basic block.
                     64:  */
                     65: struct inststoptbl {
                     66:        char    *name;
                     67:        struct  inststoptbl *next;
                     68:        int     size;
                     69: };
                     70: struct inststoptbl *inststoptblhdr[HSHSIZ];
                     71: extern struct inststoptbl inststoptable[];
                     72: 
                     73: /*
                     74:  * This structure contains source variables to be used instead of temporary
                     75:  * register.
                     76:  */
                     77: struct oparg {
                     78:     int reg;
                     79:     char source[16];
                     80: };
                     81: 
                     82: #define F_VALUE 1
                     83: #define F_INDIRECT 2
                     84: 
                     85: /*
                     86:  * Miscellaneous functions.
                     87:  */
                     88: char *newline(), *copyline(), *doreplaceon();

unix.superglobalmegacorp.com

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