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

Defined variables

bufhead defined in line 39; used 11 times
buftail defined in line 39; used 11 times
inststoptblhdr defined in line 75; used 2 times
line defined in line 40; used 10 times
patshdr defined in line 61; used 2 times

Defined struct's

inststoptbl defined in line 70; used 14 times
pats defined in line 54; used 32 times

Defined macros

ARGSEPCHAR defined in line 16; used 2 times
COMMENTCHAR defined in line 14; used 2 times
HSHSIZ defined in line 49; used 3 times
LABELCHAR defined in line 15; used 1 times
MAXARGS defined in line 27; used 2 times
MAXLINELEN defined in line 26; used 4 times
PRED defined in line 43; used 1 times
QUEUESIZE defined in line 25; used 3 times
SUCC defined in line 42; used 3 times

Usage of this include

Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1062
Valid CSS Valid XHTML 1.0 Strict