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