Annotation of 43BSD/ucb/dbx/ops.c, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.