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();

Defined variables

bufhead defined in line 37; used 11 times
buftail defined in line 37; used 11 times
inststoptblhdr defined in line 70; used 2 times
line defined in line 38; used 11 times
patshdr defined in line 58; used 2 times

Defined struct's

inststoptbl defined in line 65; used 14 times
oparg defined in line 77; used 4 times
pats defined in line 52; used 18 times

Defined macros

ARGSEPCHAR defined in line 13; used 2 times
COMMENTCHAR defined in line 11; used 2 times
F_INDIRECT defined in line 83; used 2 times
F_VALUE defined in line 82; used 2 times
HSHSIZ defined in line 47; used 3 times
LABELCHAR defined in line 12; used 1 times
MAXARGS defined in line 25; used 4 times
MAXLINELEN defined in line 24; used 3 times
PRED defined in line 41; used 1 times
QUEUESIZE defined in line 23; used 3 times
QUOTECHAR defined in line 14; used 1 times
SUCC defined in line 40; used 3 times

Usage of this include

Last modified: 1986-02-01
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1006
Valid CSS Valid XHTML 1.0 Strict