Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#define	NSNAME	8
2
#define	NSYM	50
3
#define	NREG	32
4
#define NOPROF	(1<<0)
5
#define DUPOK	(1<<1)
6
 
7
enum
8
{
9
	REGZERO		= 0,	/* always zero */
10
	REGSP		= 1,	/* stack pointer */
11
	REGSB		= 2,	/* static pointer */
12
	REGSB1		= 3,	/* (possible) second static pointer */
13
	REGEXT		= 6,	/* first external register, grows-- */
14
	REGRET		= 7,	/* return register and first temp, grows++ */
15
	REGTMP		= 14,	/* used by the loader */
16
	REGLINK		= 15,	/* subroutine linkage */
17
	REGARG		= 7,	/* first arg passed in */
18
 
19
	FREGRET		= 0,
20
	FREGEXT		= 22,	/* first external register */
21
	FREGZERO	= 24,	/* both float and double */
22
	FREGHALF	= 26,	/* double */
23
	FREGONE		= 28,	/* double */
24
	FREGTWO		= 30	/* double */
25
/*
26
 * GENERAL:
27
 *
28
 * compiler allocates R7 up as temps
29
 * compiler allocates external registers R6 down
30
 * compiler allocates register variables F4-F22
31
 * compiler allocates external registers F22 down
32
 */
33
};
34
 
35
enum	as
36
{
37
	AXXX	= 0,
38
	AADD,
39
	AADDCC,
40
	AADDX,
41
	AADDXCC,
42
	AAND,
43
	AANDCC,
44
	AANDN,
45
	AANDNCC,
46
	ABA,
47
	ABCC,
48
	ABCS,
49
	ABE,
50
	ABG,
51
	ABGE,
52
	ABGU,
53
	ABL,
54
	ABLE,
55
	ABLEU,
56
	ABN,
57
	ABNE,
58
	ABNEG,
59
	ABPOS,
60
	ABVC,
61
	ABVS,
62
	ACB0,
63
	ACB01,
64
	ACB012,
65
	ACB013,
66
	ACB02,
67
	ACB023,
68
	ACB03,
69
	ACB1,
70
	ACB12,
71
	ACB123,
72
	ACB13,
73
	ACB2,
74
	ACB23,
75
	ACB3,
76
	ACBA,
77
	ACBN,
78
	ACMP,		/* pseudo op */
79
	ACPOP1,
80
	ACPOP2,
81
	ADATA,
82
	ADIV,
83
	ADIVL,
84
	AFABSD,		/* pseudo op */
85
	AFABSF,
86
	AFABSX,		/* pseudo op */
87
	AFADDD,
88
	AFADDF,
89
	AFADDX,
90
	AFBA,
91
	AFBE,
92
	AFBG,
93
	AFBGE,
94
	AFBL,
95
	AFBLE,
96
	AFBLG,
97
	AFBN,
98
	AFBNE,
99
	AFBO,
100
	AFBU,
101
	AFBUE,
102
	AFBUG,
103
	AFBUGE,
104
	AFBUL,
105
	AFBULE,
106
	AFCMPD,
107
	AFCMPED,
108
	AFCMPEF,
109
	AFCMPEX,
110
	AFCMPF,
111
	AFCMPX,
112
	AFDIVD,
113
	AFDIVF,
114
	AFDIVX,
115
	AFMOVD,		/* pseudo op */
116
	AFMOVDF,
117
	AFMOVDW,
118
	AFMOVDX,
119
	AFMOVF,
120
	AFMOVFD,
121
	AFMOVFW,
122
	AFMOVFX,
123
	AFMOVWD,
124
	AFMOVWF,
125
	AFMOVWX,
126
	AFMOVX,		/* pseudo op */
127
	AFMOVXD,
128
	AFMOVXF,
129
	AFMOVXW,
130
	AFMULD,
131
	AFMULF,
132
	AFMULX,
133
	AFNEGD,		/* pseudo op */
134
	AFNEGF,
135
	AFNEGX,		/* pseudo op */
136
	AFSQRTD,
137
	AFSQRTF,
138
	AFSQRTX,
139
	AFSUBD,
140
	AFSUBF,
141
	AFSUBX,
142
	AGLOBL,
143
	AGOK,
144
	AHISTORY,
145
	AIFLUSH,
146
	AJMPL,
147
	AJMP,
148
	AMOD,
149
	AMODL,
150
	AMOVB,
151
	AMOVBU,
152
	AMOVD,
153
	AMOVH,
154
	AMOVHU,
155
	AMOVW,
156
	AMUL,
157
	AMULSCC,
158
	ANAME,
159
	ANOP,
160
	AOR,
161
	AORCC,
162
	AORN,
163
	AORNCC,
164
	ARESTORE,
165
	ARETT,
166
	ARETURN,
167
	ASAVE,
168
	ASLL,
169
	ASRA,
170
	ASRL,
171
	ASUB,
172
	ASUBCC,
173
	ASUBX,
174
	ASUBXCC,
175
	ASWAP,
176
	ATA,
177
	ATADDCC,
178
	ATADDCCTV,
179
	ATAS,
180
	ATCC,
181
	ATCS,
182
	ATE,
183
	ATEXT,
184
	ATG,
185
	ATGE,
186
	ATGU,
187
	ATL,
188
	ATLE,
189
	ATLEU,
190
	ATN,
191
	ATNE,
192
	ATNEG,
193
	ATPOS,
194
	ATSUBCC,
195
	ATSUBCCTV,
196
	ATVC,
197
	ATVS,
198
	AUNIMP,
199
	AWORD,
200
	AXNOR,
201
	AXNORCC,
202
	AXOR,
203
	AXORCC,
204
	AEND,
205
	ADYNT,
206
	AINIT,
207
	ASIGNAME,
208
	ALAST
209
};
210
 
211
/* type/name */
212
enum
213
{
214
	D_GOK	= 0,
215
	D_NONE,
216
 
217
/* name */
218
	D_EXTERN,
219
	D_STATIC,
220
	D_AUTO,
221
	D_PARAM,
222
 
223
/* type */
224
	D_BRANCH,
225
	D_OREG,
226
	D_ASI,
227
	D_CONST,
228
	D_FCONST,
229
	D_SCONST,
230
	D_REG,
231
	D_FREG,
232
	D_CREG,
233
	D_PREG,
234
	D_FILE,
235
	D_FILE1,
236
 
237
/* reg names iff type is D_PREG */
238
	D_CPQ	= 0,
239
	D_CSR,
240
	D_FPQ,
241
	D_FSR,
242
	D_PSR,
243
	D_TBR,
244
	D_WIM,
245
	D_Y
246
};
247
 
248
/*
249
 * this is the ranlib header
250
 */
251
#define	SYMDEF	"__.SYMDEF"
252
 
253
/*
254
 * this is the simulated IEEE floating point
255
 */
256
typedef	struct	ieee	Ieee;
257
struct	ieee
258
{
259
	long	l;	/* contains ls-man	0xffffffff */
260
	long	h;	/* contains sign	0x80000000
261
				    exp		0x7ff00000
262
				    ms-man	0x000fffff */
263
};