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
	REGRET		= 0,	/* return register and first temp, grows++ */
10
	REGARG		= 0,	/* first arg passed in */
11
	REGEXT		= 15,	/* first external register, grows-- */
12
 
13
	REGLINK		= 26,	/* subroutine linkage */
14
	REGTMP		= 27,	/* used by the loader */
15
	REGTMP2		= 28,	/* used by the loader */
16
	REGSB		= 29,	/* static pointer */
17
	REGSP		= 30,	/* stack pointer */
18
	REGZERO		= 31,	/* always zero */
19
 
20
	FREGRET		= 0,
21
	FREGEXT		= 27,	/* first external register */
22
	FREGHALF	= 28,	/* double */
23
	FREGONE		= 29,	/* double */
24
	FREGTWO		= 30,	/* double */
25
	FREGZERO	= 31,	/* both float and double */
26
};
27
 
28
enum	as
29
{
30
	AXXX,
31
	AGOK,
32
	ATEXT,
33
	ADATA,
34
	AGLOBL,
35
	AHISTORY,
36
	ANAME,
37
	AWORD,
38
 
39
	ANOP,
40
 
41
	AMOVL,
42
	AMOVLU,
43
	AMOVQ,
44
	AMOVQU,
45
	AMOVS,
46
	AMOVT,
47
 
48
	AMOVB,
49
	AMOVBU,
50
	AMOVW,
51
	AMOVWU,
52
 
53
	AMOVA,
54
	AMOVAH,
55
 
56
	AMOVLL,
57
	AMOVQL,
58
	AMOVLC,
59
	AMOVQC,
60
 
61
	AMOVQP,
62
	AMOVLP,
63
 
64
	AADDL,
65
	AADDLV,
66
	AADDQ,
67
	AADDQV,
68
	AS4ADDL,
69
	AS4ADDQ,
70
	AS8ADDL,
71
	AS8ADDQ,
72
	AS4SUBL,
73
	AS4SUBQ,
74
	AS8SUBL,
75
	AS8SUBQ,
76
	ASUBL,
77
	ASUBLV,
78
	ASUBQ,
79
	ASUBQV,
80
 
81
	ACMPEQ,
82
	ACMPGT,
83
	ACMPGE,
84
	ACMPUGT,
85
	ACMPUGE,
86
	ACMPBLE,
87
 
88
	AAND,
89
	AANDNOT,
90
	AOR,
91
	AORNOT,
92
	AXOR,
93
	AXORNOT,
94
 
95
	ACMOVEQ,
96
	ACMOVNE,
97
	ACMOVLT,
98
	ACMOVGE,
99
	ACMOVLE,
100
	ACMOVGT,
101
	ACMOVLBC,
102
	ACMOVLBS,
103
 
104
	AMULL,
105
	AMULQ,
106
	AMULLV,
107
	AMULQV,
108
	AUMULH,
109
	ADIVQ,
110
	AMODQ,
111
	ADIVQU,
112
	AMODQU,
113
	ADIVL,
114
	AMODL,
115
	ADIVLU,
116
	AMODLU,
117
 
118
	ASLLQ,
119
	ASRLQ,
120
	ASRAQ,
121
	ASLLL,
122
	ASRLL,
123
	ASRAL,
124
 
125
	AEXTBL,
126
	AEXTWL,
127
	AEXTLL,
128
	AEXTQL,
129
	AEXTWH,
130
	AEXTLH,
131
	AEXTQH,
132
 
133
	AINSBL,
134
	AINSWL,
135
	AINSLL,
136
	AINSQL,
137
	AINSWH,
138
	AINSLH,
139
	AINSQH,
140
 
141
	AMSKBL,
142
	AMSKWL,
143
	AMSKLL,
144
	AMSKQL,
145
	AMSKWH,
146
	AMSKLH,
147
	AMSKQH,
148
 
149
	AZAP,
150
	AZAPNOT,
151
 
152
	AJMP,
153
	AJSR,
154
	ARET,
155
 
156
	ABR,
157
	ABSR,
158
 
159
	ABEQ,
160
	ABNE,
161
	ABLT,
162
	ABGE,
163
	ABLE,
164
	ABGT,
165
	ABLBC,
166
	ABLBS,
167
 
168
	AFBEQ,
169
	AFBNE,
170
	AFBLT,
171
	AFBGE,
172
	AFBLE,
173
	AFBGT,
174
 
175
	ATRAPB,
176
	AMB,
177
	AFETCH,
178
	AFETCHM,
179
	ARPCC,
180
 
181
	ACPYS,
182
	ACPYSN,
183
	ACPYSE,
184
	ACVTLQ,
185
	ACVTQL,
186
	AFCMOVEQ,
187
	AFCMOVNE,
188
	AFCMOVLT,
189
	AFCMOVGE,
190
	AFCMOVLE,
191
	AFCMOVGT,
192
 
193
	AADDS,
194
	AADDT,
195
	ACMPTEQ,
196
	ACMPTGT,
197
	ACMPTGE,
198
	ACMPTUN,
199
	ACVTQS,
200
	ACVTQT,
201
	ACVTTS,
202
	ACVTTQ,
203
	ADIVS,
204
	ADIVT,
205
	AMULS,
206
	AMULT,
207
	ASUBS,
208
	ASUBT,
209
 
210
	ACALL_PAL,
211
	AREI,
212
 
213
	AEND,
214
 
215
	ADYNT,
216
	AINIT,
217
 
218
	ASIGNAME,
219
 
220
	ALAST,
221
};
222
 
223
/* type/name */
224
enum
225
{
226
	D_GOK	= 0,
227
	D_NONE,
228
 
229
/* name */
230
	D_EXTERN,
231
	D_STATIC,
232
	D_AUTO,
233
	D_PARAM,
234
 
235
/* type */
236
	D_BRANCH,
237
	D_OREG,
238
	D_CONST,
239
	D_FCONST,
240
	D_SCONST,
241
	D_REG,
242
	D_FREG,
243
	D_FCREG,
244
	D_PREG,
245
	D_PCC,
246
	D_FILE,
247
	D_FILE1,
248
};
249
 
250
/*
251
 * this is the ranlib header
252
 */
253
#define	SYMDEF	"__.SYMDEF"
254
 
255
/*
256
 * this is the simulated IEEE floating point
257
 */
258
typedef	struct	ieee	Ieee;
259
struct	ieee
260
{
261
	long	l;	/* contains ls-man	0xffffffff */
262
	long	h;	/* contains sign	0x80000000
263
				    exp		0x7ff00000
264
				    ms-man	0x000fffff */
265
};