xref: /plan9-contrib/sys/src/libmach/4c/4.out.h (revision f8bc6aaf8056e137bcdfb6117a990ac3eff62cc9)
1*f8bc6aafSDavid du Colombier #define	NSNAME	8
2*f8bc6aafSDavid du Colombier #define	NSYM	50
3*f8bc6aafSDavid du Colombier #define	NREG	32
4*f8bc6aafSDavid du Colombier 
5*f8bc6aafSDavid du Colombier #define NOPROF	(1<<0)
6*f8bc6aafSDavid du Colombier #define DUPOK	(1<<1)
7*f8bc6aafSDavid du Colombier 
8*f8bc6aafSDavid du Colombier #define	REGZERO		0
9*f8bc6aafSDavid du Colombier #define	REGRET		1
10*f8bc6aafSDavid du Colombier #define	REGARG		1
11*f8bc6aafSDavid du Colombier /* compiler allocates R1 up as temps */
12*f8bc6aafSDavid du Colombier /* compiler allocates register variables R3-R23 */
13*f8bc6aafSDavid du Colombier #define	REGEXT		25
14*f8bc6aafSDavid du Colombier /* compiler allocates external registers R25 down */
15*f8bc6aafSDavid du Colombier /* dont use R26 R27 */
16*f8bc6aafSDavid du Colombier #define	REGTMP		28
17*f8bc6aafSDavid du Colombier #define	REGSP		29
18*f8bc6aafSDavid du Colombier #define	REGSB		30
19*f8bc6aafSDavid du Colombier #define	REGLINK		31
20*f8bc6aafSDavid du Colombier 
21*f8bc6aafSDavid du Colombier #define	FREGRET		0
22*f8bc6aafSDavid du Colombier /* compiler allocates register variables F4-F22 */
23*f8bc6aafSDavid du Colombier /* compiler allocates external registers F22 down */
24*f8bc6aafSDavid du Colombier #define	FREGEXT		22
25*f8bc6aafSDavid du Colombier #define	FREGZERO	24	/* both float and double */
26*f8bc6aafSDavid du Colombier #define	FREGHALF	26	/* double */
27*f8bc6aafSDavid du Colombier #define	FREGONE		28	/* double */
28*f8bc6aafSDavid du Colombier #define	FREGTWO		30	/* double */
29*f8bc6aafSDavid du Colombier 
30*f8bc6aafSDavid du Colombier enum	as
31*f8bc6aafSDavid du Colombier {
32*f8bc6aafSDavid du Colombier 	AXXX,
33*f8bc6aafSDavid du Colombier 
34*f8bc6aafSDavid du Colombier 	AABSD,
35*f8bc6aafSDavid du Colombier 	AABSF,
36*f8bc6aafSDavid du Colombier 	AABSW,
37*f8bc6aafSDavid du Colombier 	AADD,
38*f8bc6aafSDavid du Colombier 	AADDD,
39*f8bc6aafSDavid du Colombier 	AADDF,
40*f8bc6aafSDavid du Colombier 	AADDU,
41*f8bc6aafSDavid du Colombier 	AADDW,
42*f8bc6aafSDavid du Colombier 	AAND,
43*f8bc6aafSDavid du Colombier 	ABEQ,
44*f8bc6aafSDavid du Colombier 	ABFPF,
45*f8bc6aafSDavid du Colombier 	ABFPT,
46*f8bc6aafSDavid du Colombier 	ABGEZ,
47*f8bc6aafSDavid du Colombier 	ABGEZAL,
48*f8bc6aafSDavid du Colombier 	ABGTZ,
49*f8bc6aafSDavid du Colombier 	ABLEZ,
50*f8bc6aafSDavid du Colombier 	ABLTZ,
51*f8bc6aafSDavid du Colombier 	ABLTZAL,
52*f8bc6aafSDavid du Colombier 	ABNE,
53*f8bc6aafSDavid du Colombier 	ABREAK,
54*f8bc6aafSDavid du Colombier 	ACMPEQD,
55*f8bc6aafSDavid du Colombier 	ACMPEQF,
56*f8bc6aafSDavid du Colombier 	ACMPGED,
57*f8bc6aafSDavid du Colombier 	ACMPGEF,
58*f8bc6aafSDavid du Colombier 	ACMPGTD,
59*f8bc6aafSDavid du Colombier 	ACMPGTF,
60*f8bc6aafSDavid du Colombier 	ADATA,
61*f8bc6aafSDavid du Colombier 	ADIV,
62*f8bc6aafSDavid du Colombier 	ADIVD,
63*f8bc6aafSDavid du Colombier 	ADIVF,
64*f8bc6aafSDavid du Colombier 	ADIVU,
65*f8bc6aafSDavid du Colombier 	ADIVW,
66*f8bc6aafSDavid du Colombier 	AGLOBL,
67*f8bc6aafSDavid du Colombier 	AGOK,
68*f8bc6aafSDavid du Colombier 	AHISTORY,
69*f8bc6aafSDavid du Colombier 	AJAL,
70*f8bc6aafSDavid du Colombier 	AJMP,
71*f8bc6aafSDavid du Colombier 	AMOVB,
72*f8bc6aafSDavid du Colombier 	AMOVBU,
73*f8bc6aafSDavid du Colombier 	AMOVD,
74*f8bc6aafSDavid du Colombier 	AMOVDF,
75*f8bc6aafSDavid du Colombier 	AMOVDW,
76*f8bc6aafSDavid du Colombier 	AMOVF,
77*f8bc6aafSDavid du Colombier 	AMOVFD,
78*f8bc6aafSDavid du Colombier 	AMOVFW,
79*f8bc6aafSDavid du Colombier 	AMOVH,
80*f8bc6aafSDavid du Colombier 	AMOVHU,
81*f8bc6aafSDavid du Colombier 	AMOVW,
82*f8bc6aafSDavid du Colombier 	AMOVWD,
83*f8bc6aafSDavid du Colombier 	AMOVWF,
84*f8bc6aafSDavid du Colombier 	AMOVWL,
85*f8bc6aafSDavid du Colombier 	AMOVWR,
86*f8bc6aafSDavid du Colombier 	AMUL,
87*f8bc6aafSDavid du Colombier 	AMULD,
88*f8bc6aafSDavid du Colombier 	AMULF,
89*f8bc6aafSDavid du Colombier 	AMULU,
90*f8bc6aafSDavid du Colombier 	AMULW,
91*f8bc6aafSDavid du Colombier 	ANAME32,
92*f8bc6aafSDavid du Colombier 	ANAME,
93*f8bc6aafSDavid du Colombier 	ANEGD,
94*f8bc6aafSDavid du Colombier 	ANEGF,
95*f8bc6aafSDavid du Colombier 	ANEGW,
96*f8bc6aafSDavid du Colombier 	ANOP,
97*f8bc6aafSDavid du Colombier 	ANOR,
98*f8bc6aafSDavid du Colombier 	AOR,
99*f8bc6aafSDavid du Colombier 	AREM,
100*f8bc6aafSDavid du Colombier 	AREMU,
101*f8bc6aafSDavid du Colombier 	ARET,
102*f8bc6aafSDavid du Colombier 	ARFE,
103*f8bc6aafSDavid du Colombier 	ASGT,
104*f8bc6aafSDavid du Colombier 	ASGTU,
105*f8bc6aafSDavid du Colombier 	ASLL,
106*f8bc6aafSDavid du Colombier 	ASRA,
107*f8bc6aafSDavid du Colombier 	ASRL,
108*f8bc6aafSDavid du Colombier 	ASUB,
109*f8bc6aafSDavid du Colombier 	ASUBD,
110*f8bc6aafSDavid du Colombier 	ASUBF,
111*f8bc6aafSDavid du Colombier 	ASUBU,
112*f8bc6aafSDavid du Colombier 	ASUBW,
113*f8bc6aafSDavid du Colombier 	ASYSCALL,
114*f8bc6aafSDavid du Colombier 	ATEXT,
115*f8bc6aafSDavid du Colombier 	ATLBP,
116*f8bc6aafSDavid du Colombier 	ATLBR,
117*f8bc6aafSDavid du Colombier 	ATLBWI,
118*f8bc6aafSDavid du Colombier 	ATLBWR,
119*f8bc6aafSDavid du Colombier 	AWORD,
120*f8bc6aafSDavid du Colombier 	AXOR,
121*f8bc6aafSDavid du Colombier 
122*f8bc6aafSDavid du Colombier 	AEND,
123*f8bc6aafSDavid du Colombier 
124*f8bc6aafSDavid du Colombier 	AMOVV,
125*f8bc6aafSDavid du Colombier 	AMOVVL,
126*f8bc6aafSDavid du Colombier 	AMOVVR,
127*f8bc6aafSDavid du Colombier 	ASLLV,
128*f8bc6aafSDavid du Colombier 	ASRAV,
129*f8bc6aafSDavid du Colombier 	ASRLV,
130*f8bc6aafSDavid du Colombier 	ADIVV,
131*f8bc6aafSDavid du Colombier 	ADIVVU,
132*f8bc6aafSDavid du Colombier 	AREMV,
133*f8bc6aafSDavid du Colombier 	AREMVU,
134*f8bc6aafSDavid du Colombier 	AMULV,
135*f8bc6aafSDavid du Colombier 	AMULVU,
136*f8bc6aafSDavid du Colombier 	AADDV,
137*f8bc6aafSDavid du Colombier 	AADDVU,
138*f8bc6aafSDavid du Colombier 	ASUBV,
139*f8bc6aafSDavid du Colombier 	ASUBVU,
140*f8bc6aafSDavid du Colombier 
141*f8bc6aafSDavid du Colombier 	ADYNT,
142*f8bc6aafSDavid du Colombier 	AINIT,
143*f8bc6aafSDavid du Colombier 
144*f8bc6aafSDavid du Colombier 	ABCASE,
145*f8bc6aafSDavid du Colombier 	ACASE,
146*f8bc6aafSDavid du Colombier 
147*f8bc6aafSDavid du Colombier 	ATRUNCFV,
148*f8bc6aafSDavid du Colombier 	ATRUNCDV,
149*f8bc6aafSDavid du Colombier 	ATRUNCFW,
150*f8bc6aafSDavid du Colombier 	ATRUNCDW,
151*f8bc6aafSDavid du Colombier 	AMOVWU,
152*f8bc6aafSDavid du Colombier 	AMOVFV,
153*f8bc6aafSDavid du Colombier 	AMOVDV,
154*f8bc6aafSDavid du Colombier 	AMOVVF,
155*f8bc6aafSDavid du Colombier 	AMOVVD,
156*f8bc6aafSDavid du Colombier 
157*f8bc6aafSDavid du Colombier 	ASIGNAME,
158*f8bc6aafSDavid du Colombier 
159*f8bc6aafSDavid du Colombier 	ALAST,
160*f8bc6aafSDavid du Colombier };
161*f8bc6aafSDavid du Colombier 
162*f8bc6aafSDavid du Colombier /* type/name */
163*f8bc6aafSDavid du Colombier #define	D_GOK	0
164*f8bc6aafSDavid du Colombier #define	D_NONE	1
165*f8bc6aafSDavid du Colombier 
166*f8bc6aafSDavid du Colombier /* type */
167*f8bc6aafSDavid du Colombier #define	D_BRANCH (D_NONE+1)
168*f8bc6aafSDavid du Colombier #define	D_OREG	(D_NONE+2)
169*f8bc6aafSDavid du Colombier #define	D_EXTERN (D_NONE+3)	/* name */
170*f8bc6aafSDavid du Colombier #define	D_STATIC (D_NONE+4)	/* name */
171*f8bc6aafSDavid du Colombier #define	D_AUTO	(D_NONE+5)	/* name */
172*f8bc6aafSDavid du Colombier #define	D_PARAM	(D_NONE+6)	/* name */
173*f8bc6aafSDavid du Colombier #define	D_CONST	(D_NONE+7)
174*f8bc6aafSDavid du Colombier #define	D_FCONST (D_NONE+8)
175*f8bc6aafSDavid du Colombier #define	D_SCONST (D_NONE+9)
176*f8bc6aafSDavid du Colombier #define	D_HI	(D_NONE+10)
177*f8bc6aafSDavid du Colombier #define	D_LO	(D_NONE+11)
178*f8bc6aafSDavid du Colombier #define	D_REG	(D_NONE+12)
179*f8bc6aafSDavid du Colombier #define	D_FREG	(D_NONE+13)
180*f8bc6aafSDavid du Colombier #define	D_FCREG	(D_NONE+14)
181*f8bc6aafSDavid du Colombier #define	D_MREG	(D_NONE+15)
182*f8bc6aafSDavid du Colombier #define	D_FILE	(D_NONE+16)
183*f8bc6aafSDavid du Colombier #define	D_OCONST (D_NONE+17)
184*f8bc6aafSDavid du Colombier #define	D_FILE1	(D_NONE+18)
185*f8bc6aafSDavid du Colombier #define	D_VCONST (D_NONE+19)
186*f8bc6aafSDavid du Colombier 
187*f8bc6aafSDavid du Colombier /*
188*f8bc6aafSDavid du Colombier  * this is the ranlib header
189*f8bc6aafSDavid du Colombier  */
190*f8bc6aafSDavid du Colombier #define	SYMDEF	"__.SYMDEF"
191*f8bc6aafSDavid du Colombier 
192*f8bc6aafSDavid du Colombier /*
193*f8bc6aafSDavid du Colombier  * this is the simulated IEEE floating point
194*f8bc6aafSDavid du Colombier  */
195*f8bc6aafSDavid du Colombier typedef	struct	ieee	Ieee;
196*f8bc6aafSDavid du Colombier struct	ieee
197*f8bc6aafSDavid du Colombier {
198*f8bc6aafSDavid du Colombier 	long	l;	/* contains ls-man	0xffffffff */
199*f8bc6aafSDavid du Colombier 	long	h;	/* contains sign	0x80000000
200*f8bc6aafSDavid du Colombier 				    exp		0x7ff00000
201*f8bc6aafSDavid du Colombier 				    ms-man	0x000fffff */
202*f8bc6aafSDavid du Colombier };
203