Annotation of 43BSDTahoe/sys/vax/inline/inline.h, revision 1.1.1.1

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