Annotation of 43BSD/contrib/X/inline/inline.h, revision 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.