xref: /original-bsd/sys/tahoe/align/table.c (revision b65ab6e5)
1*b65ab6e5Sbostic /*-
2*b65ab6e5Sbostic  * Copyright (c) 1986 The Regents of the University of California.
3*b65ab6e5Sbostic  * All rights reserved.
4*b65ab6e5Sbostic  *
5*b65ab6e5Sbostic  * This code is derived from software contributed to Berkeley by
6*b65ab6e5Sbostic  * Computer Consoles Inc.
7*b65ab6e5Sbostic  *
8*b65ab6e5Sbostic  * %sccs.include.redist.c%
9*b65ab6e5Sbostic  *
10*b65ab6e5Sbostic  *	@(#)table.c	7.1 (Berkeley) 12/06/90
11*b65ab6e5Sbostic  */
12dc5e79eeSsam 
13f5878f6dSbostic #include "align.h"
14dc5e79eeSsam /*   WARNING !!!  Do not use register 6 and register 7 in any of the emulation
15dc5e79eeSsam  *       code.  The macro Set_psl has use these two registers to set the
16dc5e79eeSsam  *       user psl to the current kernel psl.
17dc5e79eeSsam  *
18dc5e79eeSsam  */
19dc5e79eeSsam 
20dc5e79eeSsam #define	insque	cannot_do	/* Can't emulate un-interruptable opcode ! */
21dc5e79eeSsam #define	remque	cannot_do	/* Can't emulate un-interruptable opcode ! */
22dc5e79eeSsam #define	addb2	add2
23dc5e79eeSsam #define	addb3	add3
24dc5e79eeSsam #define	addl2	add2
25dc5e79eeSsam #define	addl3	add3
26dc5e79eeSsam #define	addw2	add2
27dc5e79eeSsam #define	addw3	add3
28dc5e79eeSsam #define	andb2	and2
29dc5e79eeSsam #define	andb3	and3
30dc5e79eeSsam #define	andl2	and2
31dc5e79eeSsam #define	andl3	and3
32dc5e79eeSsam #define	andw2	and2
33dc5e79eeSsam #define	andw3	and3
34dc5e79eeSsam #define	atanf	not_needed
35dc5e79eeSsam #define	kcall	cannot_do	/* Too complicated to emulate completely */
36dc5e79eeSsam #define	bbssi	cannot_do	/* Interlock memory during emulation ??? */
37dc5e79eeSsam #define	bcc	not_needed
38dc5e79eeSsam #define	bcs	not_needed
39dc5e79eeSsam #define	beql	not_needed
40dc5e79eeSsam #define	bgeq	not_needed
41dc5e79eeSsam #define	bgtr	not_needed
42dc5e79eeSsam #define	bgtru	not_needed
43dc5e79eeSsam #define	bitb	bit
44dc5e79eeSsam #define	bitl	bit
45dc5e79eeSsam #define	bitw	bit
46dc5e79eeSsam #define	bleq	not_needed
47dc5e79eeSsam #define	blequ	not_needed
48dc5e79eeSsam #define	blss	not_needed
49dc5e79eeSsam #define	bnequ	not_needed
50dc5e79eeSsam #define	bpt	not_needed
51dc5e79eeSsam #define	brb	not_needed
52dc5e79eeSsam #define	brw	not_needed
53dc5e79eeSsam #define	bvc	not_needed
54dc5e79eeSsam #define	bvs	not_needed
55dc5e79eeSsam #define	callf	not_needed
56dc5e79eeSsam #define	calls	not_needed
57dc5e79eeSsam #define	clrb	clr
58dc5e79eeSsam #define	clrl	clr
59dc5e79eeSsam #define	clrw	clr
60dc5e79eeSsam #define	cmpb	cmp
61dc5e79eeSsam #define	cmpl	cmp
62dc5e79eeSsam #define	cmps2	not_needed
63dc5e79eeSsam #define	cmps3	not_needed
64dc5e79eeSsam #define	cmpw	cmp
65dc5e79eeSsam #define	cosf	not_needed
66dc5e79eeSsam #define	cvdf	not_needed
67dc5e79eeSsam #define	cvtbl	cvt
68dc5e79eeSsam #define	cvtbw	cvt
69dc5e79eeSsam #define	cvtwl	cvt
70dc5e79eeSsam #define	cvtwb	cvtlb
71dc5e79eeSsam #define	decb	dec
72dc5e79eeSsam #define	decl	dec
73dc5e79eeSsam #define	decw	dec
74dc5e79eeSsam #define	expf	not_needed
75dc5e79eeSsam #define	ffs	ffs_op
76dc5e79eeSsam #define	incb	inc
77dc5e79eeSsam #define	incl	inc
78dc5e79eeSsam #define	incw	inc
79dc5e79eeSsam #define	ldpctx	not_needed
80dc5e79eeSsam #define	logf	not_needed
81dc5e79eeSsam #define	mcomb	mcom
82dc5e79eeSsam #define	mcoml	mcom
83dc5e79eeSsam #define	mcomw	mcom
84dc5e79eeSsam #define	mnegb	mneg
85dc5e79eeSsam #define	mnegl	mneg
86dc5e79eeSsam #define	mnegw	mneg
87dc5e79eeSsam #define	movab	mova
88dc5e79eeSsam #define	moval	mova
89dc5e79eeSsam #define	movaw	mova
90dc5e79eeSsam #define	movow	cannot_do	/* 2 X movob != movow !! See any HW spec ! */
91dc5e79eeSsam #define movob	movob_op
92dc5e79eeSsam #define	movb	mov
93dc5e79eeSsam #define	movblk	not_needed
94dc5e79eeSsam #define	movl	mov
95dc5e79eeSsam #define	movs2	not_needed
96dc5e79eeSsam #define	movs3	not_needed
97dc5e79eeSsam #define	movw	mov
98dc5e79eeSsam #define	negd	not_needed
99dc5e79eeSsam #define	negf	not_needed
100dc5e79eeSsam #define	nop	not_needed
101dc5e79eeSsam #define	orb2	or2
102dc5e79eeSsam #define	orb3	or3
103dc5e79eeSsam #define	orl2	or2
104dc5e79eeSsam #define	orl3	or3
105dc5e79eeSsam #define	orw2	or2
106dc5e79eeSsam #define	orw3	or3
107dc5e79eeSsam #define	pushab	pusha
108dc5e79eeSsam #define	pushal	pusha
109dc5e79eeSsam #define	pushaw	pusha
110dc5e79eeSsam #define	pushb	pushx
111dc5e79eeSsam #define	pushd	not_needed
112dc5e79eeSsam #define	pushl	pushx
113dc5e79eeSsam #define	pushw	pushx
114dc5e79eeSsam #define	rei	not_needed
115dc5e79eeSsam #define	ret	not_needed
116dc5e79eeSsam #define	sinf	not_needed
117dc5e79eeSsam #define	sqrtf	not_needed
118dc5e79eeSsam #define	subb2	sub2
119dc5e79eeSsam #define	subb3	sub3
120dc5e79eeSsam #define	subl2	sub2
121dc5e79eeSsam #define	subl3	sub3
122dc5e79eeSsam #define	subw2	sub2
123dc5e79eeSsam #define	subw3	sub3
124dc5e79eeSsam #define	svpctx	not_needed
125dc5e79eeSsam #define	tstb	tst
126dc5e79eeSsam #define	tstd	not_needed
127dc5e79eeSsam #define	tstf	not_needed
128dc5e79eeSsam #define	tstl	tst
129dc5e79eeSsam #define	tstw	tst
130dc5e79eeSsam #define	xorb2	xor2
131dc5e79eeSsam #define	xorb3	xor3
132dc5e79eeSsam #define	xorl2	xor2
133dc5e79eeSsam #define	xorl3	xor3
134dc5e79eeSsam #define	xorw2	xor2
135dc5e79eeSsam #define	xorw3	xor3
136dc5e79eeSsam #define movzbl	movzb
137dc5e79eeSsam #define movzbw	movzb
138dc5e79eeSsam #define	halt	not_needed		/* Privileged to user */
139dc5e79eeSsam #define	illegal	not_needed		/* Should be trapped by HW */
140dc5e79eeSsam #define	mtpr	not_needed		/* Privileged to user */
141dc5e79eeSsam #define	mfpr	not_needed		/* Privileged to user */
142dc5e79eeSsam #define	btcs	not_needed		/* Privileged to user */
143dc5e79eeSsam 
144dc5e79eeSsam int	add2();
145dc5e79eeSsam int	add3();
146dc5e79eeSsam int	adda();
147dc5e79eeSsam int	addd();
148dc5e79eeSsam int	addf();
149dc5e79eeSsam int	adwc();
150dc5e79eeSsam int	and2();
151dc5e79eeSsam int	and3();
152dc5e79eeSsam int	aobleq();
153dc5e79eeSsam int	aoblss();
154dc5e79eeSsam int	bbc();
155dc5e79eeSsam int	bbs();
156dc5e79eeSsam int	bbssi();
157dc5e79eeSsam int	bcc();
158dc5e79eeSsam int	bcs();
159dc5e79eeSsam int	beql();
160dc5e79eeSsam int	bgeq();
161dc5e79eeSsam int	bgtr();
162dc5e79eeSsam int	bgtru();
163dc5e79eeSsam int	bicpsw();
164dc5e79eeSsam int	bispsw();
165dc5e79eeSsam int	bit();
166dc5e79eeSsam int	bleq();
167dc5e79eeSsam int	blequ();
168dc5e79eeSsam int	blss();
169dc5e79eeSsam int	bnequ();
170dc5e79eeSsam int	btcs();
171dc5e79eeSsam int	bvc();
172dc5e79eeSsam int	bvs();
173dc5e79eeSsam int	call();
174dc5e79eeSsam int	casel();
175dc5e79eeSsam int	clr();
176dc5e79eeSsam int	cmp();
177dc5e79eeSsam int	cmpd();
178dc5e79eeSsam int	cmpd2();
179dc5e79eeSsam int	cmpf();
180dc5e79eeSsam int	cmpf2();
181dc5e79eeSsam int	cvdl();
182dc5e79eeSsam int	cvfl();
183dc5e79eeSsam int	cvld();
184dc5e79eeSsam int	cvlf();
185dc5e79eeSsam int	cvt();
186dc5e79eeSsam int	cvt();
187dc5e79eeSsam int	cvtlb();
188dc5e79eeSsam int	cvtlw();
189dc5e79eeSsam int	dec();
190dc5e79eeSsam int	divd();
191dc5e79eeSsam int	divf();
192dc5e79eeSsam int	divl2();
193dc5e79eeSsam int	divl3();
194dc5e79eeSsam int	ediv();
195dc5e79eeSsam int	emul();
196dc5e79eeSsam int	ffc();
197dc5e79eeSsam int	ffs_op();
198dc5e79eeSsam int	halt();
199dc5e79eeSsam int	illegal();
200dc5e79eeSsam int	inc();
201dc5e79eeSsam int	insque();
202dc5e79eeSsam int	jmp();
203dc5e79eeSsam int	kcall();
204dc5e79eeSsam int	ldd();
205dc5e79eeSsam int	ldf();
206dc5e79eeSsam int	ldfd();
207dc5e79eeSsam int	lnd();
208dc5e79eeSsam int	lnf();
209dc5e79eeSsam int	loadr();
210dc5e79eeSsam int	mcom();
211dc5e79eeSsam int	mfpr();
212dc5e79eeSsam int	mneg();
213dc5e79eeSsam int	mov();
214dc5e79eeSsam int	mova();
215dc5e79eeSsam int	movob_op();
216dc5e79eeSsam int	movow();
217dc5e79eeSsam int	movpsl();
218dc5e79eeSsam int	movzb();
219dc5e79eeSsam int	movzwl();
220dc5e79eeSsam int	mtpr();
221dc5e79eeSsam int	muld();
222dc5e79eeSsam int	mulf();
223dc5e79eeSsam int	mull2();
224dc5e79eeSsam int	mull3();
225dc5e79eeSsam int	or2();
226dc5e79eeSsam int	or3();
227dc5e79eeSsam int	prober();
228dc5e79eeSsam int	probew();
229dc5e79eeSsam int	pusha();
230dc5e79eeSsam int	pushx();
231dc5e79eeSsam int	remque();
232dc5e79eeSsam int	sbwc();
233dc5e79eeSsam int	shal();
234dc5e79eeSsam int	shar();
235dc5e79eeSsam int	shll();
236dc5e79eeSsam int	shlq();
237dc5e79eeSsam int	shrl();
238dc5e79eeSsam int	shrq();
239dc5e79eeSsam int	std();
240dc5e79eeSsam int	stf();
241dc5e79eeSsam int	storer();
242dc5e79eeSsam int	sub2();
243dc5e79eeSsam int	sub3();
244dc5e79eeSsam int	suba();
245dc5e79eeSsam int	subd();
246dc5e79eeSsam int	subf();
247dc5e79eeSsam int	tst();
248dc5e79eeSsam int	xor2();
249dc5e79eeSsam int	xor3();
250dc5e79eeSsam int	not_needed();
251dc5e79eeSsam 
252dc5e79eeSsam 
253dc5e79eeSsam /**************************************************/
254dc5e79eeSsam /*  The great opcodes table, it drives everything */
255dc5e79eeSsam /**************************************************/
256dc5e79eeSsam 
257dc5e79eeSsam struct	opcode_des	Table[]= {
258dc5e79eeSsam 
259dc5e79eeSsam /* 00 */ halt      ,   0,   0,   0,   0,   0,   0,   0,   0,
260dc5e79eeSsam /* 01 */ halt      ,   0,   0,   0,   0,   0,   0,   0,   0,
261dc5e79eeSsam /* 02 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
262dc5e79eeSsam /* 03 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
263dc5e79eeSsam /* 04 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
264dc5e79eeSsam /* 05 */ sinf      ,   0,   0,   0,   0,   0,   0,   0,   0,
265dc5e79eeSsam /* 06 */ ldf       ,RADF,   4,   0,   0,   0,   0,   0,   0,
266dc5e79eeSsam /* 07 */ ldd       ,RADF,   8,   0,   0,   0,   0,   0,   0,
267dc5e79eeSsam /* 08 */ addb2     ,RADI,   1, MAD,   1,   0,   0,   0,   0,
268dc5e79eeSsam /* 09 */ movb      ,RADI,   1,NWAD,   1,   0,   0,   0,   0,
269dc5e79eeSsam /* 0A */ addw2     ,RADI,   2, MAD,   2,   0,   0,   0,   0,
270dc5e79eeSsam /* 0B */ movw      ,RADI,   2,NWAD,   2,   0,   0,   0,   0,
271dc5e79eeSsam /* 0C */ addl2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
272dc5e79eeSsam /* 0D */ movl      ,RADI,   4,NWAD,   4,   0,   0,   0,   0,
273dc5e79eeSsam /* 0E */ bbs       ,RADI,   4, RAD,   4, Brd,   2,   0,   0,
274dc5e79eeSsam /* 0F */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
275dc5e79eeSsam /* 10 */ nop       ,   0,   0,   0,   0,   0,   0,   0,   0,
276dc5e79eeSsam /* 11 */ brb       , Brd,   1,   0,   0,   0,   0,   0,   0,
277dc5e79eeSsam /* 12 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
278dc5e79eeSsam /* 13 */ brw       , Brd,   2,   0,   0,   0,   0,   0,   0,
279dc5e79eeSsam /* 14 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
280dc5e79eeSsam /* 15 */ cosf      ,   0,   0,   0,   0,   0,   0,   0,   0,
281dc5e79eeSsam /* 16 */ lnf       ,RADF,   4,   0,   0,   0,   0,   0,   0,
282dc5e79eeSsam /* 17 */ lnd       ,RADF,   8,   0,   0,   0,   0,   0,   0,
283dc5e79eeSsam /* 18 */ addb3     ,RADI,   1,RADI,   1, WAD,   1,   0,   0,
284dc5e79eeSsam /* 19 */ cmpb      ,RADI,   1,RADI,   1,   0,   0,   0,   0,
285dc5e79eeSsam /* 1A */ addw3     ,RADI,   2,RADI,   2, WAD,   2,   0,   0,
286dc5e79eeSsam /* 1B */ cmpw      ,RADI,   2,RADI,   2,   0,   0,   0,   0,
287dc5e79eeSsam /* 1C */ addl3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
288dc5e79eeSsam /* 1D */ cmpl      ,RADI,   4,RADI,   4,   0,   0,   0,   0,
289dc5e79eeSsam /* 1E */ bbc       ,RADI,   4, RAD,   4, Brd,   2,   0,   0,
290dc5e79eeSsam /* 1F */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
291dc5e79eeSsam /* 20 */ rei       ,   0,   0,   0,   0,   0,   0,   0,   0,
292dc5e79eeSsam /* 21 */ bnequ     , Brd,   1,   0,   0,   0,   0,   0,   0,
293dc5e79eeSsam /* 22 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
294dc5e79eeSsam /* 23 */ cvtwl     ,RADI,   2, WAD,   4,   0,   0,   0,   0,
295dc5e79eeSsam /* 24 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
296dc5e79eeSsam /* 25 */ atanf     ,   0,   0,   0,   0,   0,   0,   0,   0,
297dc5e79eeSsam /* 26 */ stf       , WAD,   4,   0,   0,   0,   0,   0,   0,
298dc5e79eeSsam /* 27 */ std       , WAD,   8,   0,   0,   0,   0,   0,   0,
299dc5e79eeSsam /* 28 */ subb2     ,RADI,   1, MAD,   1,   0,   0,   0,   0,
300dc5e79eeSsam /* 29 */ mcomb     ,RADI,   1,NWAD,   1,   0,   0,   0,   0,
301dc5e79eeSsam /* 2A */ subw2     ,RADI,   2, MAD,   2,   0,   0,   0,   0,
302dc5e79eeSsam /* 2B */ mcomw     ,RADI,   2,NWAD,   2,   0,   0,   0,   0,
303dc5e79eeSsam /* 2C */ subl2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
304dc5e79eeSsam /* 2D */ mcoml     ,RADI,   4, WAD,   4,   0,   0,   0,   0,
305dc5e79eeSsam /* 2E */ emul      ,RADI,   4,RADI,   4,RADI,   4, WAD,   8,
306dc5e79eeSsam /* 2F */ aoblss    ,RADI,   4, MAD,   4, Brd,   2,   0,   0,
307dc5e79eeSsam /* 30 */ bpt       ,   0,   0,   0,   0,   0,   0,   0,   0,
308dc5e79eeSsam /* 31 */ beql      , Brd,   1,   0,   0,   0,   0,   0,   0,
309dc5e79eeSsam /* 32 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
310dc5e79eeSsam /* 33 */ cvtwb     ,RADI,   2, WAD,   1,   0,   0,   0,   0,
311dc5e79eeSsam /* 34 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
312dc5e79eeSsam /* 35 */ logf      ,   0,   0,   0,   0,   0,   0,   0,   0,
313dc5e79eeSsam /* 36 */ cmpf      ,RADF,   4,   0,   0,   0,   0,   0,   0,
314dc5e79eeSsam /* 37 */ cmpd      ,RADF,   8,   0,   0,   0,   0,   0,   0,
315dc5e79eeSsam /* 38 */ subb3     ,RADI,   1,RADI,   1, WAD,   1,   0,   0,
316dc5e79eeSsam /* 39 */ bitb      ,RADI,   1,RADI,   1,   0,   0,   0,   0,
317dc5e79eeSsam /* 3A */ subw3     ,RADI,   2,RADI,   2, WAD,   2,   0,   0,
318dc5e79eeSsam /* 3B */ bitw      ,RADI,   2,RADI,   2,   0,   0,   0,   0,
319dc5e79eeSsam /* 3C */ subl3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
320dc5e79eeSsam /* 3D */ bitl      ,RADI,   4,RADI,   4,   0,   0,   0,   0,
321dc5e79eeSsam /* 3E */ ediv      ,RADI,   4,RADI,   8, WAD,   4,  WD,   4,
322dc5e79eeSsam /* 3F */ aobleq    ,RADI,   4, MAD,   4, Brd,   2,   0,   0,
323dc5e79eeSsam /* 40 */ ret       ,   0,   0,   0,   0,   0,   0,   0,   0,
324dc5e79eeSsam /* 41 */ bgtr      , Brd,   1,   0,   0,   0,   0,   0,   0,
325dc5e79eeSsam /* 42 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
326dc5e79eeSsam /* 43 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
327dc5e79eeSsam /* 44 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
328dc5e79eeSsam /* 45 */ sqrtf     ,   0,   0,   0,   0,   0,   0,   0,   0,
329dc5e79eeSsam /* 46 */ cmpf2     ,RADF,   4,RADF,   4,   0,   0,   0,   0,
330dc5e79eeSsam /* 47 */ cmpd2     ,RADF,   8,RADF,   8,   0,   0,   0,   0,
331dc5e79eeSsam /* 48 */ shll      ,RADI,   1,RADI,   4, WAD,   4,   0,   0,
332dc5e79eeSsam /* 49 */ clrb      , WAD,   1,   0,   0,   0,   0,   0,   0,
333dc5e79eeSsam /* 4A */ shlq      ,RADI,   1,RADI,   8, WAD,   8,   0,   0,
334dc5e79eeSsam /* 4B */ clrw      , WAD,   2,   0,   0,   0,   0,   0,   0,
335dc5e79eeSsam /* 4C */ mull2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
336dc5e79eeSsam /* 4D */ clrl      , WAD,   4,   0,   0,   0,   0,   0,   0,
337dc5e79eeSsam /* 4E */ shal      ,RADI,   1,RADI,   4, WAD,   4,   0,   0,
338dc5e79eeSsam /* 4F */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
339dc5e79eeSsam /* 50 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
340dc5e79eeSsam /* 51 */ bleq      , Brd,   1,   0,   0,   0,   0,   0,   0,
341dc5e79eeSsam /* 52 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
342dc5e79eeSsam /* 53 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
343dc5e79eeSsam /* 54 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
344dc5e79eeSsam /* 55 */ expf      ,   0,   0,   0,   0,   0,   0,   0,   0,
345dc5e79eeSsam /* 56 */ tstf      ,   0,   0,   0,   0,   0,   0,   0,   0,
346dc5e79eeSsam /* 57 */ tstd      ,   0,   0,   0,   0,   0,   0,   0,   0,
347dc5e79eeSsam /* 58 */ shrl      ,RADI,   1,RADI,   4, WAD,   4,   0,   0,
348dc5e79eeSsam /* 59 */ tstb      ,RADI,   1,   0,   0,   0,   0,   0,   0,
349dc5e79eeSsam /* 5A */ shrq      ,RADI,   1,RADI,   8, WAD,   8,   0,   0,
350dc5e79eeSsam /* 5B */ tstw      ,RADI,   2,   0,   0,   0,   0,   0,   0,
351dc5e79eeSsam /* 5C */ mull3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
352dc5e79eeSsam /* 5D */ tstl      ,RADI,   4,   0,   0,   0,   0,   0,   0,
353dc5e79eeSsam /* 5E */ shar      ,RADI,   1,RADI,   4, WAD,   4,   0,   0,
354dc5e79eeSsam /* 5F */ bbssi     ,RADI,   4, MAD,   4, Brd,   2,   0,   0,
355dc5e79eeSsam /* 60 */ ldpctx    ,   0,   0,   0,   0,   0,   0,   0,   0,
356dc5e79eeSsam /* 61 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
357dc5e79eeSsam /* 62 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
358dc5e79eeSsam /* 63 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
359dc5e79eeSsam /* 64 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
360dc5e79eeSsam /* 65 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
361dc5e79eeSsam /* 66 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
362dc5e79eeSsam /* 67 */ pushd     ,   0,   0,   0,   0,   0,   0,   0,   0,
363dc5e79eeSsam /* 68 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
364dc5e79eeSsam /* 69 */ incb      , MAD,   1,   0,   0,   0,   0,   0,   0,
365dc5e79eeSsam /* 6A */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
366dc5e79eeSsam /* 6B */ incw      , MAD,   2,   0,   0,   0,   0,   0,   0,
367dc5e79eeSsam /* 6C */ divl2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
368dc5e79eeSsam /* 6D */ incl      , MAD,   4,   0,   0,   0,   0,   0,   0,
369dc5e79eeSsam /* 6E */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
370dc5e79eeSsam /* 6F */ cvtlb     ,RADI,   4, WAD,   1,   0,   0,   0,   0,
371dc5e79eeSsam /* 70 */ svpctx    ,   0,   0,   0,   0,   0,   0,   0,   0,
372dc5e79eeSsam /* 71 */ jmp       ,ADDR,   1,   0,   0,   0,   0,   0,   0,
373dc5e79eeSsam /* 72 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
374dc5e79eeSsam /* 73 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
375dc5e79eeSsam /* 74 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
376dc5e79eeSsam /* 75 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
377dc5e79eeSsam /* 76 */ cvlf      , RAD,   4,   0,   0,   0,   0,   0,   0,
378dc5e79eeSsam /* 77 */ cvld      , RAD,   4,   0,   0,   0,   0,   0,   0,
379dc5e79eeSsam /* 78 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
380dc5e79eeSsam /* 79 */ decb      , MAD,   1,   0,   0,   0,   0,   0,   0,
381dc5e79eeSsam /* 7A */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
382dc5e79eeSsam /* 7B */ decw      , MAD,   2,   0,   0,   0,   0,   0,   0,
383dc5e79eeSsam /* 7C */ divl3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
384dc5e79eeSsam /* 7D */ decl      , MAD,   4,   0,   0,   0,   0,   0,   0,
385dc5e79eeSsam /* 7E */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
386dc5e79eeSsam /* 7F */ cvtlw     ,RADI,   4, WAD,   2,   0,   0,   0,   0,
387dc5e79eeSsam /* 80 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
388dc5e79eeSsam /* 81 */ bgeq      , Brd,   1,   0,   0,   0,   0,   0,   0,
389dc5e79eeSsam /* 82 */ movs2     ,   0,   0,   0,   0,   0,   0,   0,   0,
390dc5e79eeSsam /* 83 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
391dc5e79eeSsam /* 84 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
392dc5e79eeSsam /* 85 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
393dc5e79eeSsam /* 86 */ cvfl      , WAD,   4,   0,   0,   0,   0,   0,   0,
394dc5e79eeSsam /* 87 */ cvdl      , WAD,   4,   0,   0,   0,   0,   0,   0,
395dc5e79eeSsam /* 88 */ orb2      ,RADI,   1,NMAD,   1,   0,   0,   0,   0,
396dc5e79eeSsam /* 89 */ cvtbl     ,RADI,   1, WAD,   4,   0,   0,   0,   0,
397dc5e79eeSsam /* 8A */ orw2      ,RADI,   2,NMAD,   2,   0,   0,   0,   0,
398dc5e79eeSsam /* 8B */ bispsw    ,RADI,   2,   0,   0,   0,   0,   0,   0,
399dc5e79eeSsam /* 8C */ orl2      ,RADI,   4, MAD,   4,   0,   0,   0,   0,
400dc5e79eeSsam /* 8D */ adwc      ,RADI,   4, MAD,   4,   0,   0,   0,   0,
401dc5e79eeSsam /* 8E */ adda      ,RADI,   4, MAD,   4,   0,   0,   0,   0,
402dc5e79eeSsam /* 8F */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
403dc5e79eeSsam /* 90 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
404dc5e79eeSsam /* 91 */ blss      , Brd,   1,   0,   0,   0,   0,   0,   0,
405dc5e79eeSsam /* 92 */ cmps2     ,   0,   0,   0,   0,   0,   0,   0,   0,
406dc5e79eeSsam /* 93 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
407dc5e79eeSsam /* 94 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
408dc5e79eeSsam /* 95 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
409dc5e79eeSsam /* 96 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
410dc5e79eeSsam /* 97 */ ldfd      ,RADF,   4,   0,   0,   0,   0,   0,   0,
411dc5e79eeSsam /* 98 */ orb3      ,RADI,   1,RADI,   1,NWAD,   1,   0,   0,
412dc5e79eeSsam /* 99 */ cvtbw     ,RADI,   1, WAD,   2,   0,   0,   0,   0,
413dc5e79eeSsam /* 9A */ orw3      ,RADI,   2,RADI,   2,NWAD,   2,   0,   0,
414dc5e79eeSsam /* 9B */ bicpsw    ,RADI,   2,   0,   0,   0,   0,   0,   0,
415dc5e79eeSsam /* 9C */ orl3      ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
416dc5e79eeSsam /* 9D */ sbwc      ,RADI,   4, MAD,   4,   0,   0,   0,   0,
417dc5e79eeSsam /* 9E */ suba      ,RADI,   4, MAD,   4,   0,   0,   0,   0,
418dc5e79eeSsam /* 9F */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
419dc5e79eeSsam /* A0 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
420dc5e79eeSsam /* A1 */ bgtru     , Brd,   1,   0,   0,   0,   0,   0,   0,
421dc5e79eeSsam /* A2 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
422dc5e79eeSsam /* A3 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
423dc5e79eeSsam /* A4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
424dc5e79eeSsam /* A5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
425dc5e79eeSsam /* A6 */ cvdf      ,   0,   0,   0,   0,   0,   0,   0,   0,
426dc5e79eeSsam /* A7 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
427dc5e79eeSsam /* A8 */ andb2     ,RADI,   1,NMAD,   1,   0,   0,   0,   0,
428dc5e79eeSsam /* A9 */ movzbl    ,RADI,   1, WAD,   4,   0,   0,   0,   0,
429dc5e79eeSsam /* AA */ andw2     ,RADI,   2,NMAD,   2,   0,   0,   0,   0,
430dc5e79eeSsam /* AB */ loadr     ,RADI,   2,ADDR,   4,   0,   0,   0,   0,
431dc5e79eeSsam /* AC */ andl2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
432dc5e79eeSsam /* AD */ mtpr      ,RADI,   4,RADI,   4,   0,   0,   0,   0,
433dc5e79eeSsam /* AE */ ffs       ,RADI,   4, WAD,   4,   0,   0,   0,   0,
434dc5e79eeSsam /* AF */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
435dc5e79eeSsam /* B0 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
436dc5e79eeSsam /* B1 */ blequ     , Brd,   1,   0,   0,   0,   0,   0,   0,
437dc5e79eeSsam /* B2 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
438dc5e79eeSsam /* B3 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
439dc5e79eeSsam /* B4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
440dc5e79eeSsam /* B5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
441dc5e79eeSsam /* B6 */ negf      ,   0,   0,   0,   0,   0,   0,   0,   0,
442dc5e79eeSsam /* B7 */ negd      ,   0,   0,   0,   0,   0,   0,   0,   0,
443dc5e79eeSsam /* B8 */ andb3     ,RADI,   1,RADI,   1,NWAD,   1,   0,   0,
444dc5e79eeSsam /* B9 */ movzbw    ,RADI,   1, WAD,   2,   0,   0,   0,   0,
445dc5e79eeSsam /* BA */ andw3     ,RADI,   2,RADI,   2,NWAD,   2,   0,   0,
446dc5e79eeSsam /* BB */ storer    ,RADI,   2,W|ADDR, 4,   0,   0,   0,   0,
447dc5e79eeSsam /* BC */ andl3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
448dc5e79eeSsam /* BD */ mfpr      ,RADI,   4, WAD,   4,   0,   0,   0,   0,
449dc5e79eeSsam /* BE */ ffc       ,RADI,   4, WAD,   4,   0,   0,   0,   0,
450dc5e79eeSsam /* BF */ calls     ,RADI,   1,ADDR,   1,   0,   0,   0,   0,
451dc5e79eeSsam /* C0 */ prober    ,RADI,   1,ADDR,   1,RADI,   4,   0,   0,
452dc5e79eeSsam /* C1 */ bvc       , Brd,   1,   0,   0,   0,   0,   0,   0,
453dc5e79eeSsam /* C2 */ movs3     ,   0,   0,   0,   0,   0,   0,   0,   0,
454dc5e79eeSsam /* C3 */ movzwl    ,RADI,   2, WAD,   4,   0,   0,   0,   0,
455dc5e79eeSsam /* C4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
456dc5e79eeSsam /* C5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
457dc5e79eeSsam /* C6 */ addf      ,RADF,   4,   0,   0,   0,   0,   0,   0,
458dc5e79eeSsam /* C7 */ addd      ,RADF,   8,   0,   0,   0,   0,   0,   0,
459dc5e79eeSsam /* C8 */ xorb2     ,RADI,   1,NMAD,   1,   0,   0,   0,   0,
460dc5e79eeSsam /* C9 */ movob     ,RADI,   1,NWAD,   1,   0,   0,   0,   0,
461dc5e79eeSsam /* CA */ xorw2     ,RADI,   2,NMAD,   2,   0,   0,   0,   0,
462dc5e79eeSsam /* CB */ movow     ,RADI,   2,NWAD,   2,   0,   0,   0,   0,
463dc5e79eeSsam /* CC */ xorl2     ,RADI,   4, MAD,   4,   0,   0,   0,   0,
464dc5e79eeSsam /* CD */ movpsl    , WAD,   4,   0,   0,   0,   0,   0,   0,
465dc5e79eeSsam /* CE */ btcs      ,RADI,   1,   0,   0,   0,   0,   0,   0,
466dc5e79eeSsam /* CF */ kcall     ,RADI,   2,   0,   0,   0,   0,   0,   0,
467dc5e79eeSsam /* D0 */ probew    ,RADI,   1,ADDR,   1,RADI,   4,   0,   0,
468dc5e79eeSsam /* D1 */ bvs       , Brd,   1,   0,   0,   0,   0,   0,   0,
469dc5e79eeSsam /* D2 */ cmps3     ,   0,   0,   0,   0,   0,   0,   0,   0,
470dc5e79eeSsam /* D3 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
471dc5e79eeSsam /* D4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
472dc5e79eeSsam /* D5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
473dc5e79eeSsam /* D6 */ subf      ,RADF,   4,   0,   0,   0,   0,   0,   0,
474dc5e79eeSsam /* D7 */ subd      ,RADF,   8,   0,   0,   0,   0,   0,   0,
475dc5e79eeSsam /* D8 */ xorb3     ,RADI,   1,RADI,   1,NWAD,   1,   0,   0,
476dc5e79eeSsam /* D9 */ pushb     ,RADI,   1,   0,   0,   0,   0,   0,   0,
477dc5e79eeSsam /* DA */ xorw3     ,RADI,   2,RADI,   2,NWAD,   2,   0,   0,
478dc5e79eeSsam /* DB */ pushw     ,RADI,   2,   0,   0,   0,   0,   0,   0,
479dc5e79eeSsam /* DC */ xorl3     ,RADI,   4,RADI,   4, WAD,   4,   0,   0,
480dc5e79eeSsam /* DD */ pushl     ,RADI,   4,   0,   0,   0,   0,   0,   0,
481dc5e79eeSsam /* DE */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
482dc5e79eeSsam /* DF */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
483dc5e79eeSsam /* E0 */ insque    ,ADDR,   4,ADDR,   4,   0,   0,   0,   0,
484dc5e79eeSsam /* E1 */ bcs       , Brd,   1,   0,   0,   0,   0,   0,   0,
485dc5e79eeSsam /* E2 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
486dc5e79eeSsam /* E3 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
487dc5e79eeSsam /* E4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
488dc5e79eeSsam /* E5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
489dc5e79eeSsam /* E6 */ mulf      ,RADF,   4,   0,   0,   0,   0,   0,   0,
490dc5e79eeSsam /* E7 */ muld      ,RADF,   8,   0,   0,   0,   0,   0,   0,
491dc5e79eeSsam /* E8 */ mnegb     ,RADI,   1, WAD,   1,   0,   0,   0,   0,
492dc5e79eeSsam /* E9 */ movab     ,ADDR,   1, WAD,   4,   0,   0,   0,   0,
493dc5e79eeSsam /* EA */ mnegw     ,RADI,   2, WAD,   2,   0,   0,   0,   0,
494dc5e79eeSsam /* EB */ movaw     ,ADDR,   2, WAD,   4,   0,   0,   0,   0,
495dc5e79eeSsam /* EC */ mnegl     ,RADI,   4, WAD,   4,   0,   0,   0,   0,
496dc5e79eeSsam /* ED */ moval     ,ADDR,   4, WAD,   4,   0,   0,   0,   0,
497dc5e79eeSsam /* EE */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
498dc5e79eeSsam /* EF */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
499dc5e79eeSsam /* F0 */ remque    ,ADDR,   4,   0,   0,   0,   0,   0,   0,
500dc5e79eeSsam /* F1 */ bcc       , Brd,   1,   0,   0,   0,   0,   0,   0,
501dc5e79eeSsam /* F2 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
502dc5e79eeSsam /* F3 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
503dc5e79eeSsam /* F4 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
504dc5e79eeSsam /* F5 */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
505dc5e79eeSsam /* F6 */ divf      ,RADF,   4,   0,   0,   0,   0,   0,   0,
506dc5e79eeSsam /* F7 */ divd      ,RADF,   8,   0,   0,   0,   0,   0,   0,
507dc5e79eeSsam /* F8 */ movblk    ,   0,   0,   0,   0,   0,   0,   0,   0,
508dc5e79eeSsam /* F9 */ pushab    ,ADDR,   1,   0,   0,   0,   0,   0,   0,
509dc5e79eeSsam /* FA */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0,
510dc5e79eeSsam /* FB */ pushaw    ,ADDR,   2,   0,   0,   0,   0,   0,   0,
511dc5e79eeSsam /* FC */ casel     ,RADI,   4,RADI,   4,RADI,   4,   0,   0,
512dc5e79eeSsam /* FD */ pushal    ,ADDR,   4,   0,   0,   0,   0,   0,   0,
513dc5e79eeSsam /* FE */ callf    ,Imm|Lit, 1,  PR,   1,   0,   0,   0,   0,
514dc5e79eeSsam /* FF */ illegal   ,   0,   0,   0,   0,   0,   0,   0,   0
515dc5e79eeSsam };
516