xref: /csrg-svn/old/dbx/ops.c (revision 9682)
1*9682Slinton /* Copyright (c) 1982 Regents of the University of California */
2*9682Slinton 
3*9682Slinton static char sccsid[] = "@(#)@(#)ops.c 1.1 12/15/82";
4*9682Slinton 
5*9682Slinton /*
6*9682Slinton  * Machine operators.
7*9682Slinton  */
8*9682Slinton 
9*9682Slinton #include "defs.h"
10*9682Slinton #include "vaxops.h"
11*9682Slinton 
12*9682Slinton #ifndef public
13*9682Slinton typedef unsigned char VaxOpcode;
14*9682Slinton 
15*9682Slinton #define O_HALT 0x00		/* halt */
16*9682Slinton #define O_NOP 0x01		/* no operation */
17*9682Slinton #define O_REI 0x02		/* return from exception or interrupt */
18*9682Slinton #define O_BPT 0x03		/* break point fault */
19*9682Slinton #define O_RET 0x04		/* return from called procedure */
20*9682Slinton #define O_RSB 0x05		/* return from subroutine */
21*9682Slinton #define O_LDPCTX 0x06		/* load process context */
22*9682Slinton #define O_SVPCTX 0x07		/* save process context */
23*9682Slinton #define O_CVTPS 0x08		/* convert packed to leading separate numeric */
24*9682Slinton #define O_CVTSP 0x09		/* convert leading separate numeric to packed */
25*9682Slinton #define O_INDEX 0x0A		/* compute index */
26*9682Slinton #define O_CRC 0x0B		/* calculate cyclic redundancy check */
27*9682Slinton #define O_PROBER 0x0C		/* probe read access */
28*9682Slinton #define O_PROBEW 0x0D		/* probe write access */
29*9682Slinton #define O_INSQUE 0x0E		/* insert into queue */
30*9682Slinton #define O_REMQUE 0x0F		/* remove from queue */
31*9682Slinton #define O_BSBB 0x10		/* branch to subroutine with byte disp */
32*9682Slinton #define O_BRB 0x11		/* branch with byte disp */
33*9682Slinton #define O_BNEQ 0x12		/* branch on not equal (also BNEQU) */
34*9682Slinton #define O_BEQL 0x13		/* branch on equal (also BEQLU */
35*9682Slinton #define O_BGTR 0x14		/* branch on greater */
36*9682Slinton #define O_BLEQ 0x15		/* branch on less or equal */
37*9682Slinton #define O_JSB 0x16		/* jump to subroutine */
38*9682Slinton #define O_JMP 0x17		/* jump */
39*9682Slinton #define O_BGEQ 0x18		/* branch on greater or equal */
40*9682Slinton #define O_BLSS 0x19		/* branch on less */
41*9682Slinton #define O_BGTRU 0x1A		/* branch on greater unsigned */
42*9682Slinton #define O_BLEQU 0x1B		/* branch on less of equal unsigned */
43*9682Slinton #define O_BVC 0x1C		/* branch on overflow clear */
44*9682Slinton #define O_BVS 0x1D		/* branch on overflow set */
45*9682Slinton #define O_BCC 0x1E		/* branch on carry clear (also BGEQU) */
46*9682Slinton #define O_BCS 0x1F		/* branch on carry set (also BLSSU) */
47*9682Slinton #define O_ADDP4 0x20		/* add packed 4 operand */
48*9682Slinton #define O_ADDP6 0x21		/* add packed 6 operand */
49*9682Slinton #define O_SUBP4 0x22		/* subtract packed 4 operand */
50*9682Slinton #define O_SUBP6 0x23		/* subtract packed 6 operand */
51*9682Slinton #define O_CVTPT 0x24		/* convert packed to trailing numeric */
52*9682Slinton #define O_MULP 0x25		/* multiply packed */
53*9682Slinton #define O_CVTTP 0x26		/* convert trailing numeric to packed */
54*9682Slinton #define O_DIVP 0x27		/* divide packed */
55*9682Slinton #define O_MOVC3 0x28		/* move character 3 operand */
56*9682Slinton #define O_CMPC3 0x29		/* compare character 3 operand */
57*9682Slinton #define O_SCANC 0x2A		/* scan for character */
58*9682Slinton #define O_SPANC 0x2B		/* span characters */
59*9682Slinton #define O_MOVC5 0x2C		/* move character 5 operand */
60*9682Slinton #define O_CMPC5 0x2D		/* compare character 5 operand */
61*9682Slinton #define O_MOVTC 0x2E		/* move translated characters */
62*9682Slinton #define O_MOVTUC 0x2F		/* move translated until character */
63*9682Slinton #define O_BSBW 0x30		/* branch to subroutine with word disp */
64*9682Slinton #define O_BRW 0x31		/* branch with word disp */
65*9682Slinton #define O_CVTWL 0x32		/* convert word to long */
66*9682Slinton #define O_CVTWB 0x33		/* convert word to byte */
67*9682Slinton #define O_MOVP 0x34		/* move packed */
68*9682Slinton #define O_CMPP3 0x35		/* compare packed 3 operand */
69*9682Slinton #define O_CVTPL 0x36		/* convert packed to long */
70*9682Slinton #define O_CMPP4 0x37		/* compare packed 4 operand */
71*9682Slinton #define O_EDITPC 0x38		/* edit packed to character */
72*9682Slinton #define O_MATCHC 0x39		/* match characters */
73*9682Slinton #define O_LOCC 0x3A		/* locate characters */
74*9682Slinton #define O_SKPC 0x3B		/* skip character */
75*9682Slinton #define O_MOVZWL 0x3C		/* move zero-extended word to long */
76*9682Slinton #define O_ACBW 0x3D		/* add compare and branch word */
77*9682Slinton #define O_MOVAW 0x3E		/* move address of word */
78*9682Slinton #define O_PUSHAW 0x3F		/* push address of word */
79*9682Slinton #define O_ADDF2 0x40		/* add floating 2 operand */
80*9682Slinton #define O_ADDF3 0x41		/* add floating 3 operand */
81*9682Slinton #define O_SUBF2 0x42		/* subtract floating 2 operand */
82*9682Slinton #define O_SUBF3 0x43		/* subtract floating 3 operand */
83*9682Slinton #define O_MULF2 0x44		/* multiply floating 2 operand */
84*9682Slinton #define O_MULF3 0x45		/* multiply floating 3 operand */
85*9682Slinton #define O_DIVF2 0x46		/* divide floating 2 operand */
86*9682Slinton #define O_DIVF3 0x47		/* divide floating 3 operand */
87*9682Slinton #define O_CVTFB 0x48		/* convert float to byte */
88*9682Slinton #define O_CVTFW 0x49		/* convert float to word */
89*9682Slinton #define O_CVTFL 0x4A		/* convert float to long */
90*9682Slinton #define O_CVTRFL 0x4B		/* convert rounded float to long */
91*9682Slinton #define O_CVTBF 0x4C		/* convert byte to float */
92*9682Slinton #define O_CVTWF 0x4D		/* convert word to float */
93*9682Slinton #define O_CVTLF 0x4E		/* convert long to float */
94*9682Slinton #define O_ACBF 0x4F		/* add compare and branch floating */
95*9682Slinton #define O_MOVF 0x50		/* move float */
96*9682Slinton #define O_CMPF 0x51		/* compare floating */
97*9682Slinton #define O_MNEGF 0x52		/* move negated floating */
98*9682Slinton #define O_TSTF 0x53		/* test float */
99*9682Slinton #define O_EMODF 0x54		/* extended modulus floating */
100*9682Slinton #define O_POLYF 0x55		/* evaluate polynomial floating */
101*9682Slinton #define O_CVTFD 0x56		/* convert float to double */
102*9682Slinton #define O_DUMMY57 0x57		/* RESERVED to DIGITAL */
103*9682Slinton #define O_ADAWI 0x58		/* add aligned word interlocked */
104*9682Slinton #define O_DUMMY59 0x59		/* RESERVED to DIGITAL */
105*9682Slinton #define O_DUMMY5a 0x5A		/* RESERVED to DIGITAL */
106*9682Slinton #define O_DUMMY5b 0x5B		/* RESERVED to DIGITAL */
107*9682Slinton #define O_INSQHI 0x5C		/* insert into queue head, interlocked */
108*9682Slinton #define O_INSQTI 0x5D		/* insert into queue tail, interlocked */
109*9682Slinton #define O_REMQHI 0x5E		/* remove from queue head, interlocked */
110*9682Slinton #define O_REMQTI 0x5F		/* remove from queue tail, interlocked */
111*9682Slinton #define O_ADDD2 0x60		/* add double 2 operand */
112*9682Slinton #define O_ADDD3 0x61		/* add double 3 operand */
113*9682Slinton #define O_SUBD2 0x62		/* subtract double 2 operand */
114*9682Slinton #define O_SUBD3 0x63		/* subtrace double 3 operand */
115*9682Slinton #define O_MULD2 0x64		/* multiply double 2 operand */
116*9682Slinton #define O_MULD3 0x65		/* multiply double 3 operand */
117*9682Slinton #define O_DIVD2 0x66		/* divide double 2 operand */
118*9682Slinton #define O_DIVD3 0x67		/* divide double 3 operand */
119*9682Slinton #define O_CVTDB 0x68		/* convert double to byte */
120*9682Slinton #define O_CVTDW 0x69		/* convert double to word */
121*9682Slinton #define O_CVTDL 0x6A		/* convert double to long */
122*9682Slinton #define O_CVTRDL 0x6B		/* convert rounded double to long */
123*9682Slinton #define O_CVTBD 0x6C		/* convert byte to double */
124*9682Slinton #define O_CVTWD 0x6D		/* convert word to double */
125*9682Slinton #define O_CVTLD 0x6E		/* convert long to double */
126*9682Slinton #define O_ACBD 0x6F		/* add compare and branch double */
127*9682Slinton #define O_MOVD 0x70		/* move double */
128*9682Slinton #define O_CMPD 0x71		/* compare double */
129*9682Slinton #define O_MNEGD 0x72		/* move negated double */
130*9682Slinton #define O_TSTD 0x73		/* test double */
131*9682Slinton #define O_EMODD 0x74		/* extended modulus double */
132*9682Slinton #define O_POLYD 0x75		/* evaluate polynomial double */
133*9682Slinton #define O_CVTDF 0x76		/* convert double to float */
134*9682Slinton #define O_DUMMY77 0x77		/* RESERVED to DIGITAL */
135*9682Slinton #define O_ASHL 0x78		/* arithmetic shift long */
136*9682Slinton #define O_ASHQ 0x79		/* arithmetic shift quad */
137*9682Slinton #define O_EMUL 0x7A		/* extended multiply */
138*9682Slinton #define O_EDIV 0x7B		/* extended divide */
139*9682Slinton #define O_CLRQ 0x7C		/* clear quad (also CLRD) */
140*9682Slinton #define O_MOVQ 0x7D		/* move quad */
141*9682Slinton #define O_MOVAQ 0x7E		/* move address of quad (also MOVAD) */
142*9682Slinton #define O_PUSHAQ 0x7F		/* push address of quad (also PUSHAD) */
143*9682Slinton #define O_ADDB2 0x80		/* add byte 2 operand */
144*9682Slinton #define O_ADDB3 0x81		/* add byte 3 operand */
145*9682Slinton #define O_SUBB2 0x82		/* subtract byte 2 operand */
146*9682Slinton #define O_SUBB3 0x83		/* subtract byte 3 operand */
147*9682Slinton #define O_MULB2 0x84		/* multiply byte 2 operand */
148*9682Slinton #define O_MULB3 0x85		/* multiply byte 3 operand */
149*9682Slinton #define O_DIVB2 0x86		/* divide byte 2 operand */
150*9682Slinton #define O_DIVB3 0x87		/* divide byte 3 operand */
151*9682Slinton #define O_BISB2 0x88		/* bit set byte 2 operand */
152*9682Slinton #define O_BISB3 0x89		/* bit set byte 3 operand */
153*9682Slinton #define O_BICB2 0x8A		/* bit clear byte 2 operand */
154*9682Slinton #define O_BICB3 0x8B		/* bit clear byte 3 operand */
155*9682Slinton #define O_XORB2 0x8C		/* exclusive or byte 2 operand */
156*9682Slinton #define O_XORB3 0x8D		/* exclusive or byte 3 operand */
157*9682Slinton #define O_MNEGB 0x8E		/* move negated byte */
158*9682Slinton #define O_CASEB 0x8F		/* case byte */
159*9682Slinton #define O_MOVB 0x90		/* move byte */
160*9682Slinton #define O_CMPB 0x91		/* compare byte */
161*9682Slinton #define O_MCOMB 0x92		/* move complemented byte */
162*9682Slinton #define O_BITB 0x93		/* bit test byte */
163*9682Slinton #define O_CLRB 0x94		/* clear byte */
164*9682Slinton #define O_TSTB 0x95		/* test byte */
165*9682Slinton #define O_INCB 0x96		/* increment byte */
166*9682Slinton #define O_DECB 0x97		/* decrement byte */
167*9682Slinton #define O_CVTBL 0x98		/* convert byte to long */
168*9682Slinton #define O_CVTBW 0x99		/* convert byte to word */
169*9682Slinton #define O_MOVZBL 0x9A		/* move zero-extended byte to long */
170*9682Slinton #define O_MOVZBW 0x9B		/* move zero-extended byte to word */
171*9682Slinton #define O_ROTL 0x9C		/* rotate long */
172*9682Slinton #define O_ACBB 0x9D		/* add compare and branch byte */
173*9682Slinton #define O_MOVAB 0x9E		/* move address of byte */
174*9682Slinton #define O_PUSHAB 0x9F		/* push address of byte */
175*9682Slinton #define O_ADDW2 0xA0		/* add word 2 operand */
176*9682Slinton #define O_ADDW3 0xA1		/* add word 3 operand */
177*9682Slinton #define O_SUBW2 0xA2		/* subtract word 2 operand */
178*9682Slinton #define O_SUBW3 0xA3		/* subtract word 3 operand */
179*9682Slinton #define O_MULW2 0xA4		/* multiply word 2 operand */
180*9682Slinton #define O_MULW3 0xA5		/* multiply word 3 operand */
181*9682Slinton #define O_DIVW2 0xA6		/* divide word 2 operand */
182*9682Slinton #define O_DIVW3 0xA7		/* divide word 3 operand */
183*9682Slinton #define O_BISW2 0xA8		/* bit set word 2 operand */
184*9682Slinton #define O_BISW3 0xA9		/* bit set word 3 operand */
185*9682Slinton #define O_BICW2 0xAA		/* bit clear word 2 operand */
186*9682Slinton #define O_BICW3 0xAB		/* bit clear word 3 operand */
187*9682Slinton #define O_XORW2 0xAC		/* exclusive or word 2 operand */
188*9682Slinton #define O_XORW3 0xAD		/* exclusive or word 3 operand */
189*9682Slinton #define O_MNEGW 0xAE		/* move negated word */
190*9682Slinton #define O_CASEW 0xAF		/* case word */
191*9682Slinton #define O_MOVW 0xB0		/* move word */
192*9682Slinton #define O_CMPW 0xB1		/* compare word */
193*9682Slinton #define O_MCOMW 0xB2		/* move complemented word */
194*9682Slinton #define O_BITW 0xB3		/* bit test word */
195*9682Slinton #define O_CLRW 0xB4		/* clear word */
196*9682Slinton #define O_TSTW 0xB5		/* test word */
197*9682Slinton #define O_INCW 0xB6		/* increment word */
198*9682Slinton #define O_DECW 0xB7		/* decrement word */
199*9682Slinton #define O_BISPSW 0xB8		/* bit set processor status word */
200*9682Slinton #define O_BICPSW 0xB9		/* bit clear processor status word */
201*9682Slinton #define O_POPR 0xBA		/* pop register */
202*9682Slinton #define O_PUSHR 0xBB		/* push register */
203*9682Slinton #define O_CHMK 0xBC		/* change mode to kernel */
204*9682Slinton #define O_CHME 0xBD		/* change mode to executive */
205*9682Slinton #define O_CHMS 0xBE		/* change mode to supervisor */
206*9682Slinton #define O_CHMU 0xBF		/* change mode to user */
207*9682Slinton #define O_ADDL2 0xC0		/* add long 2 operand */
208*9682Slinton #define O_ADDL3 0xC1		/* add long 3 operand */
209*9682Slinton #define O_SUBL2 0xC2		/* subtract long 2 operand */
210*9682Slinton #define O_SUBL3 0xC3		/* subtract long 3 operand */
211*9682Slinton #define O_MULL2 0xC4		/* multiply long 2 operand */
212*9682Slinton #define O_MULL3 0xC5		/* multiply long 3 operand */
213*9682Slinton #define O_DIVL2 0xC6		/* divide long 2 operand */
214*9682Slinton #define O_DIVL3 0xC7		/* divide long 3 operand */
215*9682Slinton #define O_BISL2 0xC8		/* bit set long 2 operand */
216*9682Slinton #define O_BISL3 0xC9		/* bit set long 3 operand */
217*9682Slinton #define O_BICL2 0xCA		/* bit clear long 2 operand */
218*9682Slinton #define O_BICL3 0xCB		/* bit clear long 3 operand */
219*9682Slinton #define O_XORL2 0xCC		/* exclusive or long 2 operand */
220*9682Slinton #define O_XORL3 0xCD		/* exclusive or long 3 operand */
221*9682Slinton #define O_MNEGL 0xCE		/* move negated long */
222*9682Slinton #define O_CASEL 0xCF		/* case long */
223*9682Slinton #define O_MOVL 0xD0		/* move long */
224*9682Slinton #define O_CMPL 0xD1		/* compare long */
225*9682Slinton #define O_MCOML 0xD2		/* move complemented long */
226*9682Slinton #define O_BITL 0xD3		/* bit test long */
227*9682Slinton #define O_CLRL 0xD4		/* clear long (also CLRF) */
228*9682Slinton #define O_TSTL 0xD5		/* test long */
229*9682Slinton #define O_INCL 0xD6		/* increment long */
230*9682Slinton #define O_DECL 0xD7		/* decrement long */
231*9682Slinton #define O_ADWC 0xD8		/* add with carry */
232*9682Slinton #define O_SBWC 0xD9		/* subtrace with carry */
233*9682Slinton #define O_MTPR 0xDA		/* move to processor register */
234*9682Slinton #define O_MFPR 0xDB		/* move from processor register */
235*9682Slinton #define O_MOVPSL 0xDC		/* move processor status longword */
236*9682Slinton #define O_PUSHL 0xDD		/* push long */
237*9682Slinton #define O_MOVAL 0xDE		/* move address of long (also MOVAF) */
238*9682Slinton #define O_PUSHAL 0xDF		/* push address of long (also PUSHAF) */
239*9682Slinton #define O_BBS 0xE0		/* branch on bit set */
240*9682Slinton #define O_BBC 0xE1		/* branch on bit clear */
241*9682Slinton #define O_BBSS 0xE2		/* branch on bit set and set */
242*9682Slinton #define O_BBCS 0xE3		/* branch on bit clear and set */
243*9682Slinton #define O_BBSC 0xE4		/* branch on bit set and clear */
244*9682Slinton #define O_BBCC 0xE5		/* branch on bit clear and clear */
245*9682Slinton #define O_BBSSI 0xE6		/* branch on bit set and set interlocked */
246*9682Slinton #define O_BBCCI 0xE7		/* branch on bit clear and clear interlocked */
247*9682Slinton #define O_BLBS 0xE8		/* branch on low bit set */
248*9682Slinton #define O_BLBC 0xE9		/* branch on low bit clear */
249*9682Slinton #define O_FFS 0xEA		/* find first set bit */
250*9682Slinton #define O_FFC 0xEB		/* find first clear bit */
251*9682Slinton #define O_CMPV 0xEC		/* compare field */
252*9682Slinton #define O_CMPZV 0xED		/* compare zero-extended field */
253*9682Slinton #define O_EXTV 0xEE		/* extract field */
254*9682Slinton #define O_EXTZV 0xEF		/* extract zero-extended field */
255*9682Slinton #define O_INSV 0xF0		/* insert field */
256*9682Slinton #define O_ACBL 0xF1		/* add compare and branch long */
257*9682Slinton #define O_AOBLSS 0xF2		/* add one and branch on less */
258*9682Slinton #define O_AOBLEQ 0xF3		/* add one and branch on less or equal */
259*9682Slinton #define O_SOBGEQ 0xF4		/* subtract one and branch on gtr or equal */
260*9682Slinton #define O_SOBGTR 0xF5		/* subtract one and branch on greater */
261*9682Slinton #define O_CVTLB 0xF6		/* convert long to byte */
262*9682Slinton #define O_CVTLW 0xF7		/* convert long to word */
263*9682Slinton #define O_ASHP 0xF8		/* arithmetic shift and round packed */
264*9682Slinton #define O_CVTLP 0xF9		/* convert long to packed */
265*9682Slinton #define O_CALLG 0xFA		/* call with general argument list */
266*9682Slinton #define O_CALLS 0xFB		/* call with stack */
267*9682Slinton #define O_XFC 0xFC		/* extended function call */
268*9682Slinton #define O_ESCD 0xFD		/* ESCD to DIGITAL */
269*9682Slinton #define O_ESCE 0xFE		/* ESCE to DIGITAL */
270*9682Slinton #define O_ESCF 0xFF		/* ESCF to DIGITAL */
271*9682Slinton 
272*9682Slinton /*
273*9682Slinton  * Opcode definitions.
274*9682Slinton  *
275*9682Slinton  * Much of this was taken from the assembler.
276*9682Slinton  */
277*9682Slinton 
278*9682Slinton /*
279*9682Slinton  * Argument access types.
280*9682Slinton  */
281*9682Slinton 
282*9682Slinton #define ACCA    0100    /* address only */
283*9682Slinton #define ACCR    010	/* read */
284*9682Slinton #define ACCW    020	/* write */
285*9682Slinton #define ACCM    030	/* modify */
286*9682Slinton #define ACCB    040	/* branch displacement */
287*9682Slinton #define ACCI    050	/* variable field */
288*9682Slinton 
289*9682Slinton /*
290*9682Slinton  * Argument lengths.
291*9682Slinton  */
292*9682Slinton 
293*9682Slinton #define TYPB    0	/* byte */
294*9682Slinton #define TYPW    01	/* word */
295*9682Slinton #define TYPL    02	/* long */
296*9682Slinton #define TYPQ    03	/* quad */
297*9682Slinton #define TYPF    04	/* floating */
298*9682Slinton #define TYPD    05	/* double floating */
299*9682Slinton 
300*9682Slinton /*
301*9682Slinton  * Addressing modes.
302*9682Slinton  */
303*9682Slinton 
304*9682Slinton #define LITSHORT    0x0	/* short literals */
305*9682Slinton #define LITUPTO31   0x1
306*9682Slinton #define LITUPTO47   0x2
307*9682Slinton #define LITUPTO63   0x3
308*9682Slinton #define INDEX       0x4 /* i[r] */
309*9682Slinton #define REG	    0x5 /* r */
310*9682Slinton #define REGDEF      0x6 /* (r) */
311*9682Slinton #define AUTODEC     0x7 /* -(r) */
312*9682Slinton #define AUTOINC     0x8 /* (r)+ */
313*9682Slinton #define AUTOINCDEF  0x9 /* *(r)+ */
314*9682Slinton #define BYTEDISP    0xA /* BD(r) */
315*9682Slinton #define BYTEDISPDEF 0xB /* *BD(r) */
316*9682Slinton #define WORDDISP    0xC /* WD(r) */
317*9682Slinton #define WORDDISPDEF 0xD /* *WD(r) */
318*9682Slinton #define LONGDISP    0xE /* LD(r) */
319*9682Slinton #define LONGDISPDEF 0xF /* *LD(r) */
320*9682Slinton 
321*9682Slinton #define is_branch_disp(arg) ((arg & ACCB) != 0)
322*9682Slinton #define typelen(arg)        (arg & 07)
323*9682Slinton #define regnm(mode)	    (mode & 0xF)
324*9682Slinton #define addrmode(mode)      (mode >> 4)
325*9682Slinton 
326*9682Slinton /*
327*9682Slinton  * Operator information structure.
328*9682Slinton  */
329*9682Slinton 
330*9682Slinton typedef struct {
331*9682Slinton     char *iname;
332*9682Slinton     char val;
333*9682Slinton     char numargs;
334*9682Slinton     char argtype[6];
335*9682Slinton } Optab;
336*9682Slinton 
337*9682Slinton #endif
338*9682Slinton 
339*9682Slinton public Optab optab[] = {
340*9682Slinton     {"halt", 0x00, 0, 0, 0, 0, 0, 0, 0},
341*9682Slinton     {"nop", 0x01, 0, 0, 0, 0, 0, 0, 0},
342*9682Slinton     {"rei", 0x02, 0, 0, 0, 0, 0, 0, 0},
343*9682Slinton     {"bpt", 0x03, 0, 0, 0, 0, 0, 0, 0},
344*9682Slinton     {"ret", 0x04, 0, 0, 0, 0, 0, 0, 0},
345*9682Slinton     {"rsb", 0x05, 0, 0, 0, 0, 0, 0, 0},
346*9682Slinton     {"ldpctx", 0x06, 0, 0, 0, 0, 0, 0, 0},
347*9682Slinton     {"svpctx", 0x07, 0, 0, 0, 0, 0, 0, 0},
348*9682Slinton     {"cvtps", 0x08, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
349*9682Slinton     {"cvtsp", 0x09, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
350*9682Slinton     {"index", 0x0a, 6, ACCR+TYPL, ACCR+TYPL, ACCR+TYPL, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL},
351*9682Slinton     {"crc", 0x0b, 4, ACCA+TYPB, ACCR+TYPL, ACCR+TYPW, ACCA+TYPB, 0, 0},
352*9682Slinton     {"prober", 0x0c, 3, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
353*9682Slinton     {"probew", 0x0d, 3, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
354*9682Slinton     {"insque", 0x0e, 2, ACCA+TYPB, ACCA+TYPB, 0, 0, 0, 0},
355*9682Slinton     {"remque", 0x0f, 2, ACCA+TYPB, ACCW+TYPL, 0, 0, 0, 0},
356*9682Slinton     {"bsbb", 0x10, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
357*9682Slinton     {"brb", 0x11, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
358*9682Slinton     {"bneq", 0x12, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
359*9682Slinton     {"beql", 0x13, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
360*9682Slinton     {"bgtr", 0x14, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
361*9682Slinton     {"bleq", 0x15, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
362*9682Slinton     {"jsb", 0x16, 1, ACCA+TYPB, 0, 0, 0, 0, 0},
363*9682Slinton     {"jmp", 0x17, 1, ACCA+TYPB, 0, 0, 0, 0, 0},
364*9682Slinton     {"bgeq", 0x18, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
365*9682Slinton     {"blss", 0x19, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
366*9682Slinton     {"bgtru", 0x1a, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
367*9682Slinton     {"blequ", 0x1b, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
368*9682Slinton     {"bvc", 0x1c, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
369*9682Slinton     {"bvs", 0x1d, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
370*9682Slinton     {"bcc", 0x1e, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
371*9682Slinton     {"bcs", 0x1f, 1, ACCB+TYPB, 0, 0, 0, 0, 0},
372*9682Slinton     {"addp4", 0x20, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
373*9682Slinton     {"addp6", 0x21, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
374*9682Slinton     {"subp4", 0x22, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
375*9682Slinton     {"subp6", 0x23, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
376*9682Slinton     {"cvtpt", 0x24, 5, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0},
377*9682Slinton     {"mulp", 0x25, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
378*9682Slinton     {"cvttp", 0x26, 5, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0},
379*9682Slinton     {"divp", 0x27, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
380*9682Slinton     {"movc3", 0x28, 3, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, 0, 0, 0},
381*9682Slinton     {"cmpc3", 0x29, 3, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, 0, 0, 0},
382*9682Slinton     {"scanc", 0x2a, 4, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, ACCR+TYPB, 0, 0},
383*9682Slinton     {"spanc", 0x2b, 4, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, ACCR+TYPB, 0, 0},
384*9682Slinton     {"movc5", 0x2c, 5, ACCR+TYPW, ACCA+TYPB, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0},
385*9682Slinton     {"cmpc5", 0x2d, 5, ACCR+TYPW, ACCA+TYPB, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0},
386*9682Slinton     {"movtc", 0x2e, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPB, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
387*9682Slinton     {"movtuc", 0x2f, 6, ACCR+TYPW, ACCA+TYPB, ACCR+TYPB, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB},
388*9682Slinton     {"bsbw", 0x30, 1, ACCB+TYPW, 0, 0, 0, 0, 0},
389*9682Slinton     {"brw", 0x31, 1, ACCB+TYPW, 0, 0, 0, 0, 0},
390*9682Slinton     {"cvtwl", 0x32, 2, ACCR+TYPW, ACCW+TYPL, 0, 0, 0, 0},
391*9682Slinton     {"cvtwb", 0x33, 2, ACCR+TYPW, ACCW+TYPB, 0, 0, 0, 0},
392*9682Slinton     {"movp", 0x34, 3, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, 0, 0, 0},
393*9682Slinton     {"cmpp3", 0x35, 3, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, 0, 0, 0},
394*9682Slinton     {"cvtpl", 0x36, 3, ACCR+TYPW, ACCA+TYPB, ACCW+TYPL, 0, 0, 0},
395*9682Slinton     {"cmpp4", 0x37, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
396*9682Slinton     {"editpc", 0x38, 4, ACCR+TYPW, ACCA+TYPB, ACCA+TYPB, ACCA+TYPB, 0, 0},
397*9682Slinton     {"matchc", 0x39, 4, ACCR+TYPW, ACCA+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0},
398*9682Slinton     {"locc", 0x3a, 3, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
399*9682Slinton     {"skpc", 0x3b, 3, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
400*9682Slinton     {"movzwl", 0x3c, 2, ACCR+TYPW, ACCW+TYPL, 0, 0, 0, 0},
401*9682Slinton     {"acbw", 0x3d, 4, ACCR+TYPW, ACCR+TYPW, ACCM+TYPW, ACCB+TYPW, 0, 0},
402*9682Slinton     {"movaw", 0x3e, 2, ACCA+TYPW, ACCW+TYPL, 0, 0, 0, 0},
403*9682Slinton     {"pushaw", 0x3f, 1, ACCA+TYPW, 0, 0, 0, 0, 0},
404*9682Slinton     {"addf2", 0x40, 2, ACCR+TYPF, ACCM+TYPF, 0, 0, 0, 0},
405*9682Slinton     {"addf3", 0x41, 3, ACCR+TYPF, ACCR+TYPF, ACCW+TYPF, 0, 0, 0},
406*9682Slinton     {"subf2", 0x42, 2, ACCR+TYPF, ACCM+TYPF, 0, 0, 0, 0},
407*9682Slinton     {"subf3", 0x43, 3, ACCR+TYPF, ACCR+TYPF, ACCW+TYPF, 0, 0, 0},
408*9682Slinton     {"mulf2", 0x44, 2, ACCR+TYPF, ACCM+TYPF, 0, 0, 0, 0},
409*9682Slinton     {"mulf3", 0x45, 3, ACCR+TYPF, ACCR+TYPF, ACCW+TYPF, 0, 0, 0},
410*9682Slinton     {"divf2", 0x46, 2, ACCR+TYPF, ACCM+TYPF, 0, 0, 0, 0},
411*9682Slinton     {"divf3", 0x47, 3, ACCR+TYPF, ACCR+TYPF, ACCW+TYPF, 0, 0, 0},
412*9682Slinton     {"cvtfb", 0x48, 2, ACCR+TYPF, ACCW+TYPB, 0, 0, 0, 0},
413*9682Slinton     {"cvtfw", 0x49, 2, ACCR+TYPF, ACCW+TYPW, 0, 0, 0, 0},
414*9682Slinton     {"cvtfl", 0x4a, 2, ACCR+TYPF, ACCW+TYPL, 0, 0, 0, 0},
415*9682Slinton     {"cvtrfl", 0x4b, 2, ACCR+TYPF, ACCW+TYPL, 0, 0, 0, 0},
416*9682Slinton     {"cvtbf", 0x4c, 2, ACCR+TYPB, ACCW+TYPB, 0, 0, 0, 0},
417*9682Slinton     {"cvtwf", 0x4d, 2, ACCR+TYPW, ACCW+TYPF, 0, 0, 0, 0},
418*9682Slinton     {"cvtlf", 0x4e, 2, ACCR+TYPL, ACCW+TYPF, 0, 0, 0, 0},
419*9682Slinton     {"acbf", 0x4f, 4, ACCR+TYPF, ACCR+TYPF, ACCM+TYPF, ACCB+TYPW, 0, 0},
420*9682Slinton     {"movf", 0x50, 2, ACCR+TYPF, ACCW+TYPF, 0, 0, 0, 0},
421*9682Slinton     {"cmpf", 0x51, 2, ACCR+TYPF, ACCR+TYPF, 0, 0, 0, 0},
422*9682Slinton     {"mnegf", 0x52, 2, ACCR+TYPF, ACCW+TYPF, 0, 0, 0, 0},
423*9682Slinton     {"tstf", 0x53, 1, ACCR+TYPF, 0, 0, 0, 0, 0},
424*9682Slinton     {"emodf", 0x54, 5, ACCR+TYPF, ACCR+TYPB, ACCR+TYPF, ACCW+TYPL, ACCW+TYPF, 0},
425*9682Slinton     {"polyf", 0x55, 3, ACCR+TYPF, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
426*9682Slinton     {"cvtfd", 0x56, 2, ACCR+TYPF, ACCW+TYPD, 0, 0, 0, 0},
427*9682Slinton     {"dummy", 0x57, 0, 0, 0, 0, 0, 0, 0},
428*9682Slinton     {"adawi", 0x58, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
429*9682Slinton     {"dummy", 0x59, 0, 0, 0, 0, 0, 0, 0},
430*9682Slinton     {"dummy", 0x5a, 0, 0, 0, 0, 0, 0, 0},
431*9682Slinton     {"dummy", 0x5b, 0, 0, 0, 0, 0, 0, 0},
432*9682Slinton     {"dummy", 0x5c, 0, 0, 0, 0, 0, 0, 0},
433*9682Slinton     {"dummy", 0x5d, 0, 0, 0, 0, 0, 0, 0},
434*9682Slinton     {"dummy", 0x5e, 0, 0, 0, 0, 0, 0, 0},
435*9682Slinton     {"dummy", 0x5f, 0, 0, 0, 0, 0, 0, 0},
436*9682Slinton     {"addd2", 0x60, 2, ACCR+TYPD, ACCM+TYPD, 0, 0, 0, 0},
437*9682Slinton     {"addd3", 0x61, 3, ACCR+TYPD, ACCR+TYPD, ACCW+TYPD, 0, 0, 0},
438*9682Slinton     {"subd2", 0x62, 2, ACCR+TYPD, ACCM+TYPD, 0, 0, 0, 0},
439*9682Slinton     {"subd3", 0x63, 3, ACCR+TYPD, ACCR+TYPD, ACCW+TYPD, 0, 0, 0},
440*9682Slinton     {"muld2", 0x64, 2, ACCR+TYPD, ACCM+TYPD, 0, 0, 0, 0},
441*9682Slinton     {"muld3", 0x65, 3, ACCR+TYPD, ACCR+TYPD, ACCW+TYPD, 0, 0, 0},
442*9682Slinton     {"divd2", 0x66, 2, ACCR+TYPD, ACCM+TYPD, 0, 0, 0, 0},
443*9682Slinton     {"divd3", 0x67, 3, ACCR+TYPD, ACCR+TYPD, ACCR+TYPD, 0, 0, 0},
444*9682Slinton     {"cvtdb", 0x68, 2, ACCR+TYPD, ACCW+TYPB, 0, 0, 0, 0},
445*9682Slinton     {"cvtdw", 0x69, 2, ACCR+TYPD, ACCW+TYPW, 0, 0, 0, 0},
446*9682Slinton     {"cvtdl", 0x6a, 2, ACCR+TYPD, ACCW+TYPL, 0, 0, 0, 0},
447*9682Slinton     {"cvtrdl", 0x6b, 2, ACCR+TYPD, ACCW+TYPL, 0, 0, 0, 0},
448*9682Slinton     {"cvtbd", 0x6c, 2, ACCR+TYPB, ACCW+TYPD, 0, 0, 0, 0},
449*9682Slinton     {"cvtwd", 0x6d, 2, ACCR+TYPW, ACCW+TYPD, 0, 0, 0, 0},
450*9682Slinton     {"cvtld", 0x6e, 2, ACCR+TYPL, ACCW+TYPD, 0, 0, 0, 0},
451*9682Slinton     {"acbd", 0x6f, 4, ACCR+TYPD, ACCR+TYPD, ACCM+TYPD, ACCB+TYPW, 0, 0},
452*9682Slinton     {"movd", 0x70, 2, ACCR+TYPD, ACCW+TYPD, 0, 0, 0, 0},
453*9682Slinton     {"cmpd", 0x71, 2, ACCR+TYPD, ACCR+TYPD, 0, 0, 0, 0},
454*9682Slinton     {"mnegd", 0x72, 2, ACCR+TYPD, ACCW+TYPD, 0, 0, 0, 0},
455*9682Slinton     {"tstd", 0x73, 1, ACCR+TYPD, 0, 0, 0, 0, 0},
456*9682Slinton     {"emodd", 0x74, 5, ACCR+TYPD, ACCR+TYPB, ACCR+TYPD, ACCW+TYPL, ACCW+TYPD, 0},
457*9682Slinton     {"polyd", 0x75, 3, ACCR+TYPD, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
458*9682Slinton     {"cvtdf", 0x76, 2, ACCR+TYPD, ACCW+TYPF, 0, 0, 0, 0},
459*9682Slinton     {"dummy0x77", 0x77, 0, 0, 0, 0, 0, 0, 0},
460*9682Slinton     {"ashl", 0x78, 3, ACCR+TYPB, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
461*9682Slinton     {"ashq", 0x79, 3, ACCR+TYPB, ACCR+TYPQ, ACCW+TYPQ, 0, 0, 0},
462*9682Slinton     {"emul", 0x7a, 4, ACCR+TYPL, ACCR+TYPL, ACCR+TYPL, ACCW+TYPQ, 0, 0},
463*9682Slinton     {"ediv", 0x7b, 4, ACCR+TYPL, ACCR+TYPQ, ACCW+TYPL, ACCW+TYPL, 0, 0},
464*9682Slinton     {"clrq", 0x7c, 1, ACCW+TYPD, 0, 0, 0, 0, 0},
465*9682Slinton     {"movq", 0x7d, 2, ACCR+TYPQ, ACCW+TYPQ, 0, 0, 0, 0},
466*9682Slinton     {"movaq", 0x7e, 2, ACCA+TYPQ, ACCW+TYPL, 0, 0, 0, 0},
467*9682Slinton     {"pushaq", 0x7f, 1, ACCA+TYPQ, 0, 0, 0, 0, 0},
468*9682Slinton     {"addb2", 0x80, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
469*9682Slinton     {"addb3", 0x81, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
470*9682Slinton     {"subb2", 0x82, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
471*9682Slinton     {"subb3", 0x83, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
472*9682Slinton     {"mulb2", 0x84, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
473*9682Slinton     {"mulb3", 0x85, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
474*9682Slinton     {"divb2", 0x86, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
475*9682Slinton     {"divb3", 0x87, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
476*9682Slinton     {"bisb2", 0x88, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
477*9682Slinton     {"bisb3", 0x89, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
478*9682Slinton     {"bicb2", 0x8a, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
479*9682Slinton     {"bicb3", 0x8b, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
480*9682Slinton     {"xorb2", 0x8c, 2, ACCR+TYPB, ACCM+TYPB, 0, 0, 0, 0},
481*9682Slinton     {"xorb3", 0x8d, 3, ACCR+TYPB, ACCR+TYPB, ACCW+TYPB, 0, 0, 0},
482*9682Slinton     {"mnegb", 0x8e, 2, ACCR+TYPB, ACCW+TYPB, 0, 0, 0, 0},
483*9682Slinton     {"caseb", 0x8f, 3, ACCR+TYPB, ACCR+TYPB, ACCR+TYPB, 0, 0, 0},
484*9682Slinton     {"movb", 0x90, 2, ACCR+TYPB, ACCW+TYPB, 0, 0, 0, 0},
485*9682Slinton     {"cmpb", 0x91, 2, ACCR+TYPB, ACCR+TYPB, 0, 0, 0, 0},
486*9682Slinton     {"mcomb", 0x92, 2, ACCR+TYPB, ACCW+TYPB, 0, 0, 0, 0},
487*9682Slinton     {"bitb", 0x93, 2, ACCR+TYPB, ACCR+TYPB, 0, 0, 0, 0},
488*9682Slinton     {"clrb", 0x94, 1, ACCW+TYPB, 0, 0, 0, 0, 0},
489*9682Slinton     {"tstb", 0x95, 1, ACCR+TYPB, 0, 0, 0, 0, 0},
490*9682Slinton     {"incb", 0x96, 1, ACCM+TYPB, 0, 0, 0, 0, 0},
491*9682Slinton     {"decb", 0x97, 1, ACCM+TYPB, 0, 0, 0, 0, 0},
492*9682Slinton     {"cvtbl", 0x98, 2, ACCR+TYPB, ACCW+TYPL, 0, 0, 0, 0},
493*9682Slinton     {"cvtbw", 0x99, 2, ACCR+TYPB, ACCW+TYPW, 0, 0, 0, 0},
494*9682Slinton     {"movzbl", 0x9a, 2, ACCR+TYPB, ACCW+TYPL, 0, 0, 0, 0},
495*9682Slinton     {"movzbw", 0x9b, 2, ACCR+TYPB, ACCW+TYPW, 0, 0, 0, 0},
496*9682Slinton     {"rotl", 0x9c, 3, ACCR+TYPB, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
497*9682Slinton     {"acbb", 0x9d, 4, ACCR+TYPB, ACCR+TYPB, ACCM+TYPB, ACCB+TYPW, 0, 0},
498*9682Slinton     {"movab", 0x9e, 2, ACCA+TYPB, ACCW+TYPL, 0, 0, 0, 0},
499*9682Slinton     {"pushab", 0x9f, 1, ACCA+TYPB, 0, 0, 0, 0, 0},
500*9682Slinton     {"addw2", 0xa0, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
501*9682Slinton     {"addw3", 0xa1, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
502*9682Slinton     {"subw2", 0xa2, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
503*9682Slinton     {"subw3", 0xa3, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
504*9682Slinton     {"mulw2", 0xa4, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
505*9682Slinton     {"mulw3", 0xa5, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
506*9682Slinton     {"divw2", 0xa6, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
507*9682Slinton     {"divw3", 0xa7, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
508*9682Slinton     {"bisw2", 0xa8, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
509*9682Slinton     {"bisw3", 0xa9, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
510*9682Slinton     {"bicw2", 0xaa, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
511*9682Slinton     {"bicw3", 0xab, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
512*9682Slinton     {"xorw2", 0xac, 2, ACCR+TYPW, ACCM+TYPW, 0, 0, 0, 0},
513*9682Slinton     {"xorw3", 0xad, 3, ACCR+TYPW, ACCR+TYPW, ACCW+TYPW, 0, 0, 0},
514*9682Slinton     {"mnegw", 0xae, 2, ACCR+TYPW, ACCW+TYPL, 0, 0, 0, 0},
515*9682Slinton     {"casew", 0xaf, 3, ACCR+TYPW, ACCR+TYPW, ACCR+TYPW, 0, 0, 0},
516*9682Slinton     {"movw", 0xb0, 2, ACCR+TYPW, ACCW+TYPW, 0, 0, 0, 0},
517*9682Slinton     {"cmpw", 0xb1, 2, ACCR+TYPW, ACCR+TYPW, 0, 0, 0, 0},
518*9682Slinton     {"mcomw", 0xb2, 2, ACCR+TYPW, ACCW+TYPW, 0, 0, 0, 0},
519*9682Slinton     {"bitw", 0xb3, 2, ACCR+TYPW, ACCR+TYPW, 0, 0, 0, 0},
520*9682Slinton     {"clrw", 0xb4, 1, ACCW+TYPW, 0, 0, 0, 0, 0},
521*9682Slinton     {"tstw", 0xb5, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
522*9682Slinton     {"incw", 0xb6, 1, ACCM+TYPW, 0, 0, 0, 0, 0},
523*9682Slinton     {"decw", 0xb7, 1, ACCM+TYPW, 0, 0, 0, 0, 0},
524*9682Slinton     {"bispsw", 0xb8, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
525*9682Slinton     {"bicpsw", 0xb9, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
526*9682Slinton     {"popr", 0xba, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
527*9682Slinton     {"pushr", 0xbb, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
528*9682Slinton     {"chmk", 0xbc, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
529*9682Slinton     {"chme", 0xbd, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
530*9682Slinton     {"chms", 0xbe, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
531*9682Slinton     {"chmu", 0xbf, 1, ACCR+TYPW, 0, 0, 0, 0, 0},
532*9682Slinton     {"addl2", 0xc0, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
533*9682Slinton     {"addl3", 0xc1, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
534*9682Slinton     {"subl2", 0xc2, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
535*9682Slinton     {"subl3", 0xc3, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
536*9682Slinton     {"mull2", 0xc4, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
537*9682Slinton     {"mull3", 0xc5, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
538*9682Slinton     {"divl2", 0xc6, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
539*9682Slinton     {"divl3", 0xc7, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
540*9682Slinton     {"bisl2", 0xc8, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
541*9682Slinton     {"bisl3", 0xc9, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
542*9682Slinton     {"bicl2", 0xca, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
543*9682Slinton     {"bicl3", 0xcb, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
544*9682Slinton     {"xorl2", 0xcc, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
545*9682Slinton     {"xorl3", 0xcd, 3, ACCR+TYPL, ACCR+TYPL, ACCW+TYPL, 0, 0, 0},
546*9682Slinton     {"mnegl", 0xce, 2, ACCR+TYPL, ACCW+TYPL, 0, 0, 0, 0},
547*9682Slinton     {"casel", 0xcf, 3, ACCR+TYPL, ACCR+TYPL, ACCR+TYPL, 0, 0, 0},
548*9682Slinton     {"movl", 0xd0, 2, ACCR+TYPL, ACCW+TYPL, 0, 0, 0, 0},
549*9682Slinton     {"cmpl", 0xd1, 2, ACCR+TYPL, ACCR+TYPL, 0, 0, 0, 0},
550*9682Slinton     {"mcoml", 0xd2, 2, ACCR+TYPL, ACCW+TYPL, 0, 0, 0, 0},
551*9682Slinton     {"bitl", 0xd3, 2, ACCR+TYPL, ACCR+TYPL, 0, 0, 0, 0},
552*9682Slinton     {"clrl", 0xd4, 1, ACCW+TYPL, 0, 0, 0, 0, 0},
553*9682Slinton     {"tstl", 0xd5, 1, ACCR+TYPL, 0, 0, 0, 0, 0},
554*9682Slinton     {"incl", 0xd6, 1, ACCM+TYPL, 0, 0, 0, 0, 0},
555*9682Slinton     {"decl", 0xd7, 1, ACCM+TYPL, 0, 0, 0, 0, 0},
556*9682Slinton     {"adwc", 0xd8, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
557*9682Slinton     {"sbwc", 0xd9, 2, ACCR+TYPL, ACCM+TYPL, 0, 0, 0, 0},
558*9682Slinton     {"mtpr", 0xda, 2, ACCR+TYPL, ACCR+TYPL, 0, 0, 0, 0},
559*9682Slinton     {"mfpr", 0xdb, 2, ACCR+TYPL, ACCW+TYPL, 0, 0, 0, 0},
560*9682Slinton     {"movpsl", 0xdc, 1, ACCW+TYPL, 0, 0, 0, 0, 0},
561*9682Slinton     {"pushl", 0xdd, 1, ACCR+TYPL, 0, 0, 0, 0, 0},
562*9682Slinton     {"moval", 0xde, 2, ACCA+TYPL, ACCW+TYPL, 0, 0, 0, 0},
563*9682Slinton     {"pushal", 0xdf, 1, ACCA+TYPL, 0, 0, 0, 0, 0},
564*9682Slinton     {"bbs", 0xe0, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
565*9682Slinton     {"bbc", 0xe1, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
566*9682Slinton     {"bbss", 0xe2, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
567*9682Slinton     {"bbcs", 0xe3, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
568*9682Slinton     {"bbsc", 0xe4, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
569*9682Slinton     {"bbcc", 0xe5, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
570*9682Slinton     {"bbssi", 0xe6, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
571*9682Slinton     {"bbcci", 0xe7, 3, ACCR+TYPL, ACCR+TYPB, ACCB+TYPB, 0, 0, 0},
572*9682Slinton     {"blbs", 0xe8, 2, ACCR+TYPL, ACCB+TYPB, 0, 0, 0, 0},
573*9682Slinton     {"blbc", 0xe9, 2, ACCR+TYPL, ACCB+TYPB, 0, 0, 0, 0},
574*9682Slinton     {"ffs", 0xea, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCW+TYPL, 0, 0},
575*9682Slinton     {"ffc", 0xeb, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCW+TYPL, 0, 0},
576*9682Slinton     {"cmpv", 0xec, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCR+TYPL, 0, 0},
577*9682Slinton     {"cmpzv", 0xed, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCR+TYPL, 0, 0},
578*9682Slinton     {"extv", 0xee, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCW+TYPL, 0, 0},
579*9682Slinton     {"extzv", 0xef, 4, ACCR+TYPL, ACCR+TYPB, ACCR+TYPB, ACCW+TYPL, 0, 0},
580*9682Slinton     {"insv", 0xf0, 4, ACCR+TYPL, ACCR+TYPL, ACCR+TYPB, ACCW+TYPB, 0, 0},
581*9682Slinton     {"acbl", 0xf1, 4, ACCR+TYPL, ACCR+TYPL, ACCM+TYPL, ACCB+TYPW, 0, 0},
582*9682Slinton     {"aoblss", 0xf2, 3, ACCR+TYPL, ACCM+TYPL, ACCB+TYPB, 0, 0, 0},
583*9682Slinton     {"aobleq", 0xf3, 3, ACCR+TYPL, ACCM+TYPL, ACCB+TYPB, 0, 0, 0},
584*9682Slinton     {"sobgeq", 0xf4, 2, ACCM+TYPL, ACCB+TYPB, 0, 0, 0, 0},
585*9682Slinton     {"sobgtr", 0xf5, 2, ACCM+TYPL, ACCB+TYPB, 0, 0, 0, 0},
586*9682Slinton     {"cvtlb", 0xf6, 2, ACCR+TYPL, ACCW+TYPB, 0, 0, 0, 0},
587*9682Slinton     {"cvtlw", 0xf7, 2, ACCR+TYPL, ACCW+TYPW, 0, 0, 0, 0},
588*9682Slinton     {"ashp", 0xf8, 6, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB, ACCR+TYPB, ACCR+TYPW, ACCA+TYPB},
589*9682Slinton     {"cvtlp", 0xf9, 3, ACCR+TYPL, ACCR+TYPW, ACCA+TYPB, 0, 0, 0},
590*9682Slinton     {"callg", 0xfa, 2, ACCA+TYPB, ACCA+TYPB, 0, 0, 0, 0},
591*9682Slinton     {"calls", 0xfb, 2, ACCR+TYPL, ACCA+TYPB, 0, 0, 0, 0},
592*9682Slinton     {"xfc", 0xfc, 1, ACCI+TYPB, 0, 0, 0, 0, 0},
593*9682Slinton     {"escd", 0xfd, 0, 0, 0, 0, 0, 0, 0},
594*9682Slinton     {"esce", 0xfe, 0, 0, 0, 0, 0, 0, 0},
595*9682Slinton     {"escf", 0xff, 0, 0, 0, 0, 0, 0, 0},
596*9682Slinton };
597*9682Slinton 
598*9682Slinton /*
599*9682Slinton  * Register names.
600*9682Slinton  */
601*9682Slinton 
602*9682Slinton public String regname[] = {
603*9682Slinton     "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
604*9682Slinton     "r8", "r9", "r10","r11","ap", "fp", "sp", "pc"
605*9682Slinton };
606*9682Slinton 
607*9682Slinton /*
608*9682Slinton  * Floating point immediate operands.
609*9682Slinton  */
610*9682Slinton 
611*9682Slinton public String fltimm[] = {
612*9682Slinton     "0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375",
613*9682Slinton     "1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875",
614*9682Slinton     "2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75",
615*9682Slinton     "4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5",
616*9682Slinton     "8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0",
617*9682Slinton     "16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0",
618*9682Slinton     "32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0",
619*9682Slinton     "64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0"
620*9682Slinton };
621