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
169 MAXHIST = 20, /* limit of path elements for history symbols */
176 uchar obuf[MAXIO]; /* output buffer */
177 uchar ibuf[MAXIO]; /* input buffer */
185 EXTERN long HEADR; /* length of header */
186 EXTERN int HEADTYPE; /* type of header */
187 EXTERN long INITDAT; /* data location */
188 EXTERN long INITRND; /* data round above text location */
189 EXTERN long INITTEXT; /* text location */
190 EXTERN char* INITENTRY; /* entry point */
191 EXTERN long autosize;
197 EXTERN Auto* curauto;
198 EXTERN Auto* curhist;
200 EXTERN Prog* curtext;
203 EXTERN char debug[128];
206 EXTERN char fnuxi4[4]; /* for 3l [sic] */
207 EXTERN char fnuxi8[8];
209 EXTERN Sym* hash[NHASH];
210 EXTERN Sym* histfrog[MAXHIST];
211 EXTERN int histfrogp;
213 EXTERN char* library[50];
214 EXTERN char* libraryobj[50];
216 EXTERN int xrefresolv;
218 EXTERN char inuxi1[1];
219 EXTERN char inuxi2[2];
220 EXTERN char inuxi4[4];
223 EXTERN char literal[32];
226 EXTERN long instoffset;
227 EXTERN Opcross opcross[10];
228 EXTERN Oprang oprange[ALAST];
229 EXTERN char* outfile;
231 EXTERN uchar repop[ALAST];
234 EXTERN long textsize;
237 EXTERN char xcmp[32][32];
252 extern char* anames[];
253 extern Optab optab[];
255 #pragma varargck type "A" int
256 #pragma varargck type "D" Adr*
257 #pragma varargck type "N" Adr*
258 #pragma varargck type "P" Prog*
259 #pragma varargck type "S" char*
261 #pragma varargck argpos diag 1
269 void addhist(long, int);
271 void append(Prog*, Prog*);
274 int asmout(Prog*, Optab*, int);
276 long atolwhex(char*);
279 void buildrep(int, int);
283 double cputime(void);
284 void datblk(long, long, int);
285 void diag(char*, ...);
289 long entryvalue(void);
290 void errorexit(void);
291 void exchange(Prog*);
292 int find1(long, int);
295 void histtoauto(void);
296 double ieeedtod(Ieee*);
297 long ieeedtof(Ieee*);
299 void ldobj(int, long, char*);
302 Sym* lookup(char*, int);
312 int ocmp(const void*, const void*);
314 Optab* oplook(Prog*);
318 void prepend(Prog*, Prog*);
321 void putsymb(char*, int, long, int);
324 long rnd(long, long);
325 void sched(Prog*, Prog*);
327 void strnput(char*, int);
329 void xdefine(char*, int, long);
332 void nopstat(char*, Count*);