4 #include "../vc/v.out.h"
10 typedef struct Adr Adr;
11 typedef struct Sym Sym;
12 typedef struct Autom Auto;
13 typedef struct Prog Prog;
14 typedef struct Optab Optab;
15 typedef struct Oprang Oprang;
16 typedef uchar Opcross[32][2][32];
17 typedef struct Count Count;
21 #define TNAME (curtext&&curtext->from.sym?curtext->from.sym->name:noname)
42 #define offset u0.u0offset
43 #define sval u0.u0sval
44 #define ieee u0.u0ieee
46 #define autom u1.u1autom
67 #define regused u0.u0regused
68 #define forwd u0.u0forwd
170 MAXHIST = 20, /* limit of path elements for history symbols */
177 uchar obuf[MAXIO]; /* output buffer */
178 uchar ibuf[MAXIO]; /* input buffer */
186 EXTERN long HEADR; /* length of header */
187 EXTERN int HEADTYPE; /* type of header */
188 EXTERN long INITDAT; /* data location */
189 EXTERN long INITRND; /* data round above text location */
190 EXTERN long INITTEXT; /* text location */
191 EXTERN char* INITENTRY; /* entry point */
192 EXTERN long autosize;
198 EXTERN Auto* curauto;
199 EXTERN Auto* curhist;
201 EXTERN Prog* curtext;
204 EXTERN char debug[128];
207 EXTERN char fnuxi4[4]; /* for 3l [sic] */
208 EXTERN char fnuxi8[8];
210 EXTERN Sym* hash[NHASH];
211 EXTERN Sym* histfrog[MAXHIST];
212 EXTERN int histfrogp;
214 EXTERN char* library[50];
215 EXTERN char* libraryobj[50];
217 EXTERN int xrefresolv;
219 EXTERN char inuxi1[1];
220 EXTERN char inuxi2[2];
221 EXTERN char inuxi4[4];
224 EXTERN char literal[32];
227 EXTERN long instoffset;
228 EXTERN Opcross opcross[10];
229 EXTERN Oprang oprange[ALAST];
230 EXTERN char* outfile;
232 EXTERN uchar repop[ALAST];
235 EXTERN long textsize;
238 EXTERN char xcmp[32][32];
253 extern char* anames[];
254 extern Optab optab[];
256 #pragma varargck type "A" int
257 #pragma varargck type "D" Adr*
258 #pragma varargck type "N" Adr*
259 #pragma varargck type "P" Prog*
260 #pragma varargck type "S" char*
262 #pragma varargck argpos diag 1
270 void addhist(long, int);
272 void append(Prog*, Prog*);
275 int asmout(Prog*, Optab*, int);
277 long atolwhex(char*);
280 void buildrep(int, int);
284 double cputime(void);
285 void datblk(long, long, int);
286 void diag(char*, ...);
290 long entryvalue(void);
291 void errorexit(void);
292 void exchange(Prog*);
293 int find1(long, int);
296 void histtoauto(void);
297 double ieeedtod(Ieee*);
298 long ieeedtof(Ieee*);
300 void ldobj(int, long, char*);
303 Sym* lookup(char*, int);
313 int ocmp(const void*, const void*);
315 Optab* oplook(Prog*);
319 void prepend(Prog*, Prog*);
322 void putsymb(char*, int, long, int);
325 long rnd(long, long);
326 void sched(Prog*, Prog*);
328 void strnput(char*, int);
330 void xdefine(char*, int, long);
333 void nopstat(char*, Count*);