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
/* 	ibinasm.h,v 1.2 1995/05/23 10:56:37 john Exp	 */
32
/*
33
  ibinasm.h
34
 
35
  This file provides information required for the alpha 
36
  binary assembler format.
37
*/
38
 
39
/*
40
ibinasm.h,v
41
 * Revision 1.2  1995/05/23  10:56:37  john
42
 * Reformatting
43
 *
44
 * Revision 1.1.1.1  1995/03/23  10:39:32  john
45
 * Entered into CVS
46
 *
47
 * Revision 1.4  1995/03/23  10:05:09  john
48
 * Added guard
49
 *
50
*/
51
 
52
#ifndef IBINASM_H
53
#define IBINASM_H
54
 
55
enum registers {
56
	xr0,	xr1,	xr2,	xr3,	xr4,	xr5,	xr6,	xr7,
57
	xr8,	xr9,	xr10,	xr11,	xr12,	xr13,	xr14,	xr15,
58
	xr16,	xr17,	xr18,	xr19,	xr20,	xr21,	xr22,	xr23,
59
	xr24,	xr25,	xr26,	xr27,	xr28,	xr29,	xr30,	xr31,
60
	xfr0,	xfr1,	xfr2,	xfr3,	xfr4,	xfr5,	xfr6,	xfr7,
61
	xfr8,	xfr9,	xfr10,	xfr11,	xfr12,	xfr13,	xfr14,	xfr15,
62
	xfr16,	xfr17,	xfr18,	xfr19,	xfr20,	xfr21,	xfr22,	xfr23,
63
	xfr24,	xfr25,	xfr26,	xfr27,	xfr28,	xfr29,	xfr30,	xfr31,
64
	xnoreg
65
	};
66
 
67
typedef unsigned asmopcode;
68
typedef unsigned asmformat;
69
typedef int asmreg;
70
typedef int asmint;
71
typedef unsigned asmuint;
72
typedef int asmlabel;
73
typedef int asmsym;
74
 
75
#define zero 0
76
#define float_register 32
77
/*#define xnoreg 64*/
78
 
79
#if 1
80
#define ilabel		0
81
/*#define isym		1*/
82
#define iglobal		2
83
#define iabort		3
84
#define ialign		4
85
#define iascii		5
86
#define iasciiz		6
87
#define ibyte		7
88
#define icomm		8
89
#define ilcomm		9
90
#define idata		10
91
#define idfloat		11
92
#define iffloat		12
93
#define igfloat		13
94
#define isfloat		14
95
#define itfloat		15
96
#define igprel32	16
97
#define ifile		17
98
#define ilong		18
99
/*#define iline		19*/
100
#define idead		20
101
#define inop		21
102
#define iweakext	22
103
#define iloopno		23
104
#define ispace		24
105
#define itext		25
106
#define iword		26
107
#define iocode		27
108
#define iend		28
109
#define isdata		29
110
#define irdata		30
111
#define ient		31
112
#define iloc		32
113
#define ibgnb		33
114
#define iendb		34
115
#define iasm0		35
116
#define iset		36
117
#define iorg		37
118
#define irep		38
119
#define iendrep		39
120
#define ilab		40
121
#define ivreg		41
122
#define imask		42
123
#define ifmask		43
124
#define ierr		44
125
#define iglobabs	45
126
#define iverstamp	46
127
#define iframe		47
128
#define iextended	48
129
#define iextern		49
130
#define iaent		50
131
#define ioption		51
132
#define inoalias	52
133
#define ialias		53
134
#define ilivereg	54
135
#define igjsrsaved	55
136
#define igjsrlive 	56
137
#define igjmplive 	57
138
#define irestext	58
139
#define iquad		59
140
#define iprologue 	60
141
#define iedata		61
142
#define imtag		62
143
#define imalias		63
144
#define ieflag		64
145
#define isave_ra	65
146
#define iconst		66
147
#define iugen		67
148
#define iident      68
149
#define irconst     69
150
#else 
151
#define ilabel		 0
152
/*#define isym		 1*/
153
#define iglobal		 2
154
#define iabort		 3
155
#define ialign		 4
156
#define iascii		 5
157
#define iasciiz		 6
158
#define ibyte		 7
159
#define icomm		 8
160
#define ilcomm		 9
161
#define idata		10
162
#define idouble		11
163
#define ifile		12
164
#define ifloat		13
165
#define ihalf		14
166
/*#define iline		15*/
167
#define idead		16
168
#define inop		17
169
#define iweakext	18
170
#define iloopno		19
171
#define ispace		20
172
#define itext		21
173
#define iword		22
174
#define iocode		23
175
#define iend		24
176
#define isdata		25
177
#define irdata		26
178
#define ient		27
179
#define iloc		28
180
#define ibgnb		29
181
#define iendb		30
182
#define iasm0		31
183
#define iset		32
184
#define iorg		33
185
#define irep		34
186
#define iendrep		35
187
#define ilab		36
188
#define ivreg		37
189
#define imask		38
190
#define ifmask		39
191
#define ierr		40
192
#define iglobabs	41
193
#define iverstamp	42
194
#define iframe		43
195
#define iextended	44
196
#define iextern		45
197
#define iaent		46
198
#define ioption		47
199
#define inoalias	48
200
#define ialias		49
201
#define imtag		50
202
#define imalias		51
203
#define iblank3		52
204
#define ilivereg	53
205
#define igjaldef	54
206
#define igjallive	55
207
#define igjrlive	56
208
#define ishift_addr	57
209
#define irestext	58
210
#define idword		59
211
#define iprologue       60
212
#define iedata          61
213
#endif
214
 
215
#if 1
216
#define zldl	0
217
#define zldq	1
218
#define zldl_l	2
219
#define zldq_l	3
220
#define zldq_u	4
221
#define zlda	5
222
#define zstl	6
223
#define zstq	7
224
#define zstl_c	8
225
#define zstq_c	9
226
#define zstq_u	10
227
#define zldah	11
228
#define zldf	12
229
#define zldg	13
230
#define zlds	14
231
#define zldt	15
232
#define zstf	16
233
#define zstg	17
234
#define zsts	18
235
#define zstt	19
236
#define zmb	20
237
#define zfetch	21
238
#define zrs	22
239
#define ztrapb	23
240
#define zfetch_m	24
241
#define zrpcc	25
242
#define zrc	26
243
#define zjsr	27
244
#define zbr	28
245
#define zbsr	29
246
#define zblbc	30
247
#define zblbs	31
248
#define zfbeq	32
249
#define zfbne	33
250
#define zbeq	34
251
#define zbne	35
252
#define zfblt	36
253
#define zfbge	37
254
#define zblt	38
255
#define zbge	39
256
#define zfble	40
257
#define zfbgt	41
258
#define zble	42
259
#define zbgt	43
260
#define zaddl	44
261
#define zaddlv	45
262
#define zaddq	46
263
#define zaddqv	47
264
#define zsubl	48
265
#define zsublv	49
266
#define zsubq	50
267
#define zsubqv	51
268
#define zs4addl	52
269
#define zs4addq	53
270
#define zs4subl	54
271
#define zs4subq	55
272
#define zs8addl	56
273
#define zs8addq	57
274
#define zs8subl	58
275
#define zs8subq	59
276
#define zcmpeq	60
277
#define zcmplt	61
278
#define zcmple	62
279
#define zcmpult	63
280
#define zcmpule	64
281
#define zcmpbge	65
282
#define zand	66
283
#define zbic	67
284
#define zcmoveq	68
285
#define zcmovne	69
286
#define zcmovlbs	70
287
#define zbis	71
288
#define zornot	72
289
#define zcmovlt	73
290
#define zcmovge	74
291
#define zcmovlbc	75
292
#define zxor	76
293
#define zeqv	77
294
#define zcmovle	78
295
#define zcmovgt	79
296
#define zsll	80
297
#define zsra	81
298
#define zsrl	82
299
#define zextbl	83
300
#define zextwl	84
301
#define zextll	85
302
#define zextql	86
303
#define zextwh	87
304
#define zextlh	88
305
#define zextqh	89
306
#define zinsbl	90
307
#define zinswl	91
308
#define zinsll	92
309
#define zinsql	93
310
#define zinswh	94
311
#define zinslh	95
312
#define zinsqh	96
313
#define zmskbl	97
314
#define zmskwl	98
315
#define zmskll	99
316
#define zmskql	100
317
#define zmskwh	101
318
#define zmsklh	102
319
#define zmskqh	103
320
#define zzap	104
321
#define zzapnot	105
322
#define zmull	106
323
#define zmulqv	107
324
#define zmullv	108
325
#define zumulh	109
326
#define zmulq	110
327
#define zcpys	111
328
#define zcvtlq	112
329
#define zfcmoveq	113
330
#define zfcmovne	114
331
#define zcpysn	115
332
#define zcvtql	116
333
#define zfcmovlt	117
334
#define zfcmovge	118
335
#define zcpyse	119
336
#define zcvtqlv	120
337
#define zmt_fpcr	121
338
#define zmf_fpcr	122
339
#define zcvtqlsv	123
340
#define zfcmovle	124
341
#define zfcmovgt	125
342
#define zcmpteq	126
343
#define zcmptlt	127
344
#define zcmptle	128
345
#define zcmptun	129
346
#define zcmpteqsu	130
347
#define zcmptltsu	131
348
#define zcmptlesu	132
349
#define zcmptunsu	133
350
#define zcvtqs	134
351
#define zcvtqsc	135
352
#define zcvtqsm	136
353
#define zcvtqsd	137
354
#define zcvtqssui	138
355
#define zcvtqssuic	139
356
#define zcvtqssuim	140
357
#define zcvtqssuid	141
358
#define zcvtqt	142
359
#define zcvtqtc	143
360
#define zcvtqtm	144
361
#define zcvtqtd	145
362
#define zcvtqtsui	146
363
#define zcvtqtsuic	147
364
#define zcvtqtsuim	148
365
#define zcvtqtsuid	149
366
#define zcvtts	150
367
#define zcvttsc	151
368
#define zcvttsm	152
369
#define zcvttsd	153
370
#define zcvttsu	154
371
#define zcvttsuc	155
372
#define zcvttsum	156
373
#define zcvttsud	157
374
#define zcvttssu	158
375
#define zcvttssuc	159
376
#define zcvttssum	160
377
#define zcvttssud	161
378
#define zcvttssui	162
379
#define zcvttssuic	163
380
#define zcvttssuim	164
381
#define zcvttssuid	165
382
#define zdivs	166
383
#define zdivsc	167
384
#define zdivsm	168
385
#define zdivsd	169
386
#define zdivsu	170
387
#define zdivsuc	171
388
#define zdivsum	172
389
#define zdivsud	173
390
#define zdivssu	174
391
#define zdivssuc	175
392
#define zdivssum	176
393
#define zdivssud	177
394
#define zdivssui	178
395
#define zdivssuic	179
396
#define zdivssuim	180
397
#define zdivssuid	181
398
#define zdivt	182
399
#define zdivtc	183
400
#define zdivtm	184
401
#define zdivtd	185
402
#define zdivtu	186
403
#define zdivtuc	187
404
#define zdivtum	188
405
#define zdivtud	189
406
#define zdivtsu	190
407
#define zdivtsuc	191
408
#define zdivtsum	192
409
#define zdivtsud	193
410
#define zdivtsui	194
411
#define zdivtsuic	195
412
#define zdivtsuim	196
413
#define zdivtsuid	197
414
#define zmuls	198
415
#define zmulsc	199
416
#define zmulsm	200
417
#define zmulsd	201
418
#define zmulsu	202
419
#define zmulsuc	203
420
#define zmulsum	204
421
#define zmulsud	205
422
#define zmulssu	206
423
#define zmulssuc	207
424
#define zmulssum	208
425
#define zmulssud	209
426
#define zmulssui	210
427
#define zmulssuic	211
428
#define zmulssuim	212
429
#define zmulssuid	213
430
#define zmult	214
431
#define zmultc	215
432
#define zmultm	216
433
#define zmultd	217
434
#define zmultu	218
435
#define zmultuc	219
436
#define zmultum	220
437
#define zmultud	221
438
#define zmultsu	222
439
#define zmultsuc	223
440
#define zmultsum	224
441
#define zmultsud	225
442
#define zmultsui	226
443
#define zmultsuic	227
444
#define zmultsuim	228
445
#define zmultsuid	229
446
#define zsubs	230
447
#define zsubsc	231
448
#define zsubsm	232
449
#define zsubsd	233
450
#define zsubsu	234
451
#define zsubsuc	235
452
#define zsubsum	236
453
#define zsubsud	237
454
#define zsubssu	238
455
#define zsubssuc	239
456
#define zsubssum	240
457
#define zsubssud	241
458
#define zsubssui	242
459
#define zsubssuic	243
460
#define zsubssuim	244
461
#define zsubssuid	245
462
#define zsubt	246
463
#define zsubtc	247
464
#define zsubtm	248
465
#define zsubtd	249
466
#define zsubtu	250
467
#define zsubtuc	251
468
#define zsubtum	252
469
#define zsubtud	253
470
#define zsubtsu	254
471
#define zsubtsuc	255
472
#define zsubtsum	256
473
#define zsubtsud	257
474
#define zsubtsui	258
475
#define zsubtsuic	259
476
#define zsubtsuim	260
477
#define zsubtsuid	261
478
#define zadds	262
479
#define zaddsc	263
480
#define zaddsm	264
481
#define zaddsd	265
482
#define zaddsu	266
483
#define zaddsuc	267
484
#define zaddsum	268
485
#define zaddsud	269
486
#define zaddssu	270
487
#define zaddssuc	271
488
#define zaddssum	272
489
#define zaddssud	273
490
#define zaddssui	274
491
#define zaddssuic	275
492
#define zaddssuim	276
493
#define zaddssuid	277
494
#define zaddt	278
495
#define zaddtc	279
496
#define zaddtm	280
497
#define zaddtd	281
498
#define zaddtu	282
499
#define zaddtuc	283
500
#define zaddtum	284
501
#define zaddtud	285
502
#define zaddtsu	286
503
#define zaddtsuc	287
504
#define zaddtsum	288
505
#define zaddtsud	289
506
#define zaddtsui	290
507
#define zaddtsuic	291
508
#define zaddtsuim	292
509
#define zaddtsuid	293
510
#define zcvttq	294
511
#define zcvttqc	295
512
#define zcvttqv	296
513
#define zcvttqvc	297
514
#define zcvttqsv	298
515
#define zcvttqsvc	299
516
#define zcvttqsvi	300
517
#define zcvttqsvic	301
518
#define zcvttqd	302
519
#define zcvttqvd	303
520
#define zcvttqsvd	304
521
#define zcvttqsvid	305
522
#define zcvttqm	306
523
#define zcvttqvm	307
524
#define zcvttqsvm	308
525
#define zcvttqsvim	309
526
#define zaddf	310
527
#define zaddfc	311
528
#define zaddfu	312
529
#define zaddfuc	313
530
#define zaddfs	314
531
#define zaddfsc	315
532
#define zaddfsu	316
533
#define zaddfsuc	317
534
#define zaddg	318
535
#define zaddgc	319
536
#define zaddgu	320
537
#define zaddguc	321
538
#define zaddgs	322
539
#define zaddgsc	323
540
#define zaddgsu	324
541
#define zaddgsuc	325
542
#define zcvtdg	326
543
#define zcvtdgc	327
544
#define zcvtdgu	328
545
#define zcvtdguc	329
546
#define zcvtdgs	330
547
#define zcvtdgsc	331
548
#define zcvtdgsu	332
549
#define zcvtdgsuc	333
550
#define zcvtgd	334
551
#define zcvtgdc	335
552
#define zcvtgdu	336
553
#define zcvtgduc	337
554
#define zcvtgds	338
555
#define zcvtgdsc	339
556
#define zcvtgdsu	340
557
#define zcvtgdsuc	341
558
#define zsubf	342
559
#define zsubfc	343
560
#define zsubfu	344
561
#define zsubfuc	345
562
#define zsubfs	346
563
#define zsubfsc	347
564
#define zsubfsu	348
565
#define zsubfsuc	349
566
#define zsubg	350
567
#define zsubgc	351
568
#define zsubgu	352
569
#define zsubguc	353
570
#define zsubgs	354
571
#define zsubgsc	355
572
#define zsubgsu	356
573
#define zsubgsuc	357
574
#define zmulf	358
575
#define zmulfc	359
576
#define zmulfu	360
577
#define zmulfuc	361
578
#define zmulfs	362
579
#define zmulfsc	363
580
#define zmulfsu	364
581
#define zmulfsuc	365
582
#define zmulg	366
583
#define zmulgc	367
584
#define zmulgu	368
585
#define zmulguc	369
586
#define zmulgs	370
587
#define zmulgsc	371
588
#define zmulgsu	372
589
#define zmulgsuc	373
590
#define zdivf	374
591
#define zdivfc	375
592
#define zdivfu	376
593
#define zdivfuc	377
594
#define zdivfs	378
595
#define zdivfsc	379
596
#define zdivfsu	380
597
#define zdivfsuc	381
598
#define zdivg	382
599
#define zdivgc	383
600
#define zdivgu	384
601
#define zdivguc	385
602
#define zdivgs	386
603
#define zdivgsc	387
604
#define zdivgsu	388
605
#define zdivgsuc	389
606
#define zcmpgeq	390
607
#define zcmpglt	391
608
#define zcmpgle	392
609
#define zcmpgeqs	393
610
#define zcmpglts	394
611
#define zcmpgles	395
612
#define zcvtgf	396
613
#define zcvtgfc	397
614
#define zcvtgfu	398
615
#define zcvtgfuc	399
616
#define zcvtgfs	400
617
#define zcvtgfsc	401
618
#define zcvtgfsu	402
619
#define zcvtgfsuc	403
620
#define zcvtqf	404
621
#define zcvtqfc	405
622
#define zcvtqg	406
623
#define zcvtqgc	407
624
#define zcvtgq	408
625
#define zcvtgqc	409
626
#define zcvtgqv	410
627
#define zcvtgqvc	411
628
#define zcvtgqs	412
629
#define zcvtgqsc	413
630
#define zcvtgqsv	414
631
#define zcvtgqsvc	415
632
#define zret	416
633
#define zjmp	417
634
#define zjsr_coroutine	418
635
#define zcall_pal	419
636
#define znop	420
637
#define zldiq	421
638
#define zldil	422
639
#define zldb	423
640
#define zldbu	424
641
#define zldw	425
642
#define zldwu	426
643
#define zuldw	427
644
#define zuldwu	428
645
#define zuldl	429
646
#define zuldq	430
647
#define zstb	431
648
#define zstw	432
649
#define zustw	433
650
#define zustl	434
651
#define zustq	435
652
#define zclr	436
653
#define zabsl	437
654
#define zabsq	438
655
#define zmov	439
656
#define znegl	440
657
#define zneglv	441
658
#define znegq	442
659
#define znegqv	443
660
#define zsextl	444
661
#define zdivl	445
662
#define zdivlu	446
663
#define zdivq	447
664
#define zdivqu	448
665
#define zreml	449
666
#define zremlu	450
667
#define zremq	451
668
#define zremqu	452
669
#define znot	453
670
#define zor	454
671
#define zandnot	455
672
#define zxornot	456
673
#define zldid	457
674
#define zldif	458
675
#define zldig	459
676
#define zldis	460
677
#define zldit	461
678
#define zfabs	462
679
#define znegf	463
680
#define znegg	464
681
#define znegs	465
682
#define znegt	466
683
#define zfmov	467
684
#define znegfs	468
685
#define zneggs	469
686
#define znegssu	470
687
#define znegtsu	471
688
#define zfneg	472
689
#define zldgp	473
690
#define zcia	474
691
#define zwmb	475
692
#define zcvtst	476
693
#define zcvtsts	477
694
#define zexcb	478
695
#define zunop	479
696
#define zfclr	480
697
#define zcall_xfloat	481
698
#define zbad	482
699
#define n_asmcodes	483
700
/*
701
#define frob	 0
702
#define fra	 1
703
#define fri	 2
704
#define frrr	 3
705
#define frir	 4
706
#define frr	 5
707
#define fi	 7
708
#define fr	 8
709
#define f_	 9
710
#define frcr	 10
711
*/
712
 
713
#else /* __mips */
714
#define zabs		  0
715
#define zadd		  1
716
#define zaddu		  2
717
#define zand		  3
718
#define zb		  4
719
#define zbc0f		  5
720
#define zbc0t		  6
721
#define zbc1f		  7
722
#define zbc1t		  8
723
#define zbc2f		  9
724
#define zbc2t		 10
725
#define z11		 11
726
#define z12		 12
727
#define zbeq		 13
728
#define zbge		 14
729
#define zbgeu		 15
730
#define zbgez		 16
731
#define zbgt		 17
732
#define zbgtu		 18
733
#define zbgtz		 19
734
#define zble		 20
735
#define zbleu		 21
736
#define zblez		 22
737
#define zblt		 23
738
#define zbltu		 24
739
#define zbltz		 25
740
#define zbne		 26
741
#define zbreak		 27
742
#define zc0		 28
743
#define zc1		 29
744
#define zc2		 30
745
#define z31		 31
746
#define zdiv		 32
747
#define zdivu		 33
748
#define zj		 34
749
#define zjal		 35
750
#define zla		 36
751
#define zlb		 37
752
#define zlbu		 38
753
#define zlh		 39
754
#define zlhu		 40
755
#define zli		 41
756
#define zlw		 42
757
#define z43		 43
758
#define zlwc1		 44
759
#define zlwc2		 45
760
#define z46		 46
761
#define zmfhi		 47
762
#define zmflo		 48
763
#define zmove		 49
764
#define z50		 50
765
#define zswc1		 51
766
#define zswc2		 52
767
#define z53		 53
768
#define zmthi		 54
769
#define zmtlo		 55
770
#define zmul		 56
771
#define zmulo		 57
772
#define zmulou		 58
773
#define zmult		 59
774
#define zmultu		 60
775
#define zneg		 61
776
#define znop		 62
777
#define znor		 63
778
#define zor		 64
779
#define zrem		 65
780
#define zremu		 66
781
#define zrfe		 67
782
#define zrol		 68
783
#define zror		 69
784
#define zsb		 70
785
#define zseq		 71
786
#define zsge		 72
787
#define zsgeu		 73
788
#define zsgt		 74
789
#define zsgtu		 75
790
#define zsh		 76
791
#define zsle		 77
792
#define zsleu		 78
793
#define zsll		 79
794
#define zslt		 80
795
#define zsltu		 81
796
#define zsne		 82
797
#define zsra		 83
798
#define zsrl		 84
799
#define zsub		 85
800
#define zsubu		 86
801
#define zsw		 87
802
#define zsyscall	 88
803
#define zxor		 89
804
#define znot		 90
805
#define zlwl		 91
806
#define zlwr		 92
807
#define zswl		 93
808
#define zswr		 94
809
#define zvcall		 95
810
#define zmfc0		 96
811
#define zmfc1		 97
812
#define zmfc2		 98
813
#define z99		 99
814
#define zmtc0		100
815
#define zmtc1		101
816
#define zmtc2		102
817
#define z103		103
818
#define ztlbr		104
819
#define ztlbwi		105
820
#define ztlbwr		106
821
#define ztlbp		107
822
#define zld		108
823
#define zsd		109
824
#define z110		110
825
#define zldc1		111
826
#define zldc2		112
827
#define z113		113
828
#define z114		114
829
#define zsdc1		115
830
#define zsdc2		116
831
#define z117		117
832
#define fl_s		118
833
#define fl_d		119
834
#define fl_e		120
835
#define fs_s		121
836
#define fs_d		122
837
#define fs_e		123
838
#define fadd_s		124
839
#define fadd_d		125
840
#define fadd_e		126
841
#define fsub_s		127
842
#define fsub_d		128
843
#define fsub_e		129
844
#define fmul_s		130
845
#define fmul_d		131
846
#define fmul_e		132
847
#define fdiv_s		133
848
#define fdiv_d		134
849
#define fdiv_e		135
850
#define fsqrt_s		136
851
#define fsqrt_d		137
852
#define fsqrt_e		138
853
#define fmov_s		139
854
#define fmov_d		140
855
#define fmov_e		141
856
#define fabs_s		142
857
#define fabs_d		143
858
#define fabs_e		144
859
#define fcvt_s_d	145
860
#define fcvt_s_e	146
861
#define fcvt_s_w	147
862
#define fcvt_d_s	148
863
#define fcvt_d_e	149
864
#define fcvt_d_w	150
865
#define fcvt_e_s	151
866
#define fcvt_e_d	152
867
#define fcvt_e_w	153
868
#define fcvt_w_s	154
869
#define fcvt_w_d	155
870
#define fcvt_w_e	156
871
#define fc_f_s		157
872
#define fc_f_d		158
873
#define fc_f_e		159
874
#define fc_un_s		160
875
#define fc_un_d		161
876
#define fc_un_e		162
877
#define fc_eq_s		163
878
#define fc_eq_d		164
879
#define fc_eq_e		165
880
#define fc_ueq_s	166
881
#define fc_ueq_d	167
882
#define fc_ueq_e	168
883
#define fc_olt_s	169
884
#define fc_olt_d	170
885
#define fc_olt_e	171
886
#define fc_ult_s	172
887
#define fc_ult_d	173
888
#define fc_ult_e	174
889
#define fc_ole_s	175
890
#define fc_ole_d	176
891
#define fc_ole_e	177
892
#define fc_ule_s	178
893
#define fc_ule_d	179
894
#define fc_ule_e	180
895
#define fc_sf_s		181
896
#define fc_sf_d		182
897
#define fc_sf_e		183
898
#define fc_ngle_s	184
899
#define fc_ngle_d	185
900
#define fc_ngle_e	186
901
#define fc_seq_s	187
902
#define fc_seq_d	188
903
#define fc_seq_e	189
904
#define fc_ngl_s	190
905
#define fc_ngl_d	191
906
#define fc_ngl_e	192
907
#define fc_lt_s		193
908
#define fc_lt_d		194
909
#define fc_lt_e		195
910
#define fc_nge_s	196
911
#define fc_nge_d	197
912
#define fc_nge_e	198
913
#define fc_le_s		199
914
#define fc_le_d		200
915
#define fc_le_e		201
916
#define fc_ngt_s	202
917
#define fc_ngt_d	203
918
#define fc_ngt_e	204
919
#define zlui		205
920
#define zulw		206
921
#define zulh		207
922
#define zulhu		208
923
#define zusw		209
924
#define zush		210
925
#define zaddi		211
926
#define zaddiu		212
927
#define zslti		213
928
#define zsltiu		214
929
#define zandi		215
930
#define zori		216
931
#define zxori		217
932
#define z218		218
933
#define znegu		219
934
#define zbeqz		220
935
#define zbnez		221
936
#define fneg_s		222
937
#define fneg_d		223
938
#define fneg_e		224
939
#define zcfc1		225
940
#define zctc1		226
941
#define zbal		227
942
#define zbgezal		228
943
#define zbltzal		229
944
#define zmtc1_d		230
945
#define zmfc1_d		231
946
#define ztrunc_w_s	232
947
#define ztrunc_w_d	233
948
#define ztrunc_w_e	234
949
#define zround_w_s	235
950
#define zround_w_d	236
951
#define zround_w_e	237
952
#define zaddou		238
953
#define zsubou		239
954
#define ztruncu_w_s	240
955
#define ztruncu_w_d	241
956
#define ztruncu_w_e	242
957
#define zroundu_w_s	243
958
#define zroundu_w_d	244
959
#define zroundu_w_e	245
960
#define zcfc0		246
961
#define zcfc2		247
962
#define z248		248
963
#define zctc0		249
964
#define zctc2		250
965
#define z251		251
966
#define fli_s		252
967
#define fli_d		253
968
#define fli_e		254
969
#define ztlt		255
970
#define ztltu		256
971
#define ztge		257
972
#define ztgeu		258
973
#define zteq		259
974
#define ztne		260
975
#define zll		261
976
#define zsc		262
977
#define zceil_w_s	263
978
#define zceil_w_d	264
979
#define zceil_w_e	265
980
#define zceilu_w_s	266
981
#define zceilu_w_d	267
982
#define zceilu_w_e	268
983
#define zfloor_w_s	269
984
#define zfloor_w_d	270
985
#define zfloor_w_e	271
986
#define zflooru_w_s	272
987
#define zflooru_w_d	273
988
#define zflooru_w_e	274
989
#define	zbeql		275
990
#define	zbeqzl		276
991
#define zbnel		277
992
#define zbnezl		278
993
#define	zblel		279
994
#define	zbleul		280
995
#define zblezl		281
996
#define	zbgtl		282
997
#define zbgtul		283
998
#define zbgtzl		284
999
#define	zbltl		285
1000
#define zbltul		286
1001
#define zbltzl		287
1002
#define zbltzall	288
1003
#define zbgel		289
1004
#define zbgeul		290
1005
#define zbgezl		291
1006
#define zbgezall	292
1007
#define zbc0fl		293
1008
#define zbc0tl		294
1009
#define zbc1fl		295
1010
#define zbc1tl		296
1011
#define zbc2fl		297
1012
#define zbc2tl		298
1013
#define z299		299
1014
#define z300		300
1015
#define zldl            301
1016
#define zldr            302
1017
#define zlld         	303  
1018
#define zlwu         	304  
1019
#define zsdl            305
1020
#define zsdr            306
1021
#define zscd	        307
1022
#define zdaddi          308
1023
#define zdaddiu       	309
1024
#define zdadd	       	310
1025
#define zdaddu		311
1026
#define zdsub           312
1027
#define zdsubu       	313
1028
#define zdsll         	314
1029
#define zdsrl           315
1030
#define zdsra           316
1031
#define zdsllv          317
1032
#define zdsrlv          318
1033
#define zdsrav       	319
1034
#define zdmult        	320
1035
#define zdmultu        	321
1036
#define zddiv         	322
1037
#define zddivu    	323
1038
#define zlsc1         	324
1039
#define zssc1        	325
1040
#define zdmtc1         	326
1041
#define zdmfc1   	327
1042
#define zdmtc0         	328
1043
#define zdmfc0   	329
1044
#define zdmtc2         	330
1045
#define zdmfc2   	331
1046
#define zeret           334
1047
#define ztrunc_l_s      335
1048
#define zround_l_s      336
1049
#define zceil_l_s       337
1050
#define zfloor_l_s      338
1051
#define ztrunc_l_d      339
1052
#define zround_l_d      340
1053
#define zceil_l_d       341
1054
#define zfloor_l_d      342
1055
#define ztrunc_l_e      343
1056
#define zround_l_e      344
1057
#define zceil_l_e       345
1058
#define zfloor_l_e      346
1059
#define fcvt_l_s        347
1060
#define fcvt_l_d        348
1061
#define fcvt_l_e        349
1062
#define fcvt_l_w        350
1063
#define fcvt_s_l        351
1064
#define fcvt_d_l        352
1065
#define fcvt_e_l        353
1066
#define fcvt_w_l        354
1067
#define zcache		355
1068
#define zcia            356
1069
#ifdef _DLI_DLA
1070
/* 11/28/89 for mips-3 */
1071
#define zdli   		332
1072
#define zdla   		333
1073
#endif
1074
#define zuld            357
1075
#define zusd            358
1076
#define zdabs           359
1077
#define zdneg           360
1078
#define zdnegu          361
1079
#define zdmul           362
1080
#define zdmulo          363
1081
#define zdmulou         364
1082
#define zdrem           365
1083
#define zdremu          366
1084
#define zdrol           367
1085
#define zdror           368
1086
#define zdaddou         369
1087
#define zdsubou         370
1088
#define zulwu		371
1089
#ifdef _MAD_MSB
1090
#define fmad_s		372
1091
#define fmad_d		373
1092
#define fmad_e		374
1093
#define fmsb_s		375
1094
#define fmsb_d		376
1095
#define fmsb_e		377
1096
#endif
1097
#define zbad		378
1098
#define n_asmcodes	379
1099
 
1100
#define frob	 0
1101
#define fra	 1
1102
#define fri	 2
1103
#define frrr	 3
1104
#define frri	 4
1105
#define frr	 5
1106
#define fa	 6
1107
#define fr	 7
1108
#define frrl	 8
1109
#define frl	 9
1110
#define fl	10
1111
#define forrr	11
1112
#define fril	12
1113
#define fi	13
1114
#define foa	14
1115
#ifdef _MAD_MSB
1116
#define frrrr	15
1117
#endif
1118
#endif
1119
 
1120
#define set_undefined	 0
1121
#define set_reorder	 1
1122
#define set_noreorder	 2
1123
#define set_macro	 3
1124
#define set_nomacro	 4
1125
#define set_at		 5
1126
#define set_noat	 6
1127
#define set_move	 7
1128
#define set_nomove	 8
1129
#define set_bopt	 9
1130
#define set_nobopt	10
1131
 
1132
#define o_undefined	 0
1133
#define o_optimize	 1
1134
#define o_pic		 2
1135
 
1136
#define opt_none	 0
1137
#define opt_int		 1
1138
#define opt_float	 2
1139
#define opt_string	 3
1140
 
1141
#define call_addx	 0
1142
#define call_addxc	 1
1143
#define call_addxm	 2
1144
#define call_addxp	 3
1145
#define call_addxd	 4
1146
#define call_subx	 5
1147
#define call_subxc	 6
1148
#define call_subxm	 7
1149
#define call_subxp	 8
1150
#define call_subxd	 9
1151
#define call_mulx	10
1152
#define call_mulxc	11
1153
#define call_mulxm	12
1154
#define call_mulxp	13
1155
#define call_mulxd	14
1156
#define call_divx	15
1157
#define call_divxc	16
1158
#define call_divxm	17
1159
#define call_divxp	18
1160
#define call_divxd	19
1161
#define call_cmpxeq	20
1162
#define call_cmpxne	21
1163
#define call_cmpxle	22
1164
#define call_cmpxlt	23
1165
#define call_cvttx	24
1166
#define call_cvtxt	25
1167
#define call_cvtqx	26
1168
#define call_cvtuqx	27
1169
#define call_cvtxq	28
1170
#define call_cvtxqc	29
1171
#define call_cvtxqm	30
1172
#define call_cvtxqp	31
1173
#define call_cvtxqd	32
1174
#define call_cvtxqv	33
1175
#define call_cvtxqvc	34
1176
#define call_cvtxqvm	35
1177
#define call_cvtxqvp	36
1178
#define call_cvtxqvd	37
1179
#define call__last	38		/* e.g. array declarations */
1180
 
1181
 
1182
 
1183
#define binasm_record_length 24 
1184
/* #define binasm_record_length 16 */
1185
 
1186
#ifndef _REG_SET_C
1187
#define _REG_SET_C 1
1188
typedef unsigned regset[2];
1189
#endif /* _REG_SET_C */
1190
 
1191
 
1192
#define FROB 0	/* memory fmt reg, offset(+/-32K), base */
1193
#define FRA 1	/* memory fmt reg, [sym]+offset */
1194
#define FRI 2	/* pseudo inst reg, immed (64 bit) */
1195
#define FRRR 3  /* operate fmt reg,reg,reg */
1196
#define FRIR 4  /* literal format reg, immed (64 bit), reg */
1197
#define FRR 5	/* convert/jump ins reg,reg */
1198
#define FRL 6	/* branch format reg, sym */
1199
#define FTI 7 	/* pal format immed */
1200
#define FR 8	/* for fetch, rcc instructions */
1201
#define FRCR 10	/* literal format reg, condtant d, reg */
1202
 
1203
#define _BINASM_FILL0A_BITSIZE	9
1204
#define _BINASM_ASMTYPE_BITSIZE 7
1205
 
1206
typedef union {
1207
  char data[binasm_record_length];
1208
  struct {
1209
    asmsym symno;
1210
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1211
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1212
  } common;
1213
  struct {
1214
    asmsym symno;
1215
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1216
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1217
    unsigned lexlev;
1218
  } ent;
1219
  struct {
1220
    asmsym symno;
1221
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1222
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1223
    asmint frameoffset;
1224
    asmreg framereg : 7;
1225
    asmreg pcreg : 7;
1226
  } frame;
1227
  struct {
1228
    asmsym symno;
1229
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1230
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1231
    unsigned regmask;
1232
    asmint regoffset;
1233
  } mask;
1234
  /* 9/21/89 add ".gjaldef", ".gjallive", ".gjrlive" directive */
1235
  struct {
1236
    asmsym symno;
1237
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1238
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1239
    regset gjmask;
1240
  } gmask;
1241
  struct {
1242
    asmsym symno;		/* handler */
1243
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1244
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1245
    int      flag;
1246
    int      data;
1247
  } edata;
1248
  struct {
1249
    asmsym symno;
1250
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1251
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1252
    int      eflag;
1253
  } eflag;
1254
  struct {
1255
    asmsym symno;
1256
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1257
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1258
    int loopnum;
1259
    unsigned lflag;
1260
  } loopno;
1261
  struct {
1262
    asmsym symno;
1263
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1264
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1265
    int majornumber;
1266
    int minornumber;
1267
  } verstamp;
1268
  struct {
1269
    asmsym symno;
1270
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1271
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1272
    unsigned filenumber;
1273
    unsigned linenumber;
1274
  } loc;
1275
  struct {
1276
    asmsym symno;
1277
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1278
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1279
    unsigned gpmask;
1280
    unsigned fpmask;
1281
  } livereg;
1282
  struct {
1283
    asmsym symno;
1284
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1285
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1286
    long length;
1287
    unsigned repeat;
1288
  } chars;
1289
  struct {
1290
    asmsym symno;
1291
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1292
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1293
    long  expression;
1294
    unsigned repeat;
1295
  } value;
1296
  struct {
1297
    asmsym symno;
1298
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1299
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1300
    unsigned option : 2;
1301
    unsigned fill04 : 30;
1302
    asmint opt_int_value;
1303
  } voption;
1304
  struct {
1305
    asmsym symno;
1306
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1307
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1308
    unsigned option : 2;
1309
    unsigned fill04 : 30;
1310
    asmint opt_len;
1311
  } loption;
1312
  struct {
1313
    asmsym symno;
1314
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1315
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1316
    asmreg basereg1 : 7;
1317
    asmreg basereg2 : 7;
1318
  } alias;
1319
  struct {
1320
    asmsym symno;
1321
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1322
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1323
    int tagnumber;
1324
    int tagtype;
1325
  } mtag;
1326
  struct {
1327
    asmsym symno;
1328
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1329
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1330
    int memtag1;
1331
    int memtag2;
1332
  } malias;
1333
 
1334
  struct {
1335
    asmsym symno;
1336
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1337
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1338
    unsigned fill03 : 6;
1339
    asmopcode op : 9;		/* 9 bits plus alignment in pascal */
1340
    asmreg reg1 : 7;
1341
    asmreg reg2 : 7;
1342
    asmformat form : 4;
1343
    asmreg reg3 : 7;
1344
  } rinst;
1345
  struct {
1346
    asmsym symno;
1347
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1348
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1349
    unsigned fill03 : 6;
1350
    asmopcode op : 9;		/* 9 bits plus alignment in pascal */
1351
    asmreg reg1 : 7;
1352
    asmreg reg2 : 7;
1353
    asmformat form : 4;
1354
    unsigned mem_tag : 14;
1355
    long  immediate;
1356
  } iinst;
1357
  struct {
1358
    asmsym symno;
1359
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1360
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1361
    unsigned fill03 : 6;
1362
    asmopcode op : 9;		/* 9 bits plus alignment in pascal */
1363
    asmreg reg1 : 7;
1364
    asmreg reg2 : 7;
1365
    asmformat form : 4;
1366
    asmint imm;
1367
  } linst;
1368
  struct {
1369
    asmsym symno;
1370
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1371
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1372
    long	constant_value;
1373
  } constant;
1374
  struct {
1375
    asmsym symno;
1376
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1377
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1378
    asmreg      save_ra_reg;
1379
  } save_ra;
1380
#ifdef _MAD_MSB
1381
  struct {
1382
    asmsym symno;
1383
    unsigned fill0a : _BINASM_FILL0A_BITSIZE;
1384
    unsigned asmtype : _BINASM_ASMTYPE_BITSIZE;
1385
    unsigned fill03 : 6;
1386
    asmopcode op : 9; 
1387
    asmreg reg1 : 7;
1388
    asmreg reg2 : 7;
1389
    asmformat form : 4;
1390
    asmreg reg3 : 7;
1391
    asmreg reg4 : 7;
1392
  } rrinst;
1393
#endif
1394
} binasm;
1395
 
1396
#endif /* IBINASM_H */
1397