Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
 
32
 
33
/*
34
			    VERSION INFORMATION
35
			    ===================
36
 
37
--------------------------------------------------------------------------
38
$Header: /u/g/release/CVSROOT/Source/src/installers/sparc/common/sparcins.h,v 1.1.1.1 1998/01/17 15:55:55 release Exp $
39
--------------------------------------------------------------------------
40
$Log: sparcins.h,v $
41
 * Revision 1.1.1.1  1998/01/17  15:55:55  release
42
 * First version to be checked into rolling release.
43
 *
44
 * Revision 1.2  1995/07/14  16:33:58  john
45
 * New type
46
 *
47
 * Revision 1.1.1.1  1995/03/13  10:18:57  john
48
 * Entered into CVS
49
 *
50
 * Revision 1.2  1994/07/04  09:24:54  djch
51
 * Jun94 tape version
52
 *
53
 * Revision 1.1  1994/05/03  14:50:41  djch
54
 * Initial revision
55
 *
56
 * Revision 1.1  93/06/24  14:59:25  14:59:25  ra (Robert Andrews)
57
 * Initial revision
58
 * 
59
--------------------------------------------------------------------------
60
*/
61
 
62
 
63
#ifndef SPARCINS_INCLUDED
64
#define SPARCINS_INCLUDED
65
 
66
 
67
/*
68
    TYPES REPRESENTING INSTRUCTIONS
69
*/
70
 
71
typedef CONST char ins_t [] ;
72
typedef CONST char *ins_p ;
73
typedef char * instruction;
74
 
75
/*
76
    THE NIL INSTRUCTION
77
*/
78
 
79
#define I_NIL		null
80
 
81
 
82
/*
83
    INSTRUCTION SPECIFICATION
84
 
85
    If INS_DEFINE is defined then the instructions i_add etc are defined.
86
    Otherwise they are declared.
87
*/
88
 
89
#ifdef INS_DEFINE
90
#define INS( I, S )	ins_t I = S
91
#else
92
#define INS( I, S )	extern ins_t I
93
#endif
94
 
95
 
96
/* BASIC INSTRUCTIONS */
97
INS ( i_add, "add" ) ;
98
INS ( i_addcc, "addcc" ) ;
99
INS ( i_addx, "addx" ) ;
100
INS ( i_addxcc, "addxcc" ) ;
101
INS ( i_and, "and" ) ;
102
INS ( i_andcc, "andcc" ) ;
103
INS ( i_andn, "andn" ) ;
104
INS ( i_andncc, "andncc" ) ;
105
INS ( i_b, "b" ) ;
106
INS ( i_ba, "ba" ) ;
107
INS ( i_bcc, "bcc" ) ;
108
INS ( i_bclr, "bclr" ) ;
109
INS ( i_bcs, "bcs" ) ;
110
INS ( i_be, "be" ) ;
111
INS ( i_bg, "bg" ) ;
112
INS ( i_bge, "bge" ) ;
113
INS ( i_bgeu, "bgeu" ) ;
114
INS ( i_bgt, "bgt" ) ;
115
INS ( i_bgtu, "bgtu" ) ;
116
INS ( i_bgu, "bgu" ) ;
117
INS ( i_bl, "bl" ) ;
118
INS ( i_ble, "ble" ) ;
119
INS ( i_bleu, "bleu" ) ;
120
INS ( i_blt, "blt" ) ;
121
INS ( i_bltu, "bltu" ) ;
122
INS ( i_blu, "blu" ) ;
123
INS ( i_bn, "bn" ) ;
124
INS ( i_bne, "bne" ) ;
125
INS ( i_bneg, "bneg" ) ;
126
INS ( i_bnz, "bnz" ) ;
127
INS ( i_bpos, "bpos" ) ;
128
INS ( i_bset, "bset" ) ;
129
INS ( i_btog, "btog" ) ;
130
INS ( i_btst, "btst" ) ;
131
INS ( i_bvc, "bvc" ) ;
132
INS ( i_bvs, "bvs" ) ;
133
INS ( i_bz, "bz" ) ;
134
INS ( i_call, "call" ) ;
135
INS ( i_clr, "clr" ) ;
136
INS ( i_clrb, "clrb" ) ;
137
INS ( i_clrh, "clrh" ) ;
138
INS ( i_cmp, "cmp" ) ;
139
INS ( i_dec, "dec" ) ;
140
INS ( i_deccc, "deccc" ) ;
141
INS ( i_fabsd, "fabsd" ) ;
142
INS ( i_fabsq, "fabsq" ) ;
143
INS ( i_fabss, "fabss" ) ;
144
INS ( i_faddd, "faddd" ) ;
145
INS ( i_faddq, "faddq" ) ;
146
INS ( i_fadds, "fadds" ) ;
147
INS ( i_faddx, "faddx" ) ;
148
INS ( i_fasbx, "fasbx" ) ;
149
INS ( i_fba, "fba" ) ;
150
INS ( i_fbe, "fbe" ) ;
151
INS ( i_fbg, "fbg" ) ;
152
INS ( i_fbge, "fbge" ) ;
153
INS ( i_fbl, "fbl" ) ;
154
INS ( i_fble, "fble" ) ;
155
INS ( i_fblg, "fblg" ) ;
156
INS ( i_fbn, "fbn" ) ;
157
INS ( i_fbne, "fbne" ) ;
158
INS ( i_fbnz, "fbnz" ) ;
159
INS ( i_fbo, "fbo" ) ;
160
INS ( i_fbu, "fbu" ) ;
161
INS ( i_fbue, "fbue" ) ;
162
INS ( i_fbug, "fbug" ) ;
163
INS ( i_fbuge, "fbuge" ) ;
164
INS ( i_fbul, "fbul" ) ;
165
INS ( i_fbule, "fbule" ) ;
166
INS ( i_fbz, "fbz" ) ;
167
INS ( i_fcmpd, "fcmpd" ) ;
168
INS ( i_fcmped, "fcmped" ) ;
169
INS ( i_fcmpeq, "fcmpeq" ) ;
170
INS ( i_fcmpes, "fcmpes" ) ;
171
INS ( i_fcmpex, "fcmpex" ) ;
172
INS ( i_fcmpq, "fcmpq" ) ;
173
INS ( i_fcmps, "fcmps" ) ;
174
INS ( i_fcmpx, "fcmpx" ) ;
175
INS ( i_fdivd, "fdivd" ) ;
176
INS ( i_fdivq, "fdivq" ) ;
177
INS ( i_fdivs, "fdivs" ) ;
178
INS ( i_fdivx, "fdivx" ) ;
179
INS ( i_fdmulq, "fdmulq" ) ;
180
INS ( i_fdmulx, "fdmulx" ) ;
181
INS ( i_fdtoi, "fdtoi" ) ;
182
INS ( i_fdtoq, "fdtoq" ) ;
183
INS ( i_fdtos, "fdtos" ) ;
184
INS ( i_fdtox, "fdtox" ) ;
185
INS ( i_fitod, "fitod" ) ;
186
INS ( i_fitoq, "fitoq" ) ;
187
INS ( i_fitos, "fitos" ) ;
188
INS ( i_fitox, "fitox" ) ;
189
INS ( i_fmovd, "fmovd" ) ;
190
INS ( i_fmovq, "fmovq" ) ;
191
INS ( i_fmovs, "fmovs" ) ;
192
INS ( i_fmovx, "fmovx" ) ;
193
INS ( i_fmuld, "fmuld" ) ;
194
INS ( i_fmulq, "fmulq" ) ;
195
INS ( i_fmuls, "fmuls" ) ;
196
INS ( i_fmulx, "fmulx" ) ;
197
INS ( i_fnegd, "fnegd" ) ;
198
INS ( i_fnegq, "fnegq" ) ;
199
INS ( i_fnegs, "fnegs" ) ;
200
INS ( i_fnegx, "fnegx" ) ;
201
INS ( i_fqtod, "fqtod" ) ;
202
INS ( i_fqtoi, "fqtoi" ) ;
203
INS ( i_fqtos, "fqtos" ) ;
204
INS ( i_fsmuld, "fsmuld" ) ;
205
INS ( i_fsqrtd, "fsqrtd" ) ;
206
INS ( i_fsqrtq, "fsqrtq" ) ;
207
INS ( i_fsqrts, "fsqrts" ) ;
208
INS ( i_fsqrtx, "fsqrtx" ) ;
209
INS ( i_fstod, "fstod" ) ;
210
INS ( i_fstoi, "fstoi" ) ;
211
INS ( i_fstoq, "fstoq" ) ;
212
INS ( i_fstox, "fstox" ) ;
213
INS ( i_fsubd, "fsubd" ) ;
214
INS ( i_fsubq, "fsubq" ) ;
215
INS ( i_fsubs, "fsubs" ) ;
216
INS ( i_fsubx, "fsubx" ) ;
217
INS ( i_fxtod, "fxtod" ) ;
218
INS ( i_fxtoi, "fxtoi" ) ;
219
INS ( i_fxtos, "fxtos" ) ;
220
INS ( i_inc, "inc" ) ;
221
INS ( i_inccc, "inccc" ) ;
222
INS ( i_jmp, "jmp" ) ;
223
INS ( i_jmpl, "jmpl" ) ;
224
INS ( i_ld, "ld" ) ;
225
INS ( i_ld2, "ld2" ) ;
226
INS ( i_ldc, "ldc" ) ;
227
INS ( i_ldcsr, "ldcsr" ) ;
228
INS ( i_ldd, "ldd" ) ;
229
INS ( i_lddc, "lddc" ) ;
230
INS ( i_lddf, "lddf" ) ;
231
INS ( i_ldf, "ldf" ) ;
232
INS ( i_ldfsr, "ldfsr" ) ;
233
INS ( i_ldsb, "ldsb" ) ;
234
INS ( i_ldsh, "ldsh" ) ;
235
INS ( i_ldst, "ldst" ) ;
236
INS ( i_ldub, "ldub" ) ;
237
INS ( i_lduh, "lduh" ) ;
238
INS ( i_mov, "mov" ) ;
239
INS ( i_mulscc, "mulscc" ) ;
240
INS ( i_neg, "neg" ) ;
241
INS ( i_nop, "nop" ) ;
242
INS ( i_not, "not" ) ;
243
INS ( i_or, "or" ) ;
244
INS ( i_orcc, "orcc" ) ;
245
INS ( i_orn, "orn" ) ;
246
INS ( i_orncc, "orncc" ) ;
247
INS ( i_rdy, "rdy" ) ;
248
INS ( i_restore, "restore" ) ;
249
INS ( i_ret, "ret" ) ;
250
INS ( i_retl, "retl" ) ;
251
INS ( i_rett, "rett" ) ;
252
INS ( i_save, "save" ) ;
253
INS ( i_sdiv, "sdiv" ) ;
254
INS ( i_sdivcc, "sdivcc" ) ;
255
INS ( i_set, "set" ) ;
256
INS ( i_sethi, "sethi" ) ;
257
INS ( i_sll, "sll" ) ;
258
INS ( i_smul, "smul" ) ;
259
INS ( i_smulcc, "smulcc" ) ;
260
INS ( i_sra, "sra" ) ;
261
INS ( i_srl, "srl" ) ;
262
INS ( i_st, "st" ) ;
263
INS ( i_st2, "st2" ) ;
264
INS ( i_stb, "stb" ) ;
265
INS ( i_stc, "stc" ) ;
266
INS ( i_stcsr, "stcsr" ) ;
267
INS ( i_std, "std" ) ;
268
INS ( i_stdc, "stdc" ) ;
269
INS ( i_stdcq, "stdcq" ) ;
270
INS ( i_stdf, "stdf" ) ;
271
INS ( i_stdfq, "stdfq" ) ;
272
INS ( i_stf, "stf" ) ;
273
INS ( i_stfsr, "stfsr" ) ;
274
INS ( i_sth, "sth" ) ;
275
INS ( i_sub, "sub" ) ;
276
INS ( i_subcc, "subcc" ) ;
277
INS ( i_subx, "subx" ) ;
278
INS ( i_subxcc, "subxcc" ) ;
279
INS ( i_t, "t" ) ;
280
INS ( i_ta, "ta" ) ;
281
INS ( i_taddcc, "taddcc" ) ;
282
INS ( i_taddcctv, "taddcctv" ) ;
283
INS ( i_tcc, "tcc" ) ;
284
INS ( i_tcs, "tcs" ) ;
285
INS ( i_te, "te" ) ;
286
INS ( i_teq, "teq" ) ;
287
INS ( i_tg, "tg" ) ;
288
INS ( i_tge, "tge" ) ;
289
INS ( i_tgeu, "tgeu" ) ;
290
INS ( i_tgt, "tgt" ) ;
291
INS ( i_tgtu, "tgtu" ) ;
292
INS ( i_tgu, "tgu" ) ;
293
INS ( i_tl, "tl" ) ;
294
INS ( i_tle, "tle" ) ;
295
INS ( i_tleu, "tleu" ) ;
296
INS ( i_tlt, "tlt" ) ;
297
INS ( i_tltu, "tltu" ) ;
298
INS ( i_tlu, "tlu" ) ;
299
INS ( i_tn, "tn" ) ;
300
INS ( i_tne, "tne" ) ;
301
INS ( i_tneg, "tneg" ) ;
302
INS ( i_tnz, "tnz" ) ;
303
INS ( i_tpos, "tpos" ) ;
304
INS ( i_tst, "tst" ) ;
305
INS ( i_tsubcc, "tsubcc" ) ;
306
INS ( i_tsubcctv, "tsubcctv" ) ;
307
INS ( i_tvc, "tvc" ) ;
308
INS ( i_tvs, "tvs" ) ;
309
INS ( i_tz, "tz" ) ;
310
INS ( i_udiv, "udiv" ) ;
311
INS ( i_udivcc, "udivcc" ) ;
312
INS ( i_umul, "umul" ) ;
313
INS ( i_umulcc, "umulcc" ) ;
314
INS ( i_wry, "wry" ) ;
315
INS ( i_xnor, "xnor" ) ;
316
INS ( i_xnorcc, "xnorcc" ) ;
317
INS ( i_xor, "xor" ) ;
318
INS ( i_xorcc, "xorcc" ) ;
319
 
320
/* ATOMIC LOAD-STORE INSTRUCTIONS */
321
#if 0
322
INS ( i_ldstub, "ldstub" ) ;
323
INS ( i_swap, "swap" ) ;
324
INS ( i_swapa, "swapa" ) ;
325
#endif
326
 
327
/* PRIVILEGED INSTRUCTIONS */
328
#if 1
329
INS ( i_iflush, "iflush" ) ;
330
INS ( i_rd, "rd" ) ;
331
INS ( i_rdpsr, "rdpsr" ) ;
332
INS ( i_rdtbr, "rdtbr" ) ;
333
INS ( i_rdwim, "rdwim" ) ;
334
INS ( i_wr, "wr" ) ;
335
INS ( i_wrpsr, "wrpsr" ) ;
336
INS ( i_wrtbr, "wrtbr" ) ;
337
INS ( i_wrwim, "wrwim" ) ;
338
#endif
339
 
340
/* ALTERNATIVE SPACE INSTRUCTIONS */
341
#if 0
342
INS ( i_lda, "lda" ) ;
343
INS ( i_ldda, "ldda" ) ;
344
INS ( i_lddfa, "lddfa" ) ;
345
INS ( i_ldfa, "ldfa" ) ;
346
INS ( i_ldfsra, "ldfsra" ) ;
347
INS ( i_ldsba, "ldsba" ) ;
348
INS ( i_ldsha, "ldsha" ) ;
349
INS ( i_ldsta, "ldsta" ) ;
350
INS ( i_ldstuba, "ldstuba" ) ;
351
INS ( i_lduba, "lduba" ) ;
352
INS ( i_lduha, "lduha" ) ;
353
INS ( i_sta, "sta" ) ;
354
INS ( i_stba, "stba" ) ;
355
INS ( i_stda, "stda" ) ;
356
INS ( i_stdfa, "stdfa" ) ;
357
INS ( i_stdfqa, "stdfqa" ) ;
358
INS ( i_stfa, "stfa" ) ;
359
INS ( i_stfsra, "stfsra" ) ;
360
INS ( i_stha, "stha" ) ;
361
#endif
362
 
363
/* MISCELLANEOUS INSTRUCTIONS */
364
INS ( i_unimp, "unimp" ) ;
365
 
366
/* COPROCESSOR INSTRUCTIONS */
367
#if 0
368
INS ( i_cb0, "cb0" ) ;
369
INS ( i_cb01, "cb01" ) ;
370
INS ( i_cb012, "cb012" ) ;
371
INS ( i_cb013, "cb013" ) ;
372
INS ( i_cb02, "cb02" ) ;
373
INS ( i_cb023, "cb023" ) ;
374
INS ( i_cb03, "cb03" ) ;
375
INS ( i_cb1, "cb1" ) ;
376
INS ( i_cb12, "cb12" ) ;
377
INS ( i_cb123, "cb123" ) ;
378
INS ( i_cb13, "cb13" ) ;
379
INS ( i_cb2, "cb2" ) ;
380
INS ( i_cb23, "cb23" ) ;
381
INS ( i_cb3, "cb3" ) ;
382
INS ( i_cba, "cba" ) ;
383
INS ( i_cbn, "cbn" ) ;
384
INS ( i_cpop1, "cpop1" ) ;
385
INS ( i_cpop2, "cpop2" ) ;
386
#endif
387
 
388
 
389
/*
390
    IS A CONSTANT SMALL ENOUGH FOR AN IMMEDIATE OPERAND?
391
*/
392
 
393
#define	SIMM13_SIZE( N )	( ( long ) ( N ) >= -4096 &&\
394
				  ( long ) ( N ) <= 4095 )
395
 
396
 
397
#endif /* SPARCINS_INCLUDED */