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