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