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 */
46 #define displace u0.s0.u0displace
47 #define offset u0.s0.u0offset
48 #define scon u0.u0scon
49 #define cond u0.u0cond
50 #define ieee u0.u0ieee
52 #define autom u1.u1autom
65 Prog* pcond; /* work on this */
69 uchar mark; /* work on these */
73 #define stkoff u0.u0stkoff
74 #define forwd u0.u0forwd
121 MAXHIST = 20, /* limit of path elements for history symbols */
129 char obuf[MAXIO]; /* output buffer */
130 uchar ibuf[MAXIO]; /* input buffer */
138 #pragma varargck type "A" int
139 #pragma varargck type "D" Adr*
140 #pragma varargck type "P" Prog*
141 #pragma varargck type "R" int
142 #pragma varargck type "S" char*
144 #pragma varargck argpos diag 1
147 EXTERN long HEADTYPE;
150 EXTERN long INITTEXT;
151 EXTERN char* INITENTRY; /* entry point */
158 EXTERN Auto* curauto;
159 EXTERN Auto* curhist;
161 EXTERN Prog* curtext;
164 EXTERN char debug[128];
167 EXTERN Prog* prog_divsl;
168 EXTERN Prog* prog_divul;
169 EXTERN Prog* prog_mull;
170 EXTERN Prog* prog_ccr;
171 EXTERN char fnuxi8[8];
172 EXTERN char gnuxi8[8];
173 EXTERN Sym* hash[NHASH];
174 EXTERN Sym* histfrog[MAXHIST];
175 EXTERN int histfrogp;
177 EXTERN char* library[50];
178 EXTERN char* libraryobj[50];
180 EXTERN int xrefresolv;
182 EXTERN char inuxi1[1];
183 EXTERN char inuxi2[2];
184 EXTERN char inuxi4[4];
187 EXTERN long relocsize;
194 EXTERN char* outfile;
196 EXTERN char simple[I_MASK];
197 EXTERN char special[I_MASK];
202 EXTERN long textsize;
207 extern Optab optab[];
208 extern char mmsize[];
209 extern char* anames[];
217 void addhist(long, int);
218 int andsize(Prog*, Adr*);
220 int asmea(Prog*, Adr*);
226 long atolwhex(char*);
227 Prog* brchain(Prog*);
231 double cputime(void);
232 void datblk(long, long);
233 void diag(char*, ...);
238 long entryvalue(void);
239 void errorexit(void);
240 int find1(long, int);
241 int find2(long, int);
244 int gnuxi(Ieee*, int, int);
245 void histtoauto(void);
246 double ieeedtod(Ieee*);
247 long ieeedtof(Ieee*);
248 void initmuldiv1(void);
249 void initmuldiv2(void);
250 void ldobj(int, long, char*);
253 Sym* lookup(char*, int);
255 void main(int, char*[]);
264 long reuse(Prog*, Sym*);
265 long rnd(long, long);
269 void xdefine(char*, int, long);
271 int zaddr(uchar*, Adr*, Sym*[]);