xref: /plan9/sys/src/cmd/6c/6.out.h (revision e887ea33cf0b0f75911958e2324340660b13e9eb)
1 #define	NSYM	50
2 #define	NSNAME	8
3 #define NOPROF	(1<<0)
4 #define DUPOK	(1<<1)
5 
6 /*
7  *	amd64
8  */
9 
10 enum	as
11 {
12 	AXXX,
13 	AAAA,
14 	AAAD,
15 	AAAM,
16 	AAAS,
17 	AADCB,
18 	AADCL,
19 	AADCW,
20 	AADDB,
21 	AADDL,
22 	AADDW,
23 	AADJSP,
24 	AANDB,
25 	AANDL,
26 	AANDW,
27 	AARPL,
28 	ABOUNDL,
29 	ABOUNDW,
30 	ABSFL,
31 	ABSFW,
32 	ABSRL,
33 	ABSRW,
34 	ABTL,
35 	ABTW,
36 	ABTCL,
37 	ABTCW,
38 	ABTRL,
39 	ABTRW,
40 	ABTSL,
41 	ABTSW,
42 	ABYTE,
43 	ACALL,
44 	ACLC,
45 	ACLD,
46 	ACLI,
47 	ACLTS,
48 	ACMC,
49 	ACMPB,
50 	ACMPL,
51 	ACMPW,
52 	ACMPSB,
53 	ACMPSL,
54 	ACMPSW,
55 	ADAA,
56 	ADAS,
57 	ADATA,
58 	ADECB,
59 	ADECL,
60 	ADECQ,
61 	ADECW,
62 	ADIVB,
63 	ADIVL,
64 	ADIVW,
65 	AENTER,
66 	AGLOBL,
67 	AGOK,
68 	AHISTORY,
69 	AHLT,
70 	AIDIVB,
71 	AIDIVL,
72 	AIDIVW,
73 	AIMULB,
74 	AIMULL,
75 	AIMULW,
76 	AINB,
77 	AINL,
78 	AINW,
79 	AINCB,
80 	AINCL,
81 	AINCQ,
82 	AINCW,
83 	AINSB,
84 	AINSL,
85 	AINSW,
86 	AINT,
87 	AINTO,
88 	AIRETL,
89 	AIRETW,
90 	AJCC,
91 	AJCS,
92 	AJCXZ,
93 	AJEQ,
94 	AJGE,
95 	AJGT,
96 	AJHI,
97 	AJLE,
98 	AJLS,
99 	AJLT,
100 	AJMI,
101 	AJMP,
102 	AJNE,
103 	AJOC,
104 	AJOS,
105 	AJPC,
106 	AJPL,
107 	AJPS,
108 	ALAHF,
109 	ALARL,
110 	ALARW,
111 	ALEAL,
112 	ALEAW,
113 	ALEAVEL,
114 	ALEAVEW,
115 	ALOCK,
116 	ALODSB,
117 	ALODSL,
118 	ALODSW,
119 	ALONG,
120 	ALOOP,
121 	ALOOPEQ,
122 	ALOOPNE,
123 	ALSLL,
124 	ALSLW,
125 	AMOVB,
126 	AMOVL,
127 	AMOVW,
128 	AMOVBLSX,
129 	AMOVBLZX,
130 	AMOVBQSX,
131 	AMOVBQZX,
132 	AMOVBWSX,
133 	AMOVBWZX,
134 	AMOVWLSX,
135 	AMOVWLZX,
136 	AMOVWQSX,
137 	AMOVWQZX,
138 	AMOVSB,
139 	AMOVSL,
140 	AMOVSW,
141 	AMULB,
142 	AMULL,
143 	AMULW,
144 	ANAME,
145 	ANEGB,
146 	ANEGL,
147 	ANEGW,
148 	ANOP,
149 	ANOTB,
150 	ANOTL,
151 	ANOTW,
152 	AORB,
153 	AORL,
154 	AORW,
155 	AOUTB,
156 	AOUTL,
157 	AOUTW,
158 	AOUTSB,
159 	AOUTSL,
160 	AOUTSW,
161 	APOPAL,
162 	APOPAW,
163 	APOPFL,
164 	APOPFW,
165 	APOPL,
166 	APOPW,
167 	APUSHAL,
168 	APUSHAW,
169 	APUSHFL,
170 	APUSHFW,
171 	APUSHL,
172 	APUSHW,
173 	ARCLB,
174 	ARCLL,
175 	ARCLW,
176 	ARCRB,
177 	ARCRL,
178 	ARCRW,
179 	AREP,
180 	AREPN,
181 	ARET,
182 	AROLB,
183 	AROLL,
184 	AROLW,
185 	ARORB,
186 	ARORL,
187 	ARORW,
188 	ASAHF,
189 	ASALB,
190 	ASALL,
191 	ASALW,
192 	ASARB,
193 	ASARL,
194 	ASARW,
195 	ASBBB,
196 	ASBBL,
197 	ASBBW,
198 	ASCASB,
199 	ASCASL,
200 	ASCASW,
201 	ASETCC,
202 	ASETCS,
203 	ASETEQ,
204 	ASETGE,
205 	ASETGT,
206 	ASETHI,
207 	ASETLE,
208 	ASETLS,
209 	ASETLT,
210 	ASETMI,
211 	ASETNE,
212 	ASETOC,
213 	ASETOS,
214 	ASETPC,
215 	ASETPL,
216 	ASETPS,
217 	ACDQ,
218 	ACWD,
219 	ASHLB,
220 	ASHLL,
221 	ASHLW,
222 	ASHRB,
223 	ASHRL,
224 	ASHRW,
225 	ASTC,
226 	ASTD,
227 	ASTI,
228 	ASTOSB,
229 	ASTOSL,
230 	ASTOSW,
231 	ASUBB,
232 	ASUBL,
233 	ASUBW,
234 	ASYSCALL,
235 	ATESTB,
236 	ATESTL,
237 	ATESTW,
238 	ATEXT,
239 	AVERR,
240 	AVERW,
241 	AWAIT,
242 	AWORD,
243 	AXCHGB,
244 	AXCHGL,
245 	AXCHGW,
246 	AXLAT,
247 	AXORB,
248 	AXORL,
249 	AXORW,
250 
251 	AFMOVB,
252 	AFMOVBP,
253 	AFMOVD,
254 	AFMOVDP,
255 	AFMOVF,
256 	AFMOVFP,
257 	AFMOVL,
258 	AFMOVLP,
259 	AFMOVV,
260 	AFMOVVP,
261 	AFMOVW,
262 	AFMOVWP,
263 	AFMOVX,
264 	AFMOVXP,
265 
266 	AFCOMB,
267 	AFCOMBP,
268 	AFCOMD,
269 	AFCOMDP,
270 	AFCOMDPP,
271 	AFCOMF,
272 	AFCOMFP,
273 	AFCOML,
274 	AFCOMLP,
275 	AFCOMW,
276 	AFCOMWP,
277 	AFUCOM,
278 	AFUCOMP,
279 	AFUCOMPP,
280 
281 	AFADDDP,
282 	AFADDW,
283 	AFADDL,
284 	AFADDF,
285 	AFADDD,
286 
287 	AFMULDP,
288 	AFMULW,
289 	AFMULL,
290 	AFMULF,
291 	AFMULD,
292 
293 	AFSUBDP,
294 	AFSUBW,
295 	AFSUBL,
296 	AFSUBF,
297 	AFSUBD,
298 
299 	AFSUBRDP,
300 	AFSUBRW,
301 	AFSUBRL,
302 	AFSUBRF,
303 	AFSUBRD,
304 
305 	AFDIVDP,
306 	AFDIVW,
307 	AFDIVL,
308 	AFDIVF,
309 	AFDIVD,
310 
311 	AFDIVRDP,
312 	AFDIVRW,
313 	AFDIVRL,
314 	AFDIVRF,
315 	AFDIVRD,
316 
317 	AFXCHD,
318 	AFFREE,
319 
320 	AFLDCW,
321 	AFLDENV,
322 	AFRSTOR,
323 	AFSAVE,
324 	AFSTCW,
325 	AFSTENV,
326 	AFSTSW,
327 
328 	AF2XM1,
329 	AFABS,
330 	AFCHS,
331 	AFCLEX,
332 	AFCOS,
333 	AFDECSTP,
334 	AFINCSTP,
335 	AFINIT,
336 	AFLD1,
337 	AFLDL2E,
338 	AFLDL2T,
339 	AFLDLG2,
340 	AFLDLN2,
341 	AFLDPI,
342 	AFLDZ,
343 	AFNOP,
344 	AFPATAN,
345 	AFPREM,
346 	AFPREM1,
347 	AFPTAN,
348 	AFRNDINT,
349 	AFSCALE,
350 	AFSIN,
351 	AFSINCOS,
352 	AFSQRT,
353 	AFTST,
354 	AFXAM,
355 	AFXTRACT,
356 	AFYL2X,
357 	AFYL2XP1,
358 
359 	AEND,
360 
361 	ADYNT,
362 	AINIT,
363 
364 	ASIGNAME,
365 
366 	/* extra 32-bit operations */
367 	ACMPXCHGB,
368 	ACMPXCHGL,
369 	ACMPXCHGW,
370 	ACMPXCHG8B,
371 	ACPUID,
372 	AINVD,
373 	AINVLPG,
374 	ALFENCE,
375 	AMFENCE,
376 	AMOVNTIL,
377 	ARDMSR,
378 	ARDPMC,
379 	ARDTSC,
380 	ARSM,
381 	ASFENCE,
382 	ASYSRET,
383 	AWBINVD,
384 	AWRMSR,
385 	AXADDB,
386 	AXADDL,
387 	AXADDW,
388 
389 	/* conditional move */
390 	ACMOVLCC,
391 	ACMOVLCS,
392 	ACMOVLEQ,
393 	ACMOVLGE,
394 	ACMOVLGT,
395 	ACMOVLHI,
396 	ACMOVLLE,
397 	ACMOVLLS,
398 	ACMOVLLT,
399 	ACMOVLMI,
400 	ACMOVLNE,
401 	ACMOVLOC,
402 	ACMOVLOS,
403 	ACMOVLPC,
404 	ACMOVLPL,
405 	ACMOVLPS,
406 	ACMOVQCC,
407 	ACMOVQCS,
408 	ACMOVQEQ,
409 	ACMOVQGE,
410 	ACMOVQGT,
411 	ACMOVQHI,
412 	ACMOVQLE,
413 	ACMOVQLS,
414 	ACMOVQLT,
415 	ACMOVQMI,
416 	ACMOVQNE,
417 	ACMOVQOC,
418 	ACMOVQOS,
419 	ACMOVQPC,
420 	ACMOVQPL,
421 	ACMOVQPS,
422 	ACMOVWCC,
423 	ACMOVWCS,
424 	ACMOVWEQ,
425 	ACMOVWGE,
426 	ACMOVWGT,
427 	ACMOVWHI,
428 	ACMOVWLE,
429 	ACMOVWLS,
430 	ACMOVWLT,
431 	ACMOVWMI,
432 	ACMOVWNE,
433 	ACMOVWOC,
434 	ACMOVWOS,
435 	ACMOVWPC,
436 	ACMOVWPL,
437 	ACMOVWPS,
438 
439 	/* 64-bit */
440 	AADCQ,
441 	AADDQ,
442 	AANDQ,
443 	ABSFQ,
444 	ABSRQ,
445 	ABTCQ,
446 	ABTQ,
447 	ABTRQ,
448 	ABTSQ,
449 	ACMPQ,
450 	ACMPSQ,
451 	ACMPXCHGQ,
452 	ACQO,
453 	ADIVQ,
454 	AIDIVQ,
455 	AIMULQ,
456 	AIRETQ,
457 	ALEAQ,
458 	ALEAVEQ,
459 	ALODSQ,
460 	AMOVQ,
461 	AMOVLQSX,
462 	AMOVLQZX,
463 	AMOVNTIQ,
464 	AMOVSQ,
465 	AMULQ,
466 	ANEGQ,
467 	ANOTQ,
468 	AORQ,
469 	APOPFQ,
470 	APOPQ,
471 	APUSHFQ,
472 	APUSHQ,
473 	ARCLQ,
474 	ARCRQ,
475 	AROLQ,
476 	ARORQ,
477 	AQUAD,
478 	ASALQ,
479 	ASARQ,
480 	ASBBQ,
481 	ASCASQ,
482 	ASHLQ,
483 	ASHRQ,
484 	ASTOSQ,
485 	ASUBQ,
486 	ATESTQ,
487 	AXADDQ,
488 	AXCHGQ,
489 	AXORQ,
490 
491 	/* media */
492 	AADDPD,
493 	AADDPS,
494 	AADDSD,
495 	AADDSS,
496 	AANDNPD,
497 	AANDNPS,
498 	AANDPD,
499 	AANDPS,
500 	ACMPPD,
501 	ACMPPS,
502 	ACMPSD,
503 	ACMPSS,
504 	ACOMISD,
505 	ACOMISS,
506 	ACVTPD2PL,
507 	ACVTPD2PS,
508 	ACVTPL2PD,
509 	ACVTPL2PS,
510 	ACVTPS2PD,
511 	ACVTPS2PL,
512 	ACVTSD2SL,
513 	ACVTSD2SQ,
514 	ACVTSD2SS,
515 	ACVTSL2SD,
516 	ACVTSL2SS,
517 	ACVTSQ2SD,
518 	ACVTSQ2SS,
519 	ACVTSS2SD,
520 	ACVTSS2SL,
521 	ACVTSS2SQ,
522 	ACVTTPD2PL,
523 	ACVTTPS2PL,
524 	ACVTTSD2SL,
525 	ACVTTSD2SQ,
526 	ACVTTSS2SL,
527 	ACVTTSS2SQ,
528 	ADIVPD,
529 	ADIVPS,
530 	ADIVSD,
531 	ADIVSS,
532 	AEMMS,
533 	AFXRSTOR,
534 	AFXRSTOR64,
535 	AFXSAVE,
536 	AFXSAVE64,
537 	ALDMXCSR,
538 	AMASKMOVOU,
539 	AMASKMOVQ,
540 	AMAXPD,
541 	AMAXPS,
542 	AMAXSD,
543 	AMAXSS,
544 	AMINPD,
545 	AMINPS,
546 	AMINSD,
547 	AMINSS,
548 	AMOVAPD,
549 	AMOVAPS,
550 	AMOVOU,
551 	AMOVHLPS,
552 	AMOVHPD,
553 	AMOVHPS,
554 	AMOVLHPS,
555 	AMOVLPD,
556 	AMOVLPS,
557 	AMOVMSKPD,
558 	AMOVMSKPS,
559 	AMOVNTO,
560 	AMOVNTPD,
561 	AMOVNTPS,
562 	AMOVNTQ,
563 	AMOVO,
564 	AMOVQOZX,
565 	AMOVSD,
566 	AMOVSS,
567 	AMOVUPD,
568 	AMOVUPS,
569 	AMULPD,
570 	AMULPS,
571 	AMULSD,
572 	AMULSS,
573 	AORPD,
574 	AORPS,
575 	APACKSSLW,
576 	APACKSSWB,
577 	APACKUSWB,
578 	APADDB,
579 	APADDL,
580 	APADDQ,
581 	APADDSB,
582 	APADDSW,
583 	APADDUSB,
584 	APADDUSW,
585 	APADDW,
586 	APANDB,
587 	APANDL,
588 	APANDSB,
589 	APANDSW,
590 	APANDUSB,
591 	APANDUSW,
592 	APANDW,
593 	APAND,
594 	APANDN,
595 	APAVGB,
596 	APAVGW,
597 	APCMPEQB,
598 	APCMPEQL,
599 	APCMPEQW,
600 	APCMPGTB,
601 	APCMPGTL,
602 	APCMPGTW,
603 	APEXTRW,
604 	APFACC,
605 	APFADD,
606 	APFCMPEQ,
607 	APFCMPGE,
608 	APFCMPGT,
609 	APFMAX,
610 	APFMIN,
611 	APFMUL,
612 	APFNACC,
613 	APFPNACC,
614 	APFRCP,
615 	APFRCPIT1,
616 	APFRCPI2T,
617 	APFRSQIT1,
618 	APFRSQRT,
619 	APFSUB,
620 	APFSUBR,
621 	APINSRW,
622 	APMADDWL,
623 	APMAXSW,
624 	APMAXUB,
625 	APMINSW,
626 	APMINUB,
627 	APMOVMSKB,
628 	APMULHRW,
629 	APMULHUW,
630 	APMULHW,
631 	APMULLW,
632 	APMULULQ,
633 	APOR,
634 	APSADBW,
635 	APSHUFHW,
636 	APSHUFL,
637 	APSHUFLW,
638 	APSHUFW,
639 	APSLLO,
640 	APSLLL,
641 	APSLLQ,
642 	APSLLW,
643 	APSRAL,
644 	APSRAW,
645 	APSRLO,
646 	APSRLL,
647 	APSRLQ,
648 	APSRLW,
649 	APSUBB,
650 	APSUBL,
651 	APSUBQ,
652 	APSUBSB,
653 	APSUBSW,
654 	APSUBUSB,
655 	APSUBUSW,
656 	APSUBW,
657 	APSWAPL,
658 	APUNPCKHBW,
659 	APUNPCKHLQ,
660 	APUNPCKHQDQ,
661 	APUNPCKHWL,
662 	APUNPCKLBW,
663 	APUNPCKLLQ,
664 	APUNPCKLQDQ,
665 	APUNPCKLWL,
666 	APXOR,
667 	ARCPPS,
668 	ARCPSS,
669 	ARSQRTPS,
670 	ARSQRTSS,
671 	ASHUFPD,
672 	ASHUFPS,
673 	ASQRTPD,
674 	ASQRTPS,
675 	ASQRTSD,
676 	ASQRTSS,
677 	ASTMXCSR,
678 	ASUBPD,
679 	ASUBPS,
680 	ASUBSD,
681 	ASUBSS,
682 	AUCOMISD,
683 	AUCOMISS,
684 	AUNPCKHPD,
685 	AUNPCKHPS,
686 	AUNPCKLPD,
687 	AUNPCKLPS,
688 	AXORPD,
689 	AXORPS,
690 
691 	APF2IW,
692 	APF2IL,
693 	API2FW,
694 	API2FL,
695 	ARETFW,
696 	ARETFL,
697 	ARETFQ,
698 	ASWAPGS,
699 
700 	AMODE,
701 
702 	ALAST
703 };
704 
705 enum
706 {
707 
708 	D_AL		= 0,
709 	D_CL,
710 	D_DL,
711 	D_BL,
712 	D_SPB,
713 	D_BPB,
714 	D_SIB,
715 	D_DIB,
716 	D_R8B,
717 	D_R9B,
718 	D_R10B,
719 	D_R11B,
720 	D_R12B,
721 	D_R13B,
722 	D_R14B,
723 	D_R15B,
724 
725 	D_AX		= 16,
726 	D_CX,
727 	D_DX,
728 	D_BX,
729 	D_SP,
730 	D_BP,
731 	D_SI,
732 	D_DI,
733 	D_R8,
734 	D_R9,
735 	D_R10,
736 	D_R11,
737 	D_R12,
738 	D_R13,
739 	D_R14,
740 	D_R15,
741 
742 	D_AH		= 32,
743 	D_CH,
744 	D_DH,
745 	D_BH,
746 
747 	D_F0		= 36,
748 
749 	D_M0		= 44,
750 
751 	D_X0		= 52,
752 
753 	D_CS		= 68,
754 	D_SS,
755 	D_DS,
756 	D_ES,
757 	D_FS,
758 	D_GS,
759 
760 	D_GDTR,		/* global descriptor table register */
761 	D_IDTR,		/* interrupt descriptor table register */
762 	D_LDTR,		/* local descriptor table register */
763 	D_MSW,		/* machine status word */
764 	D_TASK,		/* task register */
765 
766 	D_CR		= 79,
767 	D_DR		= 95,
768 	D_TR		= 103,
769 
770 	D_NONE		= 111,
771 
772 	D_BRANCH	= 112,
773 	D_EXTERN	= 113,
774 	D_STATIC		= 114,
775 	D_AUTO		= 115,
776 	D_PARAM		= 116,
777 	D_CONST		= 117,
778 	D_FCONST	= 118,
779 	D_SCONST	= 119,
780 	D_ADDR		= 120,
781 
782 	D_FILE,
783 	D_FILE1,
784 
785 	D_INDIR,	/* additive */
786 
787 	T_TYPE		= 1<<0,
788 	T_INDEX		= 1<<1,
789 	T_OFFSET	= 1<<2,
790 	T_FCONST	= 1<<3,
791 	T_SYM		= 1<<4,
792 	T_SCONST	= 1<<5,
793 	T_64	= 1<<6,
794 
795 	REGARG		= D_BP,	/* MIGHT CHANGE */
796 	REGRET		= D_AX,
797 	FREGRET		= D_X0,
798 	REGSP		= D_SP,
799 	REGTMP		= D_DI,
800 	REGEXT		= D_R15,	/* compiler allocates external registers R15 down */
801 	FREGMIN		= D_X0+5,	/* first register variable */
802 	FREGEXT		= D_X0+7	/* first external register */
803 };
804 
805 /*
806  * this is the ranlib header
807  */
808 #define	SYMDEF	"__.SYMDEF"
809 
810 /*
811  * this is the simulated IEEE floating point
812  */
813 typedef	struct	ieee	Ieee;
814 struct	ieee
815 {
816 	long	l;	/* contains ls-man	0xffffffff */
817 	long	h;	/* contains sign	0x80000000
818 				    exp		0x7ff00000
819 				    ms-man	0x000fffff */
820 };
821