xref: /inferno-os/utils/8c/8.out.h (revision e45fa0eb0763b57d6fb0649c064bc3b95ccdea6c)
1 #define	NSYM	50
2 #define	NSNAME	8
3 #define NOPROF	(1<<0)
4 #define DUPOK	(1<<1)
5 #define NOSPLIT	(1<<2)
6 
7 enum	as
8 {
9 	AXXX,
10 	AAAA,
11 	AAAD,
12 	AAAM,
13 	AAAS,
14 	AADCB,
15 	AADCL,
16 	AADCW,
17 	AADDB,
18 	AADDL,
19 	AADDW,
20 	AADJSP,
21 	AANDB,
22 	AANDL,
23 	AANDW,
24 	AARPL,
25 	ABOUNDL,
26 	ABOUNDW,
27 	ABSFL,
28 	ABSFW,
29 	ABSRL,
30 	ABSRW,
31 	ABTL,
32 	ABTW,
33 	ABTCL,
34 	ABTCW,
35 	ABTRL,
36 	ABTRW,
37 	ABTSL,
38 	ABTSW,
39 	ABYTE,
40 	ACALL,
41 	ACLC,
42 	ACLD,
43 	ACLI,
44 	ACLTS,
45 	ACMC,
46 	ACMPB,
47 	ACMPL,
48 	ACMPW,
49 	ACMPSB,
50 	ACMPSL,
51 	ACMPSW,
52 	ADAA,
53 	ADAS,
54 	ADATA,
55 	ADECB,
56 	ADECL,
57 	ADECW,
58 	ADIVB,
59 	ADIVL,
60 	ADIVW,
61 	AENTER,
62 	AGLOBL,
63 	AGOK,
64 	AHISTORY,
65 	AHLT,
66 	AIDIVB,
67 	AIDIVL,
68 	AIDIVW,
69 	AIMULB,
70 	AIMULL,
71 	AIMULW,
72 	AINB,
73 	AINL,
74 	AINW,
75 	AINCB,
76 	AINCL,
77 	AINCW,
78 	AINSB,
79 	AINSL,
80 	AINSW,
81 	AINT,
82 	AINTO,
83 	AIRETL,
84 	AIRETW,
85 	AJCC,
86 	AJCS,
87 	AJCXZ,
88 	AJEQ,
89 	AJGE,
90 	AJGT,
91 	AJHI,
92 	AJLE,
93 	AJLS,
94 	AJLT,
95 	AJMI,
96 	AJMP,
97 	AJNE,
98 	AJOC,
99 	AJOS,
100 	AJPC,
101 	AJPL,
102 	AJPS,
103 	ALAHF,
104 	ALARL,
105 	ALARW,
106 	ALEAL,
107 	ALEAW,
108 	ALEAVEL,
109 	ALEAVEW,
110 	ALOCK,
111 	ALODSB,
112 	ALODSL,
113 	ALODSW,
114 	ALONG,
115 	ALOOP,
116 	ALOOPEQ,
117 	ALOOPNE,
118 	ALSLL,
119 	ALSLW,
120 	AMOVB,
121 	AMOVL,
122 	AMOVW,
123 	AMOVBLSX,
124 	AMOVBLZX,
125 	AMOVBWSX,
126 	AMOVBWZX,
127 	AMOVWLSX,
128 	AMOVWLZX,
129 	AMOVSB,
130 	AMOVSL,
131 	AMOVSW,
132 	AMULB,
133 	AMULL,
134 	AMULW,
135 	ANAME,
136 	ANEGB,
137 	ANEGL,
138 	ANEGW,
139 	ANOP,
140 	ANOTB,
141 	ANOTL,
142 	ANOTW,
143 	AORB,
144 	AORL,
145 	AORW,
146 	AOUTB,
147 	AOUTL,
148 	AOUTW,
149 	AOUTSB,
150 	AOUTSL,
151 	AOUTSW,
152 	APOPAL,
153 	APOPAW,
154 	APOPFL,
155 	APOPFW,
156 	APOPL,
157 	APOPW,
158 	APUSHAL,
159 	APUSHAW,
160 	APUSHFL,
161 	APUSHFW,
162 	APUSHL,
163 	APUSHW,
164 	ARCLB,
165 	ARCLL,
166 	ARCLW,
167 	ARCRB,
168 	ARCRL,
169 	ARCRW,
170 	AREP,
171 	AREPN,
172 	ARET,
173 	AROLB,
174 	AROLL,
175 	AROLW,
176 	ARORB,
177 	ARORL,
178 	ARORW,
179 	ASAHF,
180 	ASALB,
181 	ASALL,
182 	ASALW,
183 	ASARB,
184 	ASARL,
185 	ASARW,
186 	ASBBB,
187 	ASBBL,
188 	ASBBW,
189 	ASCASB,
190 	ASCASL,
191 	ASCASW,
192 	ASETCC,
193 	ASETCS,
194 	ASETEQ,
195 	ASETGE,
196 	ASETGT,
197 	ASETHI,
198 	ASETLE,
199 	ASETLS,
200 	ASETLT,
201 	ASETMI,
202 	ASETNE,
203 	ASETOC,
204 	ASETOS,
205 	ASETPC,
206 	ASETPL,
207 	ASETPS,
208 	ACDQ,
209 	ACWD,
210 	ASHLB,
211 	ASHLL,
212 	ASHLW,
213 	ASHRB,
214 	ASHRL,
215 	ASHRW,
216 	ASTC,
217 	ASTD,
218 	ASTI,
219 	ASTOSB,
220 	ASTOSL,
221 	ASTOSW,
222 	ASUBB,
223 	ASUBL,
224 	ASUBW,
225 	ASYSCALL,
226 	ATESTB,
227 	ATESTL,
228 	ATESTW,
229 	ATEXT,
230 	AVERR,
231 	AVERW,
232 	AWAIT,
233 	AWORD,
234 	AXCHGB,
235 	AXCHGL,
236 	AXCHGW,
237 	AXLAT,
238 	AXORB,
239 	AXORL,
240 	AXORW,
241 
242 	AFMOVB,
243 	AFMOVBP,
244 	AFMOVD,
245 	AFMOVDP,
246 	AFMOVF,
247 	AFMOVFP,
248 	AFMOVL,
249 	AFMOVLP,
250 	AFMOVV,
251 	AFMOVVP,
252 	AFMOVW,
253 	AFMOVWP,
254 	AFMOVX,
255 	AFMOVXP,
256 
257 	AFCOMB,
258 	AFCOMBP,
259 	AFCOMD,
260 	AFCOMDP,
261 	AFCOMDPP,
262 	AFCOMF,
263 	AFCOMFP,
264 	AFCOML,
265 	AFCOMLP,
266 	AFCOMW,
267 	AFCOMWP,
268 	AFUCOM,
269 	AFUCOMP,
270 	AFUCOMPP,
271 
272 	AFADDDP,
273 	AFADDW,
274 	AFADDL,
275 	AFADDF,
276 	AFADDD,
277 
278 	AFMULDP,
279 	AFMULW,
280 	AFMULL,
281 	AFMULF,
282 	AFMULD,
283 
284 	AFSUBDP,
285 	AFSUBW,
286 	AFSUBL,
287 	AFSUBF,
288 	AFSUBD,
289 
290 	AFSUBRDP,
291 	AFSUBRW,
292 	AFSUBRL,
293 	AFSUBRF,
294 	AFSUBRD,
295 
296 	AFDIVDP,
297 	AFDIVW,
298 	AFDIVL,
299 	AFDIVF,
300 	AFDIVD,
301 
302 	AFDIVRDP,
303 	AFDIVRW,
304 	AFDIVRL,
305 	AFDIVRF,
306 	AFDIVRD,
307 
308 	AFXCHD,
309 	AFFREE,
310 
311 	AFLDCW,
312 	AFLDENV,
313 	AFRSTOR,
314 	AFSAVE,
315 	AFSTCW,
316 	AFSTENV,
317 	AFSTSW,
318 
319 	AF2XM1,
320 	AFABS,
321 	AFCHS,
322 	AFCLEX,
323 	AFCOS,
324 	AFDECSTP,
325 	AFINCSTP,
326 	AFINIT,
327 	AFLD1,
328 	AFLDL2E,
329 	AFLDL2T,
330 	AFLDLG2,
331 	AFLDLN2,
332 	AFLDPI,
333 	AFLDZ,
334 	AFNOP,
335 	AFPATAN,
336 	AFPREM,
337 	AFPREM1,
338 	AFPTAN,
339 	AFRNDINT,
340 	AFSCALE,
341 	AFSIN,
342 	AFSINCOS,
343 	AFSQRT,
344 	AFTST,
345 	AFXAM,
346 	AFXTRACT,
347 	AFYL2X,
348 	AFYL2XP1,
349 
350 	AEND,
351 
352 	ADYNT,
353 	AINIT,
354 
355 	ASIGNAME,
356 
357 	AFCOMI,
358 	AFCOMIP,
359 	AFUCOMI,
360 	AFUCOMIP,
361 	ACMPXCHGB,
362 	ACMPXCHGL,
363 	ACMPXCHGW,
364 
365 	/* conditional move */
366 	ACMOVLCC,
367 	ACMOVLCS,
368 	ACMOVLEQ,
369 	ACMOVLGE,
370 	ACMOVLGT,
371 	ACMOVLHI,
372 	ACMOVLLE,
373 	ACMOVLLS,
374 	ACMOVLLT,
375 	ACMOVLMI,
376 	ACMOVLNE,
377 	ACMOVLOC,
378 	ACMOVLOS,
379 	ACMOVLPC,
380 	ACMOVLPL,
381 	ACMOVLPS,
382 	ACMOVWCC,
383 	ACMOVWCS,
384 	ACMOVWEQ,
385 	ACMOVWGE,
386 	ACMOVWGT,
387 	ACMOVWHI,
388 	ACMOVWLE,
389 	ACMOVWLS,
390 	ACMOVWLT,
391 	ACMOVWMI,
392 	ACMOVWNE,
393 	ACMOVWOC,
394 	ACMOVWOS,
395 	ACMOVWPC,
396 	ACMOVWPL,
397 	ACMOVWPS,
398 
399 	AFCMOVCC,
400 	AFCMOVCS,
401 	AFCMOVEQ,
402 	AFCMOVHI,
403 	AFCMOVLS,
404 	AFCMOVNE,
405 	AFCMOVNU,
406 	AFCMOVUN,
407 
408 	/* add new operations here. nowhere else. here. */
409 	ALAST
410 };
411 
412 enum
413 {
414 	D_AL		= 0,
415 	D_CL,
416 	D_DL,
417 	D_BL,
418 
419 	D_AH		= 4,
420 	D_CH,
421 	D_DH,
422 	D_BH,
423 
424 	D_AX		= 8,
425 	D_CX,
426 	D_DX,
427 	D_BX,
428 	D_SP,
429 	D_BP,
430 	D_SI,
431 	D_DI,
432 
433 	D_F0		= 16,
434 	D_F7		= D_F0 + 7,
435 
436 	D_CS		= 24,
437 	D_SS,
438 	D_DS,
439 	D_ES,
440 	D_FS,
441 	D_GS,
442 
443 	D_GDTR,		/* global descriptor table register */
444 	D_IDTR,		/* interrupt descriptor table register */
445 	D_LDTR,		/* local descriptor table register */
446 	D_MSW,		/* machine status word */
447 	D_TASK,		/* task register */
448 
449 	D_CR		= 35,
450 	D_DR		= 43,
451 	D_TR		= 51,
452 
453 	D_NONE		= 59,
454 
455 	D_BRANCH	= 60,
456 	D_EXTERN	= 61,
457 	D_STATIC	= 62,
458 	D_AUTO		= 63,
459 	D_PARAM		= 64,
460 	D_CONST		= 65,
461 	D_FCONST	= 66,
462 	D_SCONST	= 67,
463 	D_ADDR		= 68,
464 
465 	D_FILE,
466 	D_FILE1,
467 
468 	D_INDIR,	/* additive */
469 
470 	D_CONST2 = D_INDIR+D_INDIR,
471 
472 	D_SIZE,	/* 8l internal */
473 
474 	T_TYPE		= 1<<0,
475 	T_INDEX		= 1<<1,
476 	T_OFFSET	= 1<<2,
477 	T_FCONST	= 1<<3,
478 	T_SYM		= 1<<4,
479 	T_SCONST	= 1<<5,
480 	T_OFFSET2	= 1<<6,
481 	T_GOTYPE	= 1<<7,
482 
483 	REGARG		= -1,
484 	REGRET		= D_AX,
485 	FREGRET		= D_F0,
486 	REGSP		= D_SP,
487 	REGTMP		= D_DI,
488 };
489 
490 /*
491  * this is the ranlib header
492  */
493 #define	SYMDEF	"__.SYMDEF"
494 
495 /*
496  * this is the simulated IEEE floating point
497  */
498 typedef	struct	ieee	Ieee;
499 struct	ieee
500 {
501 	long	l;	/* contains ls-man	0xffffffff */
502 	long	h;	/* contains sign	0x80000000
503 				    exp		0x7ff00000
504 				    ms-man	0x000fffff */
505 };
506