xref: /plan9/sys/src/cmd/vc/v.out.h (revision 375daca8932d0755549a5f8e4d068a24a49927d4)
13e12c5d1SDavid du Colombier #define	NSNAME	8
23e12c5d1SDavid du Colombier #define	NSYM	50
33e12c5d1SDavid du Colombier #define	NREG	32
43e12c5d1SDavid du Colombier 
5219b2ee8SDavid du Colombier #define NOPROF	(1<<0)
6219b2ee8SDavid du Colombier #define DUPOK	(1<<1)
7219b2ee8SDavid du Colombier 
83e12c5d1SDavid du Colombier #define	REGZERO		0
93e12c5d1SDavid du Colombier #define	REGRET		1
103e12c5d1SDavid du Colombier #define	REGARG		1
113e12c5d1SDavid du Colombier /* compiler allocates R1 up as temps */
123e12c5d1SDavid du Colombier /* compiler allocates register variables R3-R23 */
133e12c5d1SDavid du Colombier #define	REGEXT		25
143e12c5d1SDavid du Colombier /* compiler allocates external registers R25 down */
153e12c5d1SDavid du Colombier /* dont use R26 R27 */
163e12c5d1SDavid du Colombier #define	REGTMP		28
173e12c5d1SDavid du Colombier #define	REGSP		29
183e12c5d1SDavid du Colombier #define	REGSB		30
193e12c5d1SDavid du Colombier #define	REGLINK		31
203e12c5d1SDavid du Colombier 
213e12c5d1SDavid du Colombier #define	FREGRET		0
223e12c5d1SDavid du Colombier /* compiler allocates register variables F4-F22 */
233e12c5d1SDavid du Colombier /* compiler allocates external registers F22 down */
243e12c5d1SDavid du Colombier #define	FREGEXT		22
253e12c5d1SDavid du Colombier #define	FREGZERO	24	/* both float and double */
263e12c5d1SDavid du Colombier #define	FREGHALF	26	/* double */
273e12c5d1SDavid du Colombier #define	FREGONE		28	/* double */
283e12c5d1SDavid du Colombier #define	FREGTWO		30	/* double */
293e12c5d1SDavid du Colombier 
303e12c5d1SDavid du Colombier enum	as
313e12c5d1SDavid du Colombier {
323e12c5d1SDavid du Colombier 	AXXX,
333e12c5d1SDavid du Colombier 
343e12c5d1SDavid du Colombier 	AABSD,
353e12c5d1SDavid du Colombier 	AABSF,
363e12c5d1SDavid du Colombier 	AABSW,
373e12c5d1SDavid du Colombier 	AADD,
383e12c5d1SDavid du Colombier 	AADDD,
393e12c5d1SDavid du Colombier 	AADDF,
403e12c5d1SDavid du Colombier 	AADDU,
413e12c5d1SDavid du Colombier 	AADDW,
423e12c5d1SDavid du Colombier 	AAND,
433e12c5d1SDavid du Colombier 	ABEQ,
443e12c5d1SDavid du Colombier 	ABFPF,
453e12c5d1SDavid du Colombier 	ABFPT,
463e12c5d1SDavid du Colombier 	ABGEZ,
473e12c5d1SDavid du Colombier 	ABGEZAL,
483e12c5d1SDavid du Colombier 	ABGTZ,
493e12c5d1SDavid du Colombier 	ABLEZ,
503e12c5d1SDavid du Colombier 	ABLTZ,
513e12c5d1SDavid du Colombier 	ABLTZAL,
523e12c5d1SDavid du Colombier 	ABNE,
533e12c5d1SDavid du Colombier 	ABREAK,
543e12c5d1SDavid du Colombier 	ACMPEQD,
553e12c5d1SDavid du Colombier 	ACMPEQF,
563e12c5d1SDavid du Colombier 	ACMPGED,
573e12c5d1SDavid du Colombier 	ACMPGEF,
583e12c5d1SDavid du Colombier 	ACMPGTD,
593e12c5d1SDavid du Colombier 	ACMPGTF,
603e12c5d1SDavid du Colombier 	ADATA,
613e12c5d1SDavid du Colombier 	ADIV,
623e12c5d1SDavid du Colombier 	ADIVD,
633e12c5d1SDavid du Colombier 	ADIVF,
643e12c5d1SDavid du Colombier 	ADIVU,
653e12c5d1SDavid du Colombier 	ADIVW,
663e12c5d1SDavid du Colombier 	AGLOBL,
673e12c5d1SDavid du Colombier 	AGOK,
683e12c5d1SDavid du Colombier 	AHISTORY,
693e12c5d1SDavid du Colombier 	AJAL,
703e12c5d1SDavid du Colombier 	AJMP,
713e12c5d1SDavid du Colombier 	AMOVB,
723e12c5d1SDavid du Colombier 	AMOVBU,
733e12c5d1SDavid du Colombier 	AMOVD,
743e12c5d1SDavid du Colombier 	AMOVDF,
753e12c5d1SDavid du Colombier 	AMOVDW,
763e12c5d1SDavid du Colombier 	AMOVF,
773e12c5d1SDavid du Colombier 	AMOVFD,
783e12c5d1SDavid du Colombier 	AMOVFW,
793e12c5d1SDavid du Colombier 	AMOVH,
803e12c5d1SDavid du Colombier 	AMOVHU,
813e12c5d1SDavid du Colombier 	AMOVW,
823e12c5d1SDavid du Colombier 	AMOVWD,
833e12c5d1SDavid du Colombier 	AMOVWF,
843e12c5d1SDavid du Colombier 	AMOVWL,
853e12c5d1SDavid du Colombier 	AMOVWR,
863e12c5d1SDavid du Colombier 	AMUL,
873e12c5d1SDavid du Colombier 	AMULD,
883e12c5d1SDavid du Colombier 	AMULF,
893e12c5d1SDavid du Colombier 	AMULU,
903e12c5d1SDavid du Colombier 	AMULW,
913e12c5d1SDavid du Colombier 	ANAME,
923e12c5d1SDavid du Colombier 	ANEGD,
933e12c5d1SDavid du Colombier 	ANEGF,
943e12c5d1SDavid du Colombier 	ANEGW,
953e12c5d1SDavid du Colombier 	ANOP,
963e12c5d1SDavid du Colombier 	ANOR,
973e12c5d1SDavid du Colombier 	AOR,
983e12c5d1SDavid du Colombier 	AREM,
993e12c5d1SDavid du Colombier 	AREMU,
1003e12c5d1SDavid du Colombier 	ARET,
1013e12c5d1SDavid du Colombier 	ARFE,
1023e12c5d1SDavid du Colombier 	ASGT,
1033e12c5d1SDavid du Colombier 	ASGTU,
1043e12c5d1SDavid du Colombier 	ASLL,
1053e12c5d1SDavid du Colombier 	ASRA,
1063e12c5d1SDavid du Colombier 	ASRL,
1073e12c5d1SDavid du Colombier 	ASUB,
1083e12c5d1SDavid du Colombier 	ASUBD,
1093e12c5d1SDavid du Colombier 	ASUBF,
1103e12c5d1SDavid du Colombier 	ASUBU,
1113e12c5d1SDavid du Colombier 	ASUBW,
1123e12c5d1SDavid du Colombier 	ASYSCALL,
1133e12c5d1SDavid du Colombier 	ATEXT,
1143e12c5d1SDavid du Colombier 	ATLBP,
1153e12c5d1SDavid du Colombier 	ATLBR,
1163e12c5d1SDavid du Colombier 	ATLBWI,
1173e12c5d1SDavid du Colombier 	ATLBWR,
1183e12c5d1SDavid du Colombier 	AWORD,
1193e12c5d1SDavid du Colombier 	AXOR,
1203e12c5d1SDavid du Colombier 
121bd389b36SDavid du Colombier 	AEND,
122219b2ee8SDavid du Colombier 
123219b2ee8SDavid du Colombier 	AMOVV,
124219b2ee8SDavid du Colombier 	AMOVVL,
125219b2ee8SDavid du Colombier 	AMOVVR,
126219b2ee8SDavid du Colombier 	ASLLV,
127219b2ee8SDavid du Colombier 	ASRAV,
128219b2ee8SDavid du Colombier 	ASRLV,
129219b2ee8SDavid du Colombier 	ADIVV,
130219b2ee8SDavid du Colombier 	ADIVVU,
131219b2ee8SDavid du Colombier 	AREMV,
132219b2ee8SDavid du Colombier 	AREMVU,
133219b2ee8SDavid du Colombier 	AMULV,
134219b2ee8SDavid du Colombier 	AMULVU,
135219b2ee8SDavid du Colombier 	AADDV,
136219b2ee8SDavid du Colombier 	AADDVU,
137219b2ee8SDavid du Colombier 	ASUBV,
138219b2ee8SDavid du Colombier 	ASUBVU,
139219b2ee8SDavid du Colombier 
140219b2ee8SDavid du Colombier 	ADYNT,
141219b2ee8SDavid du Colombier 	AINIT,
142219b2ee8SDavid du Colombier 
1437dd7cddfSDavid du Colombier 	ABCASE,
1447dd7cddfSDavid du Colombier 	ACASE,
1457dd7cddfSDavid du Colombier 
1467dd7cddfSDavid du Colombier 	ATRUNCFV,
1477dd7cddfSDavid du Colombier 	ATRUNCDV,
1487dd7cddfSDavid du Colombier 	ATRUNCFW,
1497dd7cddfSDavid du Colombier 	ATRUNCDW,
1507dd7cddfSDavid du Colombier 	AMOVWU,
1517dd7cddfSDavid du Colombier 	AMOVFV,
1527dd7cddfSDavid du Colombier 	AMOVDV,
1537dd7cddfSDavid du Colombier 	AMOVVF,
1547dd7cddfSDavid du Colombier 	AMOVVD,
1557dd7cddfSDavid du Colombier 
156*375daca8SDavid du Colombier 	ASIGNAME,
157*375daca8SDavid du Colombier 
158219b2ee8SDavid du Colombier 	ALAST,
1593e12c5d1SDavid du Colombier };
1603e12c5d1SDavid du Colombier 
1613e12c5d1SDavid du Colombier /* type/name */
1623e12c5d1SDavid du Colombier #define	D_GOK	0
1633e12c5d1SDavid du Colombier #define	D_NONE	1
1643e12c5d1SDavid du Colombier 
1653e12c5d1SDavid du Colombier /* type */
1663e12c5d1SDavid du Colombier #define	D_BRANCH (D_NONE+1)
1673e12c5d1SDavid du Colombier #define	D_OREG	(D_NONE+2)
1687dd7cddfSDavid du Colombier #define	D_EXTERN (D_NONE+3)	/* name */
1697dd7cddfSDavid du Colombier #define	D_STATIC (D_NONE+4)	/* name */
1707dd7cddfSDavid du Colombier #define	D_AUTO	(D_NONE+5)	/* name */
1717dd7cddfSDavid du Colombier #define	D_PARAM	(D_NONE+6)	/* name */
1723e12c5d1SDavid du Colombier #define	D_CONST	(D_NONE+7)
1733e12c5d1SDavid du Colombier #define	D_FCONST (D_NONE+8)
1743e12c5d1SDavid du Colombier #define	D_SCONST (D_NONE+9)
1753e12c5d1SDavid du Colombier #define	D_HI	(D_NONE+10)
1763e12c5d1SDavid du Colombier #define	D_LO	(D_NONE+11)
1773e12c5d1SDavid du Colombier #define	D_REG	(D_NONE+12)
1783e12c5d1SDavid du Colombier #define	D_FREG	(D_NONE+13)
1793e12c5d1SDavid du Colombier #define	D_FCREG	(D_NONE+14)
1803e12c5d1SDavid du Colombier #define	D_MREG	(D_NONE+15)
1813e12c5d1SDavid du Colombier #define	D_FILE	(D_NONE+16)
182219b2ee8SDavid du Colombier #define	D_OCONST (D_NONE+17)
183219b2ee8SDavid du Colombier #define	D_FILE1	(D_NONE+18)
1847dd7cddfSDavid du Colombier #define	D_VCONST (D_NONE+19)
1853e12c5d1SDavid du Colombier 
1863e12c5d1SDavid du Colombier /*
1873e12c5d1SDavid du Colombier  * this is the ranlib header
1883e12c5d1SDavid du Colombier  */
1893e12c5d1SDavid du Colombier #define	SYMDEF	"__.SYMDEF"
1903e12c5d1SDavid du Colombier 
1913e12c5d1SDavid du Colombier /*
1923e12c5d1SDavid du Colombier  * this is the simulated IEEE floating point
1933e12c5d1SDavid du Colombier  */
1943e12c5d1SDavid du Colombier typedef	struct	ieee	Ieee;
1953e12c5d1SDavid du Colombier struct	ieee
1963e12c5d1SDavid du Colombier {
1973e12c5d1SDavid du Colombier 	long	l;	/* contains ls-man	0xffffffff */
1983e12c5d1SDavid du Colombier 	long	h;	/* contains sign	0x80000000
1993e12c5d1SDavid du Colombier 				    exp		0x7ff00000
2003e12c5d1SDavid du Colombier 				    ms-man	0x000fffff */
2013e12c5d1SDavid du Colombier };
202