1*9682Slinton /* Copyright (c) 1982 Regents of the University of California */ 2*9682Slinton 3*9682Slinton static char sccsid[] = "@(#)@(#)ops.vax.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