4 #include "../2c/2.out.h"
12 #define TNAME (curtext?curtext->from.sym->name:noname)
18 typedef struct Adr Adr;
19 typedef struct Prog Prog;
20 typedef struct Sym Sym;
21 typedef struct Auto Auto;
22 typedef struct Optab Optab;
36 Prog *u0cond; /* not used, but should be D_BRANCH */
48 #define displace u0.s0.u0displace
49 #define offset u0.s0.u0offset
50 #define scon u0.u0scon
51 #define cond u0.u0cond
52 #define ieee u0.u0ieee
54 #define autom u1.u1autom
67 Prog* pcond; /* work on this */
71 uchar mark; /* work on these */
75 #define stkoff u0.u0stkoff
76 #define forwd u0.u0forwd
123 MAXHIST = 20, /* limit of path elements for history symbols */
131 char obuf[MAXIO]; /* output buffer */
132 uchar ibuf[MAXIO]; /* input buffer */
141 EXTERN long HEADTYPE;
144 EXTERN long INITTEXT;
145 EXTERN char* INITENTRY; /* entry point */
152 EXTERN Auto* curauto;
153 EXTERN Auto* curhist;
155 EXTERN Prog* curtext;
158 EXTERN char debug[128];
161 EXTERN char fnuxi8[8];
162 EXTERN char gnuxi8[8];
163 EXTERN Sym* hash[NHASH];
164 EXTERN Sym* histfrog[MAXHIST];
165 EXTERN int histfrogp;
167 EXTERN char* library[50];
168 EXTERN char* libraryobj[50];
170 EXTERN int xrefresolv;
172 EXTERN char inuxi1[1];
173 EXTERN char inuxi2[2];
174 EXTERN char inuxi4[4];
184 EXTERN char* outfile;
186 EXTERN char simple[I_MASK];
187 EXTERN char special[I_MASK];
192 EXTERN long textsize;
197 extern Optab optab[];
198 extern char mmsize[];
199 extern char* anames[];
201 #pragma varargck type "A" int
202 #pragma varargck type "D" Adr*
203 #pragma varargck type "P" Prog*
204 #pragma varargck type "R" int
205 #pragma varargck type "S" char*
207 #pragma varargck argpos diag 1
215 void addhist(long, int);
216 int andsize(Prog*, Adr*);
217 Prog* appendp(Prog*);
219 int asmea(Prog*, Adr*);
224 long atolwhex(char*);
225 Prog* brchain(Prog*);
229 double cputime(void);
230 void datblk(long, long);
231 void diag(char*, ...);
236 long entryvalue(void);
237 void errorexit(void);
238 int find1(long, int);
239 int find2(long, int);
242 int gnuxi(Ieee*, int, int);
243 void histtoauto(void);
244 double ieeedtod(Ieee*);
245 long ieeedtof(Ieee*);
246 void ldobj(int, long, char*);
249 Sym* lookup(char*, int);
251 void main(int, char*[]);
259 long reuse(Prog*, Sym*);
260 long rnd(long, long);
264 void xdefine(char*, int, long);
266 int zaddr(uchar*, Adr*, Sym*[]);