MC68060.java
     1: //========================================================================================
     2: //  MC68060.java
     3: //    en:MC68060 core
     4: //    ja:MC68060コア
     5: //  Copyright (C) 2003-2017 Makoto Kamada
     6: //
     7: //  This file is part of the XEiJ (X68000 Emulator in Java).
     8: //  You can use, modify and redistribute the XEiJ if the conditions are met.
     9: //  Read the XEiJ License for more details.
    10: //  http://stdkmd.com/xeij/
    11: //========================================================================================
    12: 
    13: package xeij;
    14: 
    15: import java.lang.*;  //Boolean,Character,Class,Comparable,Double,Exception,Float,IllegalArgumentException,Integer,Long,Math,Number,Object,Runnable,SecurityException,String,StringBuilder,System
    16: import java.util.*;  //ArrayList,Arrays,Calendar,GregorianCalendar,HashMap,Map,Map.Entry,Timer,TimerTask,TreeMap
    17: 
    18: public class MC68060 {
    19: 
    20:   public static void mpuCore () {
    21: 
    22:     //コアメーター計測開始
    23:     long nanoStart = System.nanoTime ();
    24: 
    25:     XEiJ.busSuper (RP5C15.rtcFirst, 0x00e8a000, 0x00e8c000);  //RTC RTC
    26:     //XEiJ.busSuperMap[0x00e8a000 >>> XEiJ.BUS_PAGE_BITS] = RP5C15.rtcFirst;
    27: 
    28:     if (Profiling.PFF_ON) {
    29:       if (Profiling.pffStage == Profiling.PFF_STAGE_START) {
    30:         Profiling.pffClear ();
    31:       } else if (Profiling.pffStage == Profiling.PFF_STAGE_STOP) {
    32:         Profiling.pffReport ();
    33:       }
    34:     }
    35: 
    36:     //例外ループ
    37:     //  別のメソッドで検出された例外を命令ループの外側でcatchすることで命令ループを高速化する
    38:   errorLoop:
    39:     while (XEiJ.mpuClockTime < XEiJ.mpuClockLimit) {
    40:       try {
    41:         //命令ループ
    42:         while (XEiJ.mpuClockTime < XEiJ.mpuClockLimit) {
    43:           int t;
    44:           //命令を実行する
    45:           M68kException.m6eIncremented = 0L;  //アドレスレジスタの増分
    46:           XEiJ.mpuTraceFlag = XEiJ.regSRT1;  //命令実行前のsrT1
    47:           XEiJ.mpuCycleCount = 0;  //第1オペコードからROMのアクセスウエイトを有効にする。命令のサイクル数はすべてXEiJ.mpuCycleCount+=~で加えること
    48:           XEiJ.regPC0 = t = XEiJ.regPC;  //命令の先頭アドレス
    49:           XEiJ.regPC = t + 2;
    50:           //XEiJ.regOC = mmuReadWordZeroOpword (t, XEiJ.regSRS);  //第1オペコード。必ずゼロ拡張すること。pcに奇数が入っていることはないのでアドレスエラーのチェックを省略する
    51:           if (XEiJ.regSRS != 0) {  //スーパーバイザモード
    52:             M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_OPWORD | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | M68kException.M6E_FSLW_TM_SUPER_CODE;
    53:             t = mmuTranslateReadSuperCode (t);
    54:             XEiJ.regOC = (InstructionBreakPoint.IBP_ON ? InstructionBreakPoint.ibpOp1SuperMap : DataBreakPoint.DBP_ON ? DataBreakPoint.dbpSuperMap : XEiJ.busSuperMap)[t >>> XEiJ.BUS_PAGE_BITS].mmdRwz (t);
    55:           } else {  //ユーザモード
    56:             M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_OPWORD | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | M68kException.M6E_FSLW_TM_USER_CODE;
    57:             t = mmuTranslateReadUserCode (t);
    58:             XEiJ.regOC = (InstructionBreakPoint.IBP_ON ? InstructionBreakPoint.ibpOp1UserMap : DataBreakPoint.DBP_ON ? DataBreakPoint.dbpUserMap : XEiJ.busUserMap)[t >>> XEiJ.BUS_PAGE_BITS].mmdRwz (t);
    59:           }
    60: 
    61:           //命令の処理
    62:           //  第1オペコードの上位10ビットで分岐する
    63:         irpSwitch:
    64:           switch (XEiJ.regOC >>> 6) {  //第1オペコードの上位10ビット。XEiJ.regOCはゼロ拡張されているので0b1111_111_111&を省略
    65: 
    66:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    67:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
    68:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
    69:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    70:             //ORI.B #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_000_mmm_rrr-{data}
    71:             //OR.B #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_000_mmm_rrr-{data}  [ORI.B #<data>,<ea>]
    72:             //ORI.B #<data>,CCR                               |-|012346|-|*****|*****|          |0000_000_000_111_100-{data}
    73:           case 0b0000_000_000:
    74:             irpOriByte ();
    75:             break irpSwitch;
    76: 
    77:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    78:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
    79:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
    80:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    81:             //ORI.W #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_001_mmm_rrr-{data}
    82:             //OR.W #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_001_mmm_rrr-{data}  [ORI.W #<data>,<ea>]
    83:             //ORI.W #<data>,SR                                |-|012346|P|*****|*****|          |0000_000_001_111_100-{data}
    84:           case 0b0000_000_001:
    85:             irpOriWord ();
    86:             break irpSwitch;
    87: 
    88:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    89:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
    90:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
    91:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    92:             //ORI.L #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_010_mmm_rrr-{data}
    93:             //OR.L #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_010_mmm_rrr-{data}  [ORI.L #<data>,<ea>]
    94:           case 0b0000_000_010:
    95:             irpOriLong ();
    96:             break irpSwitch;
    97: 
    98:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
    99:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   100:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   101:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   102:             //BITREV.L Dr                                     |-|------|-|-----|-----|D         |0000_000_011_000_rrr (ISA_C)
   103:             //CMP2.B <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_000_011_mmm_rrr-rnnn000000000000
   104:             //CHK2.B <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_000_011_mmm_rrr-rnnn100000000000
   105:           case 0b0000_000_011:
   106:             irpCmp2Chk2Byte ();
   107:             break irpSwitch;
   108: 
   109:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   110:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   111:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   112:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   113:             //BTST.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_100_000_rrr
   114:             //MOVEP.W (d16,Ar),Dq                             |-|01234S|-|-----|-----|          |0000_qqq_100_001_rrr-{data}
   115:             //BTST.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZPI|0000_qqq_100_mmm_rrr
   116:           case 0b0000_000_100:
   117:           case 0b0000_001_100:
   118:           case 0b0000_010_100:
   119:           case 0b0000_011_100:
   120:           case 0b0000_100_100:
   121:           case 0b0000_101_100:
   122:           case 0b0000_110_100:
   123:           case 0b0000_111_100:
   124:             irpBtstReg ();
   125:             break irpSwitch;
   126: 
   127:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   128:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   129:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   130:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   131:             //BCHG.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_101_000_rrr
   132:             //MOVEP.L (d16,Ar),Dq                             |-|01234S|-|-----|-----|          |0000_qqq_101_001_rrr-{data}
   133:             //BCHG.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_101_mmm_rrr
   134:           case 0b0000_000_101:
   135:           case 0b0000_001_101:
   136:           case 0b0000_010_101:
   137:           case 0b0000_011_101:
   138:           case 0b0000_100_101:
   139:           case 0b0000_101_101:
   140:           case 0b0000_110_101:
   141:           case 0b0000_111_101:
   142:             irpBchgReg ();
   143:             break irpSwitch;
   144: 
   145:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   146:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   147:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   148:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   149:             //BCLR.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_110_000_rrr
   150:             //MOVEP.W Dq,(d16,Ar)                             |-|01234S|-|-----|-----|          |0000_qqq_110_001_rrr-{data}
   151:             //BCLR.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_110_mmm_rrr
   152:           case 0b0000_000_110:
   153:           case 0b0000_001_110:
   154:           case 0b0000_010_110:
   155:           case 0b0000_011_110:
   156:           case 0b0000_100_110:
   157:           case 0b0000_101_110:
   158:           case 0b0000_110_110:
   159:           case 0b0000_111_110:
   160:             irpBclrReg ();
   161:             break irpSwitch;
   162: 
   163:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   164:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   165:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   166:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   167:             //BSET.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_111_000_rrr
   168:             //MOVEP.L Dq,(d16,Ar)                             |-|01234S|-|-----|-----|          |0000_qqq_111_001_rrr-{data}
   169:             //BSET.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_111_mmm_rrr
   170:           case 0b0000_000_111:
   171:           case 0b0000_001_111:
   172:           case 0b0000_010_111:
   173:           case 0b0000_011_111:
   174:           case 0b0000_100_111:
   175:           case 0b0000_101_111:
   176:           case 0b0000_110_111:
   177:           case 0b0000_111_111:
   178:             irpBsetReg ();
   179:             break irpSwitch;
   180: 
   181:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   182:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   183:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   184:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   185:             //ANDI.B #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_000_mmm_rrr-{data}
   186:             //AND.B #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_000_mmm_rrr-{data}  [ANDI.B #<data>,<ea>]
   187:             //ANDI.B #<data>,CCR                              |-|012346|-|*****|*****|          |0000_001_000_111_100-{data}
   188:           case 0b0000_001_000:
   189:             irpAndiByte ();
   190:             break irpSwitch;
   191: 
   192:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   193:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   194:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   195:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   196:             //ANDI.W #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_001_mmm_rrr-{data}
   197:             //AND.W #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_001_mmm_rrr-{data}  [ANDI.W #<data>,<ea>]
   198:             //ANDI.W #<data>,SR                               |-|012346|P|*****|*****|          |0000_001_001_111_100-{data}
   199:           case 0b0000_001_001:
   200:             irpAndiWord ();
   201:             break irpSwitch;
   202: 
   203:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   204:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   205:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   206:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   207:             //ANDI.L #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_010_mmm_rrr-{data}
   208:             //AND.L #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_010_mmm_rrr-{data}  [ANDI.L #<data>,<ea>]
   209:           case 0b0000_001_010:
   210:             irpAndiLong ();
   211:             break irpSwitch;
   212: 
   213:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   214:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   215:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   216:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   217:             //BYTEREV.L Dr                                    |-|------|-|-----|-----|D         |0000_001_011_000_rrr (ISA_C)
   218:             //CMP2.W <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_001_011_mmm_rrr-rnnn000000000000
   219:             //CHK2.W <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_001_011_mmm_rrr-rnnn100000000000
   220:           case 0b0000_001_011:
   221:             irpCmp2Chk2Word ();
   222:             break irpSwitch;
   223: 
   224:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   225:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   226:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   227:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   228:             //SUBI.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_000_mmm_rrr-{data}
   229:             //SUB.B #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_000_mmm_rrr-{data}  [SUBI.B #<data>,<ea>]
   230:           case 0b0000_010_000:
   231:             irpSubiByte ();
   232:             break irpSwitch;
   233: 
   234:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   235:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   236:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   237:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   238:             //SUBI.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_001_mmm_rrr-{data}
   239:             //SUB.W #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_001_mmm_rrr-{data}  [SUBI.W #<data>,<ea>]
   240:           case 0b0000_010_001:
   241:             irpSubiWord ();
   242:             break irpSwitch;
   243: 
   244:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   245:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   246:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   247:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   248:             //SUBI.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_010_mmm_rrr-{data}
   249:             //SUB.L #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_010_mmm_rrr-{data}  [SUBI.L #<data>,<ea>]
   250:           case 0b0000_010_010:
   251:             irpSubiLong ();
   252:             break irpSwitch;
   253: 
   254:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   255:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   256:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   257:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   258:             //FF1.L Dr                                        |-|------|-|-UUUU|-**00|D         |0000_010_011_000_rrr (ISA_C)
   259:             //CMP2.L <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_010_011_mmm_rrr-rnnn000000000000
   260:             //CHK2.L <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_010_011_mmm_rrr-rnnn100000000000
   261:           case 0b0000_010_011:
   262:             irpCmp2Chk2Long ();
   263:             break irpSwitch;
   264: 
   265:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   266:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   267:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   268:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   269:             //ADDI.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_000_mmm_rrr-{data}
   270:           case 0b0000_011_000:
   271:             irpAddiByte ();
   272:             break irpSwitch;
   273: 
   274:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   275:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   276:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   277:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   278:             //ADDI.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_001_mmm_rrr-{data}
   279:           case 0b0000_011_001:
   280:             irpAddiWord ();
   281:             break irpSwitch;
   282: 
   283:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   284:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   285:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   286:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   287:             //ADDI.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_010_mmm_rrr-{data}
   288:           case 0b0000_011_010:
   289:             irpAddiLong ();
   290:             break irpSwitch;
   291: 
   292:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   293:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   294:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   295:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   296:             //BTST.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_000_000_rrr-{data}
   297:             //BTST.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZP |0000_100_000_mmm_rrr-{data}
   298:           case 0b0000_100_000:
   299:             irpBtstImm ();
   300:             break irpSwitch;
   301: 
   302:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   303:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   304:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   305:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   306:             //BCHG.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_001_000_rrr-{data}
   307:             //BCHG.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_001_mmm_rrr-{data}
   308:           case 0b0000_100_001:
   309:             irpBchgImm ();
   310:             break irpSwitch;
   311: 
   312:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   313:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   314:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   315:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   316:             //BCLR.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_010_000_rrr-{data}
   317:             //BCLR.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_010_mmm_rrr-{data}
   318:           case 0b0000_100_010:
   319:             irpBclrImm ();
   320:             break irpSwitch;
   321: 
   322:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   323:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   324:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   325:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   326:             //BSET.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_011_000_rrr-{data}
   327:             //BSET.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_011_mmm_rrr-{data}
   328:           case 0b0000_100_011:
   329:             irpBsetImm ();
   330:             break irpSwitch;
   331: 
   332:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   333:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   334:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   335:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   336:             //EORI.B #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_000_mmm_rrr-{data}
   337:             //EOR.B #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_000_mmm_rrr-{data}  [EORI.B #<data>,<ea>]
   338:             //EORI.B #<data>,CCR                              |-|012346|-|*****|*****|          |0000_101_000_111_100-{data}
   339:           case 0b0000_101_000:
   340:             irpEoriByte ();
   341:             break irpSwitch;
   342: 
   343:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   344:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   345:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   346:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   347:             //EORI.W #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_001_mmm_rrr-{data}
   348:             //EOR.W #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_001_mmm_rrr-{data}  [EORI.W #<data>,<ea>]
   349:             //EORI.W #<data>,SR                               |-|012346|P|*****|*****|          |0000_101_001_111_100-{data}
   350:           case 0b0000_101_001:
   351:             irpEoriWord ();
   352:             break irpSwitch;
   353: 
   354:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   355:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   356:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   357:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   358:             //EORI.L #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_010_mmm_rrr-{data}
   359:             //EOR.L #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_010_mmm_rrr-{data}  [EORI.L #<data>,<ea>]
   360:           case 0b0000_101_010:
   361:             irpEoriLong ();
   362:             break irpSwitch;
   363: 
   364:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   365:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   366:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   367:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   368:             //CAS.B Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_101_011_mmm_rrr-0000000uuu000ccc
   369:           case 0b0000_101_011:
   370:             irpCasByte ();
   371:             break irpSwitch;
   372: 
   373:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   374:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   375:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   376:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   377:             //CMPI.B #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_000_mmm_rrr-{data}
   378:             //CMP.B #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_000_mmm_rrr-{data}  [CMPI.B #<data>,<ea>]
   379:           case 0b0000_110_000:
   380:             irpCmpiByte ();
   381:             break irpSwitch;
   382: 
   383:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   384:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   385:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   386:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   387:             //CMPI.W #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_001_mmm_rrr-{data}
   388:             //CMP.W #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_001_mmm_rrr-{data}  [CMPI.W #<data>,<ea>]
   389:           case 0b0000_110_001:
   390:             irpCmpiWord ();
   391:             break irpSwitch;
   392: 
   393:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   394:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   395:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   396:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   397:             //CMPI.L #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_010_mmm_rrr-{data}
   398:             //CMP.L #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_010_mmm_rrr-{data}  [CMPI.L #<data>,<ea>]
   399:           case 0b0000_110_010:
   400:             irpCmpiLong ();
   401:             break irpSwitch;
   402: 
   403:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   404:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   405:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   406:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   407:             //CAS.W Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_110_011_mmm_rrr-0000000uuu000ccc        (68060 software emulate misaligned <ea>)
   408:             //CAS2.W Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)              |-|--234S|-|-UUUU|-****|          |0000_110_011_111_100-rnnn000uuu000ccc(1)-rnnn_000_uuu_000_ccc(2)
   409:           case 0b0000_110_011:
   410:             irpCasWord ();
   411:             break irpSwitch;
   412: 
   413:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   414:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   415:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   416:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   417:             //MOVES.B <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_000_mmm_rrr-rnnn000000000000
   418:             //MOVES.B Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_000_mmm_rrr-rnnn100000000000
   419:           case 0b0000_111_000:
   420:             irpMovesByte ();
   421:             break irpSwitch;
   422: 
   423:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   424:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   425:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   426:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   427:             //MOVES.W <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_001_mmm_rrr-rnnn000000000000
   428:             //MOVES.W Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_001_mmm_rrr-rnnn100000000000
   429:           case 0b0000_111_001:
   430:             irpMovesWord ();
   431:             break irpSwitch;
   432: 
   433:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   434:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   435:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   436:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   437:             //MOVES.L <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_010_mmm_rrr-rnnn000000000000
   438:             //MOVES.L Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_010_mmm_rrr-rnnn100000000000
   439:           case 0b0000_111_010:
   440:             irpMovesLong ();
   441:             break irpSwitch;
   442: 
   443:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   444:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   445:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   446:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   447:             //CAS.L Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_111_011_mmm_rrr-0000000uuu000ccc        (68060 software emulate misaligned <ea>)
   448:             //CAS2.L Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)              |-|--234S|-|-UUUU|-****|          |0000_111_011_111_100-rnnn000uuu000ccc(1)-rnnn_000_uuu_000_ccc(2)
   449:           case 0b0000_111_011:
   450:             irpCasLong ();
   451:             break irpSwitch;
   452: 
   453:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   454:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   455:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   456:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   457:             //MOVE.B <ea>,Dq                                  |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_000_mmm_rrr
   458:           case 0b0001_000_000:
   459:           case 0b0001_001_000:
   460:           case 0b0001_010_000:
   461:           case 0b0001_011_000:
   462:           case 0b0001_100_000:
   463:           case 0b0001_101_000:
   464:           case 0b0001_110_000:
   465:           case 0b0001_111_000:
   466:             irpMoveToDRByte ();
   467:             break irpSwitch;
   468: 
   469:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   470:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   471:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   472:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   473:             //MOVE.B <ea>,(Aq)                                |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_010_mmm_rrr
   474:           case 0b0001_000_010:
   475:           case 0b0001_001_010:
   476:           case 0b0001_010_010:
   477:           case 0b0001_011_010:
   478:           case 0b0001_100_010:
   479:           case 0b0001_101_010:
   480:           case 0b0001_110_010:
   481:           case 0b0001_111_010:
   482:             irpMoveToMMByte ();
   483:             break irpSwitch;
   484: 
   485:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   486:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   487:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   488:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   489:             //MOVE.B <ea>,(Aq)+                               |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_011_mmm_rrr
   490:           case 0b0001_000_011:
   491:           case 0b0001_001_011:
   492:           case 0b0001_010_011:
   493:           case 0b0001_011_011:
   494:           case 0b0001_100_011:
   495:           case 0b0001_101_011:
   496:           case 0b0001_110_011:
   497:           case 0b0001_111_011:
   498:             irpMoveToMPByte ();
   499:             break irpSwitch;
   500: 
   501:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   502:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   503:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   504:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   505:             //MOVE.B <ea>,-(Aq)                               |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_100_mmm_rrr
   506:           case 0b0001_000_100:
   507:           case 0b0001_001_100:
   508:           case 0b0001_010_100:
   509:           case 0b0001_011_100:
   510:           case 0b0001_100_100:
   511:           case 0b0001_101_100:
   512:           case 0b0001_110_100:
   513:           case 0b0001_111_100:
   514:             irpMoveToMNByte ();
   515:             break irpSwitch;
   516: 
   517:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   518:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   519:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   520:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   521:             //MOVE.B <ea>,(d16,Aq)                            |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_101_mmm_rrr
   522:           case 0b0001_000_101:
   523:           case 0b0001_001_101:
   524:           case 0b0001_010_101:
   525:           case 0b0001_011_101:
   526:           case 0b0001_100_101:
   527:           case 0b0001_101_101:
   528:           case 0b0001_110_101:
   529:           case 0b0001_111_101:
   530:             irpMoveToMWByte ();
   531:             break irpSwitch;
   532: 
   533:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   534:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   535:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   536:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   537:             //MOVE.B <ea>,(d8,Aq,Rn.wl)                       |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_110_mmm_rrr
   538:           case 0b0001_000_110:
   539:           case 0b0001_001_110:
   540:           case 0b0001_010_110:
   541:           case 0b0001_011_110:
   542:           case 0b0001_100_110:
   543:           case 0b0001_101_110:
   544:           case 0b0001_110_110:
   545:           case 0b0001_111_110:
   546:             irpMoveToMXByte ();
   547:             break irpSwitch;
   548: 
   549:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   550:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   551:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   552:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   553:             //MOVE.B <ea>,(xxx).W                             |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_000_111_mmm_rrr
   554:           case 0b0001_000_111:
   555:             irpMoveToZWByte ();
   556:             break irpSwitch;
   557: 
   558:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   559:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   560:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   561:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   562:             //MOVE.B <ea>,(xxx).L                             |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_001_111_mmm_rrr
   563:           case 0b0001_001_111:
   564:             irpMoveToZLByte ();
   565:             break irpSwitch;
   566: 
   567:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   568:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   569:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   570:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   571:             //MOVE.L <ea>,Dq                                  |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_000_mmm_rrr
   572:           case 0b0010_000_000:
   573:           case 0b0010_001_000:
   574:           case 0b0010_010_000:
   575:           case 0b0010_011_000:
   576:           case 0b0010_100_000:
   577:           case 0b0010_101_000:
   578:           case 0b0010_110_000:
   579:           case 0b0010_111_000:
   580:             irpMoveToDRLong ();
   581:             break irpSwitch;
   582: 
   583:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   584:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   585:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   586:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   587:             //MOVEA.L <ea>,Aq                                 |-|012346|-|-----|-----|DAM+-WXZPI|0010_qqq_001_mmm_rrr
   588:             //MOVE.L <ea>,Aq                                  |A|012346|-|-----|-----|DAM+-WXZPI|0010_qqq_001_mmm_rrr [MOVEA.L <ea>,Aq]
   589:           case 0b0010_000_001:
   590:           case 0b0010_001_001:
   591:           case 0b0010_010_001:
   592:           case 0b0010_011_001:
   593:           case 0b0010_100_001:
   594:           case 0b0010_101_001:
   595:           case 0b0010_110_001:
   596:           case 0b0010_111_001:
   597:             irpMoveaLong ();
   598:             break irpSwitch;
   599: 
   600:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   601:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   602:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   603:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   604:             //MOVE.L <ea>,(Aq)                                |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_010_mmm_rrr
   605:           case 0b0010_000_010:
   606:           case 0b0010_001_010:
   607:           case 0b0010_010_010:
   608:           case 0b0010_011_010:
   609:           case 0b0010_100_010:
   610:           case 0b0010_101_010:
   611:           case 0b0010_110_010:
   612:           case 0b0010_111_010:
   613:             irpMoveToMMLong ();
   614:             break irpSwitch;
   615: 
   616:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   617:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   618:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   619:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   620:             //MOVE.L <ea>,(Aq)+                               |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_011_mmm_rrr
   621:           case 0b0010_000_011:
   622:           case 0b0010_001_011:
   623:           case 0b0010_010_011:
   624:           case 0b0010_011_011:
   625:           case 0b0010_100_011:
   626:           case 0b0010_101_011:
   627:           case 0b0010_110_011:
   628:           case 0b0010_111_011:
   629:             irpMoveToMPLong ();
   630:             break irpSwitch;
   631: 
   632:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   633:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   634:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   635:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   636:             //MOVE.L <ea>,-(Aq)                               |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_100_mmm_rrr
   637:           case 0b0010_000_100:
   638:           case 0b0010_001_100:
   639:           case 0b0010_010_100:
   640:           case 0b0010_011_100:
   641:           case 0b0010_100_100:
   642:           case 0b0010_101_100:
   643:           case 0b0010_110_100:
   644:           case 0b0010_111_100:
   645:             irpMoveToMNLong ();
   646:             break irpSwitch;
   647: 
   648:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   649:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   650:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   651:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   652:             //MOVE.L <ea>,(d16,Aq)                            |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_101_mmm_rrr
   653:           case 0b0010_000_101:
   654:           case 0b0010_001_101:
   655:           case 0b0010_010_101:
   656:           case 0b0010_011_101:
   657:           case 0b0010_100_101:
   658:           case 0b0010_101_101:
   659:           case 0b0010_110_101:
   660:           case 0b0010_111_101:
   661:             irpMoveToMWLong ();
   662:             break irpSwitch;
   663: 
   664:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   665:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   666:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   667:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   668:             //MOVE.L <ea>,(d8,Aq,Rn.wl)                       |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_110_mmm_rrr
   669:           case 0b0010_000_110:
   670:           case 0b0010_001_110:
   671:           case 0b0010_010_110:
   672:           case 0b0010_011_110:
   673:           case 0b0010_100_110:
   674:           case 0b0010_101_110:
   675:           case 0b0010_110_110:
   676:           case 0b0010_111_110:
   677:             irpMoveToMXLong ();
   678:             break irpSwitch;
   679: 
   680:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   681:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   682:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   683:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   684:             //MOVE.L <ea>,(xxx).W                             |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_000_111_mmm_rrr
   685:           case 0b0010_000_111:
   686:             irpMoveToZWLong ();
   687:             break irpSwitch;
   688: 
   689:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   690:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   691:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   692:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   693:             //MOVE.L <ea>,(xxx).L                             |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0010_001_111_mmm_rrr
   694:           case 0b0010_001_111:
   695:             irpMoveToZLLong ();
   696:             break irpSwitch;
   697: 
   698:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   699:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   700:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   701:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   702:             //MOVE.W <ea>,Dq                                  |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_000_mmm_rrr
   703:           case 0b0011_000_000:
   704:           case 0b0011_001_000:
   705:           case 0b0011_010_000:
   706:           case 0b0011_011_000:
   707:           case 0b0011_100_000:
   708:           case 0b0011_101_000:
   709:           case 0b0011_110_000:
   710:           case 0b0011_111_000:
   711:             irpMoveToDRWord ();
   712:             break irpSwitch;
   713: 
   714:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   715:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   716:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   717:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   718:             //MOVEA.W <ea>,Aq                                 |-|012346|-|-----|-----|DAM+-WXZPI|0011_qqq_001_mmm_rrr
   719:             //MOVE.W <ea>,Aq                                  |A|012346|-|-----|-----|DAM+-WXZPI|0011_qqq_001_mmm_rrr [MOVEA.W <ea>,Aq]
   720:           case 0b0011_000_001:
   721:           case 0b0011_001_001:
   722:           case 0b0011_010_001:
   723:           case 0b0011_011_001:
   724:           case 0b0011_100_001:
   725:           case 0b0011_101_001:
   726:           case 0b0011_110_001:
   727:           case 0b0011_111_001:
   728:             irpMoveaWord ();
   729:             break irpSwitch;
   730: 
   731:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   732:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   733:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   734:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   735:             //MOVE.W <ea>,(Aq)                                |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_010_mmm_rrr
   736:           case 0b0011_000_010:
   737:           case 0b0011_001_010:
   738:           case 0b0011_010_010:
   739:           case 0b0011_011_010:
   740:           case 0b0011_100_010:
   741:           case 0b0011_101_010:
   742:           case 0b0011_110_010:
   743:           case 0b0011_111_010:
   744:             irpMoveToMMWord ();
   745:             break irpSwitch;
   746: 
   747:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   748:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   749:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   750:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   751:             //MOVE.W <ea>,(Aq)+                               |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_011_mmm_rrr
   752:           case 0b0011_000_011:
   753:           case 0b0011_001_011:
   754:           case 0b0011_010_011:
   755:           case 0b0011_011_011:
   756:           case 0b0011_100_011:
   757:           case 0b0011_101_011:
   758:           case 0b0011_110_011:
   759:           case 0b0011_111_011:
   760:             irpMoveToMPWord ();
   761:             break irpSwitch;
   762: 
   763:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   764:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   765:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   766:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   767:             //MOVE.W <ea>,-(Aq)                               |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_100_mmm_rrr
   768:           case 0b0011_000_100:
   769:           case 0b0011_001_100:
   770:           case 0b0011_010_100:
   771:           case 0b0011_011_100:
   772:           case 0b0011_100_100:
   773:           case 0b0011_101_100:
   774:           case 0b0011_110_100:
   775:           case 0b0011_111_100:
   776:             irpMoveToMNWord ();
   777:             break irpSwitch;
   778: 
   779:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   780:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   781:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   782:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   783:             //MOVE.W <ea>,(d16,Aq)                            |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_101_mmm_rrr
   784:           case 0b0011_000_101:
   785:           case 0b0011_001_101:
   786:           case 0b0011_010_101:
   787:           case 0b0011_011_101:
   788:           case 0b0011_100_101:
   789:           case 0b0011_101_101:
   790:           case 0b0011_110_101:
   791:           case 0b0011_111_101:
   792:             irpMoveToMWWord ();
   793:             break irpSwitch;
   794: 
   795:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   796:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   797:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   798:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   799:             //MOVE.W <ea>,(d8,Aq,Rn.wl)                       |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_110_mmm_rrr
   800:           case 0b0011_000_110:
   801:           case 0b0011_001_110:
   802:           case 0b0011_010_110:
   803:           case 0b0011_011_110:
   804:           case 0b0011_100_110:
   805:           case 0b0011_101_110:
   806:           case 0b0011_110_110:
   807:           case 0b0011_111_110:
   808:             irpMoveToMXWord ();
   809:             break irpSwitch;
   810: 
   811:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   812:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   813:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   814:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   815:             //MOVE.W <ea>,(xxx).W                             |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_000_111_mmm_rrr
   816:           case 0b0011_000_111:
   817:             irpMoveToZWWord ();
   818:             break irpSwitch;
   819: 
   820:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   821:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   822:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   823:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   824:             //MOVE.W <ea>,(xxx).L                             |-|012346|-|-UUUU|-**00|DAM+-WXZPI|0011_001_111_mmm_rrr
   825:           case 0b0011_001_111:
   826:             irpMoveToZLWord ();
   827:             break irpSwitch;
   828: 
   829:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   830:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   831:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   832:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   833:             //NEGX.B <ea>                                     |-|012346|-|*UUUU|*****|D M+-WXZ  |0100_000_000_mmm_rrr
   834:           case 0b0100_000_000:
   835:             irpNegxByte ();
   836:             break irpSwitch;
   837: 
   838:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   839:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   840:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   841:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   842:             //NEGX.W <ea>                                     |-|012346|-|*UUUU|*****|D M+-WXZ  |0100_000_001_mmm_rrr
   843:           case 0b0100_000_001:
   844:             irpNegxWord ();
   845:             break irpSwitch;
   846: 
   847:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   848:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   849:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   850:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   851:             //NEGX.L <ea>                                     |-|012346|-|*UUUU|*****|D M+-WXZ  |0100_000_010_mmm_rrr
   852:           case 0b0100_000_010:
   853:             irpNegxLong ();
   854:             break irpSwitch;
   855: 
   856:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   857:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   858:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   859:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   860:             //MOVE.W SR,<ea>                                  |-|-12346|P|*****|-----|D M+-WXZ  |0100_000_011_mmm_rrr
   861:           case 0b0100_000_011:
   862:             irpMoveFromSR ();
   863:             break irpSwitch;
   864: 
   865:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   866:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   867:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   868:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   869:             //CHK.L <ea>,Dq                                   |-|--2346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_100_mmm_rrr
   870:           case 0b0100_000_100:
   871:           case 0b0100_001_100:
   872:           case 0b0100_010_100:
   873:           case 0b0100_011_100:
   874:           case 0b0100_100_100:
   875:           case 0b0100_101_100:
   876:           case 0b0100_110_100:
   877:           case 0b0100_111_100:
   878:             irpChkLong ();
   879:             break irpSwitch;
   880: 
   881:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   882:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   883:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   884:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   885:             //CHK.W <ea>,Dq                                   |-|012346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_110_mmm_rrr
   886:           case 0b0100_000_110:
   887:           case 0b0100_001_110:
   888:           case 0b0100_010_110:
   889:           case 0b0100_011_110:
   890:           case 0b0100_100_110:
   891:           case 0b0100_101_110:
   892:           case 0b0100_110_110:
   893:           case 0b0100_111_110:
   894:             irpChkWord ();
   895:             break irpSwitch;
   896: 
   897:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   898:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   899:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   900:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   901:             //LEA.L <ea>,Aq                                   |-|012346|-|-----|-----|  M  WXZP |0100_qqq_111_mmm_rrr
   902:             //EXTB.L Dr                                       |-|--2346|-|-UUUU|-**00|D         |0100_100_111_000_rrr
   903:           case 0b0100_000_111:
   904:           case 0b0100_001_111:
   905:           case 0b0100_010_111:
   906:           case 0b0100_011_111:
   907:           case 0b0100_100_111:
   908:           case 0b0100_101_111:
   909:           case 0b0100_110_111:
   910:           case 0b0100_111_111:
   911:             irpLea ();
   912:             break irpSwitch;
   913: 
   914:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   915:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   916:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   917:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   918:             //CLR.B <ea>                                      |-|012346|-|-UUUU|-0100|D M+-WXZ  |0100_001_000_mmm_rrr (68000 and 68008 read before clear)
   919:           case 0b0100_001_000:
   920:             irpClrByte ();
   921:             break irpSwitch;
   922: 
   923:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   924:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   925:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   926:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   927:             //CLR.W <ea>                                      |-|012346|-|-UUUU|-0100|D M+-WXZ  |0100_001_001_mmm_rrr (68000 and 68008 read before clear)
   928:           case 0b0100_001_001:
   929:             irpClrWord ();
   930:             break irpSwitch;
   931: 
   932:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   933:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   934:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   935:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   936:             //CLR.L <ea>                                      |-|012346|-|-UUUU|-0100|D M+-WXZ  |0100_001_010_mmm_rrr (68000 and 68008 read before clear)
   937:           case 0b0100_001_010:
   938:             irpClrLong ();
   939:             break irpSwitch;
   940: 
   941:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   942:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   943:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   944:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   945:             //MOVE.W CCR,<ea>                                 |-|-12346|-|*****|-----|D M+-WXZ  |0100_001_011_mmm_rrr
   946:           case 0b0100_001_011:
   947:             irpMoveFromCCR ();
   948:             break irpSwitch;
   949: 
   950:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   951:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   952:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   953:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   954:             //NEG.B <ea>                                      |-|012346|-|UUUUU|*****|D M+-WXZ  |0100_010_000_mmm_rrr
   955:           case 0b0100_010_000:
   956:             irpNegByte ();
   957:             break irpSwitch;
   958: 
   959:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   960:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   961:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   962:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   963:             //NEG.W <ea>                                      |-|012346|-|UUUUU|*****|D M+-WXZ  |0100_010_001_mmm_rrr
   964:           case 0b0100_010_001:
   965:             irpNegWord ();
   966:             break irpSwitch;
   967: 
   968:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   969:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   970:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   971:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   972:             //NEG.L <ea>                                      |-|012346|-|UUUUU|*****|D M+-WXZ  |0100_010_010_mmm_rrr
   973:           case 0b0100_010_010:
   974:             irpNegLong ();
   975:             break irpSwitch;
   976: 
   977:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   978:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   979:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   980:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   981:             //MOVE.W <ea>,CCR                                 |-|012346|-|UUUUU|*****|D M+-WXZPI|0100_010_011_mmm_rrr
   982:           case 0b0100_010_011:
   983:             irpMoveToCCR ();
   984:             break irpSwitch;
   985: 
   986:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   987:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   988:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   989:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   990:             //NOT.B <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_011_000_mmm_rrr
   991:           case 0b0100_011_000:
   992:             irpNotByte ();
   993:             break irpSwitch;
   994: 
   995:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   996:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
   997:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
   998:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
   999:             //NOT.W <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_011_001_mmm_rrr
  1000:           case 0b0100_011_001:
  1001:             irpNotWord ();
  1002:             break irpSwitch;
  1003: 
  1004:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1005:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1006:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1007:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1008:             //NOT.L <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_011_010_mmm_rrr
  1009:           case 0b0100_011_010:
  1010:             irpNotLong ();
  1011:             break irpSwitch;
  1012: 
  1013:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1014:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1015:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1016:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1017:             //MOVE.W <ea>,SR                                  |-|012346|P|UUUUU|*****|D M+-WXZPI|0100_011_011_mmm_rrr
  1018:           case 0b0100_011_011:
  1019:             irpMoveToSR ();
  1020:             break irpSwitch;
  1021: 
  1022:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1023:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1024:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1025:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1026:             //NBCD.B <ea>                                     |-|012346|-|UUUUU|*U*U*|D M+-WXZ  |0100_100_000_mmm_rrr
  1027:             //LINK.L Ar,#<data>                               |-|--2346|-|-----|-----|          |0100_100_000_001_rrr-{data}
  1028:           case 0b0100_100_000:
  1029:             irpNbcd ();
  1030:             break irpSwitch;
  1031: 
  1032:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1033:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1034:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1035:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1036:             //SWAP.W Dr                                       |-|012346|-|-UUUU|-**00|D         |0100_100_001_000_rrr
  1037:             //BKPT #<data>                                    |-|-12346|-|-----|-----|          |0100_100_001_001_ddd
  1038:             //PEA.L <ea>                                      |-|012346|-|-----|-----|  M  WXZP |0100_100_001_mmm_rrr
  1039:           case 0b0100_100_001:
  1040:             irpPea ();
  1041:             break irpSwitch;
  1042: 
  1043:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1044:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1045:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1046:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1047:             //EXT.W Dr                                        |-|012346|-|-UUUU|-**00|D         |0100_100_010_000_rrr
  1048:             //MOVEM.W <list>,<ea>                             |-|012346|-|-----|-----|  M -WXZ  |0100_100_010_mmm_rrr-llllllllllllllll
  1049:           case 0b0100_100_010:
  1050:             irpMovemToMemWord ();
  1051:             break irpSwitch;
  1052: 
  1053:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1054:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1055:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1056:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1057:             //EXT.L Dr                                        |-|012346|-|-UUUU|-**00|D         |0100_100_011_000_rrr
  1058:             //MOVEM.L <list>,<ea>                             |-|012346|-|-----|-----|  M -WXZ  |0100_100_011_mmm_rrr-llllllllllllllll
  1059:           case 0b0100_100_011:
  1060:             irpMovemToMemLong ();
  1061:             break irpSwitch;
  1062: 
  1063:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1064:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1065:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1066:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1067:             //TST.B <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_101_000_mmm_rrr
  1068:             //TST.B <ea>                                      |-|--2346|-|-UUUU|-**00|        PI|0100_101_000_mmm_rrr
  1069:           case 0b0100_101_000:
  1070:             irpTstByte ();
  1071:             break irpSwitch;
  1072: 
  1073:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1074:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1075:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1076:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1077:             //TST.W <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_101_001_mmm_rrr
  1078:             //TST.W <ea>                                      |-|--2346|-|-UUUU|-**00| A      PI|0100_101_001_mmm_rrr
  1079:           case 0b0100_101_001:
  1080:             irpTstWord ();
  1081:             break irpSwitch;
  1082: 
  1083:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1084:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1085:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1086:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1087:             //TST.L <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_101_010_mmm_rrr
  1088:             //TST.L <ea>                                      |-|--2346|-|-UUUU|-**00| A      PI|0100_101_010_mmm_rrr
  1089:           case 0b0100_101_010:
  1090:             irpTstLong ();
  1091:             break irpSwitch;
  1092: 
  1093:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1094:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1095:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1096:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1097:             //TAS.B <ea>                                      |-|012346|-|-UUUU|-**00|D M+-WXZ  |0100_101_011_mmm_rrr
  1098:             //ILLEGAL                                         |-|012346|-|-----|-----|          |0100_101_011_111_100
  1099:           case 0b0100_101_011:
  1100:             irpTas ();
  1101:             break irpSwitch;
  1102: 
  1103:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1104:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1105:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1106:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1107:             //MULU.L <ea>,Dl                                  |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll000000000hhh        (h is not used)
  1108:             //MULU.L <ea>,Dh:Dl                               |-|--234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll010000000hhh        (if h=l then result is not defined)
  1109:             //MULS.L <ea>,Dl                                  |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll100000000hhh        (h is not used)
  1110:             //MULS.L <ea>,Dh:Dl                               |-|--234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll110000000hhh        (if h=l then result is not defined)
  1111:           case 0b0100_110_000:
  1112:             irpMuluMulsLong ();
  1113:             break irpSwitch;
  1114: 
  1115:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1116:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1117:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1118:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1119:             //DIVU.L <ea>,Dq                                  |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq000000000qqq
  1120:             //DIVUL.L <ea>,Dr:Dq                              |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq000000000rrr        (q is not equal to r)
  1121:             //DIVU.L <ea>,Dr:Dq                               |-|--234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq010000000rrr        (q is not equal to r)
  1122:             //DIVS.L <ea>,Dq                                  |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq100000000qqq
  1123:             //DIVSL.L <ea>,Dr:Dq                              |-|--2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq100000000rrr        (q is not equal to r)
  1124:             //DIVS.L <ea>,Dr:Dq                               |-|--234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq110000000rrr        (q is not equal to r)
  1125:           case 0b0100_110_001:
  1126:             irpDivuDivsLong ();
  1127:             break irpSwitch;
  1128: 
  1129:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1130:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1131:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1132:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1133:             //SATS.L Dr                                       |-|------|-|-UUUU|-**00|D         |0100_110_010_000_rrr (ISA_B)
  1134:             //MOVEM.W <ea>,<list>                             |-|012346|-|-----|-----|  M+ WXZP |0100_110_010_mmm_rrr-llllllllllllllll
  1135:           case 0b0100_110_010:
  1136:             irpMovemToRegWord ();
  1137:             break irpSwitch;
  1138: 
  1139:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1140:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1141:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1142:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1143:             //MOVEM.L <ea>,<list>                             |-|012346|-|-----|-----|  M+ WXZP |0100_110_011_mmm_rrr-llllllllllllllll
  1144:           case 0b0100_110_011:
  1145:             irpMovemToRegLong ();
  1146:             break irpSwitch;
  1147: 
  1148:           case 0b0100_111_001:
  1149:             switch (XEiJ.regOC & 0b111_111) {
  1150: 
  1151:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1152:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1153:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1154:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1155:               //TRAP #<vector>                                  |-|012346|-|-----|-----|          |0100_111_001_00v_vvv
  1156:             case 0b000_000:
  1157:             case 0b000_001:
  1158:             case 0b000_010:
  1159:             case 0b000_011:
  1160:             case 0b000_100:
  1161:             case 0b000_101:
  1162:             case 0b000_110:
  1163:             case 0b000_111:
  1164:             case 0b001_000:
  1165:             case 0b001_001:
  1166:             case 0b001_010:
  1167:             case 0b001_011:
  1168:             case 0b001_100:
  1169:             case 0b001_101:
  1170:             case 0b001_110:
  1171:               irpTrap ();
  1172:               break irpSwitch;
  1173:             case 0b001_111:
  1174:               irpTrap15 ();
  1175:               break irpSwitch;
  1176: 
  1177:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1178:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1179:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1180:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1181:               //LINK.W Ar,#<data>                               |-|012346|-|-----|-----|          |0100_111_001_010_rrr-{data}
  1182:             case 0b010_000:
  1183:             case 0b010_001:
  1184:             case 0b010_010:
  1185:             case 0b010_011:
  1186:             case 0b010_100:
  1187:             case 0b010_101:
  1188:             case 0b010_110:
  1189:             case 0b010_111:
  1190:               irpLinkWord ();
  1191:               break irpSwitch;
  1192: 
  1193:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1194:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1195:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1196:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1197:               //UNLK Ar                                         |-|012346|-|-----|-----|          |0100_111_001_011_rrr
  1198:             case 0b011_000:
  1199:             case 0b011_001:
  1200:             case 0b011_010:
  1201:             case 0b011_011:
  1202:             case 0b011_100:
  1203:             case 0b011_101:
  1204:             case 0b011_110:
  1205:             case 0b011_111:
  1206:               irpUnlk ();
  1207:               break irpSwitch;
  1208: 
  1209:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1210:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1211:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1212:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1213:               //MOVE.L Ar,USP                                   |-|012346|P|-----|-----|          |0100_111_001_100_rrr
  1214:             case 0b100_000:
  1215:             case 0b100_001:
  1216:             case 0b100_010:
  1217:             case 0b100_011:
  1218:             case 0b100_100:
  1219:             case 0b100_101:
  1220:             case 0b100_110:
  1221:             case 0b100_111:
  1222:               irpMoveToUsp ();
  1223:               break irpSwitch;
  1224: 
  1225:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1226:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1227:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1228:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1229:               //MOVE.L USP,Ar                                   |-|012346|P|-----|-----|          |0100_111_001_101_rrr
  1230:             case 0b101_000:
  1231:             case 0b101_001:
  1232:             case 0b101_010:
  1233:             case 0b101_011:
  1234:             case 0b101_100:
  1235:             case 0b101_101:
  1236:             case 0b101_110:
  1237:             case 0b101_111:
  1238:               irpMoveFromUsp ();
  1239:               break irpSwitch;
  1240: 
  1241:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1242:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1243:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1244:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1245:               //RESET                                           |-|012346|P|-----|-----|          |0100_111_001_110_000
  1246:             case 0b110_000:
  1247:               irpReset ();
  1248:               break irpSwitch;
  1249: 
  1250:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1251:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1252:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1253:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1254:               //NOP                                             |-|012346|-|-----|-----|          |0100_111_001_110_001
  1255:             case 0b110_001:
  1256:               irpNop ();
  1257:               break irpSwitch;
  1258: 
  1259:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1260:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1261:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1262:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1263:               //STOP #<data>                                    |-|012346|P|UUUUU|*****|          |0100_111_001_110_010-{data}
  1264:             case 0b110_010:
  1265:               irpStop ();
  1266:               break irpSwitch;
  1267: 
  1268:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1269:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1270:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1271:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1272:               //RTE                                             |-|012346|P|UUUUU|*****|          |0100_111_001_110_011
  1273:             case 0b110_011:
  1274:               irpRte ();
  1275:               break irpSwitch;
  1276: 
  1277:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1278:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1279:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1280:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1281:               //RTD #<data>                                     |-|-12346|-|-----|-----|          |0100_111_001_110_100-{data}
  1282:             case 0b110_100:
  1283:               irpRtd ();
  1284:               break irpSwitch;
  1285: 
  1286:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1287:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1288:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1289:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1290:               //RTS                                             |-|012346|-|-----|-----|          |0100_111_001_110_101
  1291:             case 0b110_101:
  1292:               irpRts ();
  1293:               break irpSwitch;
  1294: 
  1295:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1296:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1297:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1298:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1299:               //TRAPV                                           |-|012346|-|---*-|-----|          |0100_111_001_110_110
  1300:             case 0b110_110:
  1301:               irpTrapv ();
  1302:               break irpSwitch;
  1303: 
  1304:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1305:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1306:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1307:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1308:               //RTR                                             |-|012346|-|UUUUU|*****|          |0100_111_001_110_111
  1309:             case 0b110_111:
  1310:               irpRtr ();
  1311:               break irpSwitch;
  1312: 
  1313:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1314:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1315:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1316:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1317:               //MOVEC.L Rc,Rn                                   |-|-12346|P|-----|-----|          |0100_111_001_111_010-rnnncccccccccccc
  1318:             case 0b111_010:
  1319:               irpMovecFromControl ();
  1320:               break irpSwitch;
  1321: 
  1322:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1323:               //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1324:               //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1325:               //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1326:               //MOVEC.L Rn,Rc                                   |-|-12346|P|-----|-----|          |0100_111_001_111_011-rnnncccccccccccc
  1327:             case 0b111_011:
  1328:               irpMovecToControl ();
  1329:               break irpSwitch;
  1330: 
  1331:             default:
  1332:               irpIllegal ();
  1333: 
  1334:             }  //switch XEiJ.regOC & 0b111_111
  1335:             break irpSwitch;
  1336: 
  1337:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1338:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1339:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1340:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1341:             //JSR <ea>                                        |-|012346|-|-----|-----|  M  WXZP |0100_111_010_mmm_rrr
  1342:             //JBSR.L <label>                                  |A|012346|-|-----|-----|          |0100_111_010_111_001-{address}       [JSR <label>]
  1343:           case 0b0100_111_010:
  1344:             irpJsr ();
  1345:             break irpSwitch;
  1346: 
  1347:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1348:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1349:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1350:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1351:             //JMP <ea>                                        |-|012346|-|-----|-----|  M  WXZP |0100_111_011_mmm_rrr
  1352:             //JBRA.L <label>                                  |A|012346|-|-----|-----|          |0100_111_011_111_001-{address}       [JMP <label>]
  1353:           case 0b0100_111_011:
  1354:             irpJmp ();
  1355:             break irpSwitch;
  1356: 
  1357:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1358:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1359:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1360:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1361:             //ADDQ.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_000_mmm_rrr
  1362:             //INC.B <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_000_mmm_rrr [ADDQ.B #1,<ea>]
  1363:           case 0b0101_000_000:
  1364:           case 0b0101_001_000:
  1365:           case 0b0101_010_000:
  1366:           case 0b0101_011_000:
  1367:           case 0b0101_100_000:
  1368:           case 0b0101_101_000:
  1369:           case 0b0101_110_000:
  1370:           case 0b0101_111_000:
  1371:             irpAddqByte ();
  1372:             break irpSwitch;
  1373: 
  1374:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1375:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1376:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1377:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1378:             //ADDQ.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_001_mmm_rrr
  1379:             //ADDQ.W #<data>,Ar                               |-|012346|-|-----|-----| A        |0101_qqq_001_001_rrr
  1380:             //INC.W <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_001_mmm_rrr [ADDQ.W #1,<ea>]
  1381:             //INC.W Ar                                        |A|012346|-|-----|-----| A        |0101_001_001_001_rrr [ADDQ.W #1,Ar]
  1382:           case 0b0101_000_001:
  1383:           case 0b0101_001_001:
  1384:           case 0b0101_010_001:
  1385:           case 0b0101_011_001:
  1386:           case 0b0101_100_001:
  1387:           case 0b0101_101_001:
  1388:           case 0b0101_110_001:
  1389:           case 0b0101_111_001:
  1390:             irpAddqWord ();
  1391:             break irpSwitch;
  1392: 
  1393:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1394:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1395:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1396:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1397:             //ADDQ.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_010_mmm_rrr
  1398:             //ADDQ.L #<data>,Ar                               |-|012346|-|-----|-----| A        |0101_qqq_010_001_rrr
  1399:             //INC.L <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_010_mmm_rrr [ADDQ.L #1,<ea>]
  1400:             //INC.L Ar                                        |A|012346|-|-----|-----| A        |0101_001_010_001_rrr [ADDQ.L #1,Ar]
  1401:           case 0b0101_000_010:
  1402:           case 0b0101_001_010:
  1403:           case 0b0101_010_010:
  1404:           case 0b0101_011_010:
  1405:           case 0b0101_100_010:
  1406:           case 0b0101_101_010:
  1407:           case 0b0101_110_010:
  1408:           case 0b0101_111_010:
  1409:             irpAddqLong ();
  1410:             break irpSwitch;
  1411: 
  1412:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1413:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1414:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1415:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1416:             //ST.B <ea>                                       |-|012346|-|-----|-----|D M+-WXZ  |0101_000_011_mmm_rrr
  1417:             //SNF.B <ea>                                      |A|012346|-|-----|-----|D M+-WXZ  |0101_000_011_mmm_rrr [ST.B <ea>]
  1418:             //DBT.W Dr,<label>                                |-|012346|-|-----|-----|          |0101_000_011_001_rrr-{offset}
  1419:             //DBNF.W Dr,<label>                               |A|012346|-|-----|-----|          |0101_000_011_001_rrr-{offset}        [DBT.W Dr,<label>]
  1420:             //TRAPT.W #<data>                                 |-|--2346|-|-----|-----|          |0101_000_011_111_010-{data}
  1421:             //TPNF.W #<data>                                  |A|--2346|-|-----|-----|          |0101_000_011_111_010-{data}  [TRAPT.W #<data>]
  1422:             //TPT.W #<data>                                   |A|--2346|-|-----|-----|          |0101_000_011_111_010-{data}  [TRAPT.W #<data>]
  1423:             //TRAPNF.W #<data>                                |A|--2346|-|-----|-----|          |0101_000_011_111_010-{data}  [TRAPT.W #<data>]
  1424:             //TRAPT.L #<data>                                 |-|--2346|-|-----|-----|          |0101_000_011_111_011-{data}
  1425:             //TPNF.L #<data>                                  |A|--2346|-|-----|-----|          |0101_000_011_111_011-{data}  [TRAPT.L #<data>]
  1426:             //TPT.L #<data>                                   |A|--2346|-|-----|-----|          |0101_000_011_111_011-{data}  [TRAPT.L #<data>]
  1427:             //TRAPNF.L #<data>                                |A|--2346|-|-----|-----|          |0101_000_011_111_011-{data}  [TRAPT.L #<data>]
  1428:             //TRAPT                                           |-|--2346|-|-----|-----|          |0101_000_011_111_100
  1429:             //TPNF                                            |A|--2346|-|-----|-----|          |0101_000_011_111_100 [TRAPT]
  1430:             //TPT                                             |A|--2346|-|-----|-----|          |0101_000_011_111_100 [TRAPT]
  1431:             //TRAPNF                                          |A|--2346|-|-----|-----|          |0101_000_011_111_100 [TRAPT]
  1432:           case 0b0101_000_011:
  1433:             irpSt ();
  1434:             break irpSwitch;
  1435: 
  1436:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1437:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1438:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1439:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1440:             //SUBQ.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_100_mmm_rrr
  1441:             //DEC.B <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_100_mmm_rrr [SUBQ.B #1,<ea>]
  1442:           case 0b0101_000_100:
  1443:           case 0b0101_001_100:
  1444:           case 0b0101_010_100:
  1445:           case 0b0101_011_100:
  1446:           case 0b0101_100_100:
  1447:           case 0b0101_101_100:
  1448:           case 0b0101_110_100:
  1449:           case 0b0101_111_100:
  1450:             irpSubqByte ();
  1451:             break irpSwitch;
  1452: 
  1453:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1454:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1455:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1456:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1457:             //SUBQ.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_101_mmm_rrr
  1458:             //SUBQ.W #<data>,Ar                               |-|012346|-|-----|-----| A        |0101_qqq_101_001_rrr
  1459:             //DEC.W <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_101_mmm_rrr [SUBQ.W #1,<ea>]
  1460:             //DEC.W Ar                                        |A|012346|-|-----|-----| A        |0101_001_101_001_rrr [SUBQ.W #1,Ar]
  1461:           case 0b0101_000_101:
  1462:           case 0b0101_001_101:
  1463:           case 0b0101_010_101:
  1464:           case 0b0101_011_101:
  1465:           case 0b0101_100_101:
  1466:           case 0b0101_101_101:
  1467:           case 0b0101_110_101:
  1468:           case 0b0101_111_101:
  1469:             irpSubqWord ();
  1470:             break irpSwitch;
  1471: 
  1472:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1473:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1474:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1475:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1476:             //SUBQ.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0101_qqq_110_mmm_rrr
  1477:             //SUBQ.L #<data>,Ar                               |-|012346|-|-----|-----| A        |0101_qqq_110_001_rrr
  1478:             //DEC.L <ea>                                      |A|012346|-|UUUUU|*****|D M+-WXZ  |0101_001_110_mmm_rrr [SUBQ.L #1,<ea>]
  1479:             //DEC.L Ar                                        |A|012346|-|-----|-----| A        |0101_001_110_001_rrr [SUBQ.L #1,Ar]
  1480:           case 0b0101_000_110:
  1481:           case 0b0101_001_110:
  1482:           case 0b0101_010_110:
  1483:           case 0b0101_011_110:
  1484:           case 0b0101_100_110:
  1485:           case 0b0101_101_110:
  1486:           case 0b0101_110_110:
  1487:           case 0b0101_111_110:
  1488:             irpSubqLong ();
  1489:             break irpSwitch;
  1490: 
  1491:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1492:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1493:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1494:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1495:             //SF.B <ea>                                       |-|012346|-|-----|-----|D M+-WXZ  |0101_000_111_mmm_rrr
  1496:             //SNT.B <ea>                                      |A|012346|-|-----|-----|D M+-WXZ  |0101_000_111_mmm_rrr [SF.B <ea>]
  1497:             //DBF.W Dr,<label>                                |-|012346|-|-----|-----|          |0101_000_111_001_rrr-{offset}
  1498:             //DBNT.W Dr,<label>                               |A|012346|-|-----|-----|          |0101_000_111_001_rrr-{offset}        [DBF.W Dr,<label>]
  1499:             //DBRA.W Dr,<label>                               |A|012346|-|-----|-----|          |0101_000_111_001_rrr-{offset}        [DBF.W Dr,<label>]
  1500:             //TRAPF.W #<data>                                 |-|--2346|-|-----|-----|          |0101_000_111_111_010-{data}
  1501:             //TPF.W #<data>                                   |A|--2346|-|-----|-----|          |0101_000_111_111_010-{data}  [TRAPF.W #<data>]
  1502:             //TPNT.W #<data>                                  |A|--2346|-|-----|-----|          |0101_000_111_111_010-{data}  [TRAPF.W #<data>]
  1503:             //TRAPNT.W #<data>                                |A|--2346|-|-----|-----|          |0101_000_111_111_010-{data}  [TRAPF.W #<data>]
  1504:             //TRAPF.L #<data>                                 |-|--2346|-|-----|-----|          |0101_000_111_111_011-{data}
  1505:             //TPF.L #<data>                                   |A|--2346|-|-----|-----|          |0101_000_111_111_011-{data}  [TRAPF.L #<data>]
  1506:             //TPNT.L #<data>                                  |A|--2346|-|-----|-----|          |0101_000_111_111_011-{data}  [TRAPF.L #<data>]
  1507:             //TRAPNT.L #<data>                                |A|--2346|-|-----|-----|          |0101_000_111_111_011-{data}  [TRAPF.L #<data>]
  1508:             //TRAPF                                           |-|--2346|-|-----|-----|          |0101_000_111_111_100
  1509:             //TPF                                             |A|--2346|-|-----|-----|          |0101_000_111_111_100 [TRAPF]
  1510:             //TPNT                                            |A|--2346|-|-----|-----|          |0101_000_111_111_100 [TRAPF]
  1511:             //TRAPNT                                          |A|--2346|-|-----|-----|          |0101_000_111_111_100 [TRAPF]
  1512:           case 0b0101_000_111:
  1513:             irpSf ();
  1514:             break irpSwitch;
  1515: 
  1516:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1517:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1518:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1519:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1520:             //SHI.B <ea>                                      |-|012346|-|--*-*|-----|D M+-WXZ  |0101_001_011_mmm_rrr
  1521:             //SNLS.B <ea>                                     |A|012346|-|--*-*|-----|D M+-WXZ  |0101_001_011_mmm_rrr [SHI.B <ea>]
  1522:             //DBHI.W Dr,<label>                               |-|012346|-|--*-*|-----|          |0101_001_011_001_rrr-{offset}
  1523:             //DBNLS.W Dr,<label>                              |A|012346|-|--*-*|-----|          |0101_001_011_001_rrr-{offset}        [DBHI.W Dr,<label>]
  1524:             //TRAPHI.W #<data>                                |-|--2346|-|--*-*|-----|          |0101_001_011_111_010-{data}
  1525:             //TPHI.W #<data>                                  |A|--2346|-|--*-*|-----|          |0101_001_011_111_010-{data}  [TRAPHI.W #<data>]
  1526:             //TPNLS.W #<data>                                 |A|--2346|-|--*-*|-----|          |0101_001_011_111_010-{data}  [TRAPHI.W #<data>]
  1527:             //TRAPNLS.W #<data>                               |A|--2346|-|--*-*|-----|          |0101_001_011_111_010-{data}  [TRAPHI.W #<data>]
  1528:             //TRAPHI.L #<data>                                |-|--2346|-|--*-*|-----|          |0101_001_011_111_011-{data}
  1529:             //TPHI.L #<data>                                  |A|--2346|-|--*-*|-----|          |0101_001_011_111_011-{data}  [TRAPHI.L #<data>]
  1530:             //TPNLS.L #<data>                                 |A|--2346|-|--*-*|-----|          |0101_001_011_111_011-{data}  [TRAPHI.L #<data>]
  1531:             //TRAPNLS.L #<data>                               |A|--2346|-|--*-*|-----|          |0101_001_011_111_011-{data}  [TRAPHI.L #<data>]
  1532:             //TRAPHI                                          |-|--2346|-|--*-*|-----|          |0101_001_011_111_100
  1533:             //TPHI                                            |A|--2346|-|--*-*|-----|          |0101_001_011_111_100 [TRAPHI]
  1534:             //TPNLS                                           |A|--2346|-|--*-*|-----|          |0101_001_011_111_100 [TRAPHI]
  1535:             //TRAPNLS                                         |A|--2346|-|--*-*|-----|          |0101_001_011_111_100 [TRAPHI]
  1536:           case 0b0101_001_011:
  1537:             irpShi ();
  1538:             break irpSwitch;
  1539: 
  1540:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1541:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1542:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1543:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1544:             //SLS.B <ea>                                      |-|012346|-|--*-*|-----|D M+-WXZ  |0101_001_111_mmm_rrr
  1545:             //SNHI.B <ea>                                     |A|012346|-|--*-*|-----|D M+-WXZ  |0101_001_111_mmm_rrr [SLS.B <ea>]
  1546:             //DBLS.W Dr,<label>                               |-|012346|-|--*-*|-----|          |0101_001_111_001_rrr-{offset}
  1547:             //DBNHI.W Dr,<label>                              |A|012346|-|--*-*|-----|          |0101_001_111_001_rrr-{offset}        [DBLS.W Dr,<label>]
  1548:             //TRAPLS.W #<data>                                |-|--2346|-|--*-*|-----|          |0101_001_111_111_010-{data}
  1549:             //TPLS.W #<data>                                  |A|--2346|-|--*-*|-----|          |0101_001_111_111_010-{data}
  1550:             //TPNHI.W #<data>                                 |A|--2346|-|--*-*|-----|          |0101_001_111_111_010-{data}  [TRAPLS.W #<data>]
  1551:             //TRAPNHI.W #<data>                               |A|--2346|-|--*-*|-----|          |0101_001_111_111_010-{data}  [TRAPLS.W #<data>]
  1552:             //TRAPLS.L #<data>                                |-|--2346|-|--*-*|-----|          |0101_001_111_111_011-{data}
  1553:             //TPLS.L #<data>                                  |A|--2346|-|--*-*|-----|          |0101_001_111_111_011-{data}
  1554:             //TPNHI.L #<data>                                 |A|--2346|-|--*-*|-----|          |0101_001_111_111_011-{data}  [TRAPLS.L #<data>]
  1555:             //TRAPNHI.L #<data>                               |A|--2346|-|--*-*|-----|          |0101_001_111_111_011-{data}  [TRAPLS.L #<data>]
  1556:             //TRAPLS                                          |-|--2346|-|--*-*|-----|          |0101_001_111_111_100
  1557:             //TPLS                                            |A|--2346|-|--*-*|-----|          |0101_001_111_111_100 [TRAPLS]
  1558:             //TPNHI                                           |A|--2346|-|--*-*|-----|          |0101_001_111_111_100 [TRAPLS]
  1559:             //TRAPNHI                                         |A|--2346|-|--*-*|-----|          |0101_001_111_111_100 [TRAPLS]
  1560:           case 0b0101_001_111:
  1561:             irpSls ();
  1562:             break irpSwitch;
  1563: 
  1564:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1565:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1566:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1567:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1568:             //SCC.B <ea>                                      |-|012346|-|----*|-----|D M+-WXZ  |0101_010_011_mmm_rrr
  1569:             //SHS.B <ea>                                      |A|012346|-|----*|-----|D M+-WXZ  |0101_010_011_mmm_rrr [SCC.B <ea>]
  1570:             //SNCS.B <ea>                                     |A|012346|-|----*|-----|D M+-WXZ  |0101_010_011_mmm_rrr [SCC.B <ea>]
  1571:             //SNLO.B <ea>                                     |A|012346|-|----*|-----|D M+-WXZ  |0101_010_011_mmm_rrr [SCC.B <ea>]
  1572:             //DBCC.W Dr,<label>                               |-|012346|-|----*|-----|          |0101_010_011_001_rrr-{offset}
  1573:             //DBHS.W Dr,<label>                               |A|012346|-|----*|-----|          |0101_010_011_001_rrr-{offset}        [DBCC.W Dr,<label>]
  1574:             //DBNCS.W Dr,<label>                              |A|012346|-|----*|-----|          |0101_010_011_001_rrr-{offset}        [DBCC.W Dr,<label>]
  1575:             //DBNLO.W Dr,<label>                              |A|012346|-|----*|-----|          |0101_010_011_001_rrr-{offset}        [DBCC.W Dr,<label>]
  1576:             //TRAPCC.W #<data>                                |-|--2346|-|----*|-----|          |0101_010_011_111_010-{data}
  1577:             //TPCC.W #<data>                                  |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1578:             //TPHS.W #<data>                                  |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1579:             //TPNCS.W #<data>                                 |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1580:             //TPNLO.W #<data>                                 |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1581:             //TRAPHS.W #<data>                                |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1582:             //TRAPNCS.W #<data>                               |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1583:             //TRAPNLO.W #<data>                               |A|--2346|-|----*|-----|          |0101_010_011_111_010-{data}  [TRAPCC.W #<data>]
  1584:             //TRAPCC.L #<data>                                |-|--2346|-|----*|-----|          |0101_010_011_111_011-{data}
  1585:             //TPCC.L #<data>                                  |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1586:             //TPHS.L #<data>                                  |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1587:             //TPNCS.L #<data>                                 |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1588:             //TPNLO.L #<data>                                 |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1589:             //TRAPHS.L #<data>                                |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1590:             //TRAPNCS.L #<data>                               |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1591:             //TRAPNLO.L #<data>                               |A|--2346|-|----*|-----|          |0101_010_011_111_011-{data}  [TRAPCC.L #<data>]
  1592:             //TRAPCC                                          |-|--2346|-|----*|-----|          |0101_010_011_111_100
  1593:             //TPCC                                            |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1594:             //TPHS                                            |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1595:             //TPNCS                                           |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1596:             //TPNLO                                           |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1597:             //TRAPHS                                          |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1598:             //TRAPNCS                                         |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1599:             //TRAPNLO                                         |A|--2346|-|----*|-----|          |0101_010_011_111_100 [TRAPCC]
  1600:           case 0b0101_010_011:
  1601:             irpShs ();
  1602:             break irpSwitch;
  1603: 
  1604:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1605:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1606:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1607:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1608:             //SCS.B <ea>                                      |-|012346|-|----*|-----|D M+-WXZ  |0101_010_111_mmm_rrr
  1609:             //SLO.B <ea>                                      |A|012346|-|----*|-----|D M+-WXZ  |0101_010_111_mmm_rrr [SCS.B <ea>]
  1610:             //SNCC.B <ea>                                     |A|012346|-|----*|-----|D M+-WXZ  |0101_010_111_mmm_rrr [SCS.B <ea>]
  1611:             //SNHS.B <ea>                                     |A|012346|-|----*|-----|D M+-WXZ  |0101_010_111_mmm_rrr [SCS.B <ea>]
  1612:             //DBCS.W Dr,<label>                               |-|012346|-|----*|-----|          |0101_010_111_001_rrr-{offset}
  1613:             //DBLO.W Dr,<label>                               |A|012346|-|----*|-----|          |0101_010_111_001_rrr-{offset}        [DBCS.W Dr,<label>]
  1614:             //DBNCC.W Dr,<label>                              |A|012346|-|----*|-----|          |0101_010_111_001_rrr-{offset}        [DBCS.W Dr,<label>]
  1615:             //DBNHS.W Dr,<label>                              |A|012346|-|----*|-----|          |0101_010_111_001_rrr-{offset}        [DBCS.W Dr,<label>]
  1616:             //TRAPCS.W #<data>                                |-|--2346|-|----*|-----|          |0101_010_111_111_010-{data}
  1617:             //TPCS.W #<data>                                  |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1618:             //TPLO.W #<data>                                  |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1619:             //TPNCC.W #<data>                                 |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1620:             //TPNHS.W #<data>                                 |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1621:             //TRAPLO.W #<data>                                |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1622:             //TRAPNCC.W #<data>                               |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1623:             //TRAPNHS.W #<data>                               |A|--2346|-|----*|-----|          |0101_010_111_111_010-{data}  [TRAPCS.W #<data>]
  1624:             //TRAPCS.L #<data>                                |-|--2346|-|----*|-----|          |0101_010_111_111_011-{data}
  1625:             //TPCS.L #<data>                                  |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1626:             //TPLO.L #<data>                                  |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1627:             //TPNCC.L #<data>                                 |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1628:             //TPNHS.L #<data>                                 |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1629:             //TRAPLO.L #<data>                                |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1630:             //TRAPNCC.L #<data>                               |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1631:             //TRAPNHS.L #<data>                               |A|--2346|-|----*|-----|          |0101_010_111_111_011-{data}  [TRAPCS.L #<data>]
  1632:             //TRAPCS                                          |-|--2346|-|----*|-----|          |0101_010_111_111_100
  1633:             //TPCS                                            |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1634:             //TPLO                                            |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1635:             //TPNCC                                           |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1636:             //TPNHS                                           |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1637:             //TRAPLO                                          |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1638:             //TRAPNCC                                         |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1639:             //TRAPNHS                                         |A|--2346|-|----*|-----|          |0101_010_111_111_100 [TRAPCS]
  1640:           case 0b0101_010_111:
  1641:             irpSlo ();
  1642:             break irpSwitch;
  1643: 
  1644:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1645:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1646:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1647:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1648:             //SNE.B <ea>                                      |-|012346|-|--*--|-----|D M+-WXZ  |0101_011_011_mmm_rrr
  1649:             //SNEQ.B <ea>                                     |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_011_mmm_rrr [SNE.B <ea>]
  1650:             //SNZ.B <ea>                                      |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_011_mmm_rrr [SNE.B <ea>]
  1651:             //SNZE.B <ea>                                     |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_011_mmm_rrr [SNE.B <ea>]
  1652:             //DBNE.W Dr,<label>                               |-|012346|-|--*--|-----|          |0101_011_011_001_rrr-{offset}
  1653:             //DBNEQ.W Dr,<label>                              |A|012346|-|--*--|-----|          |0101_011_011_001_rrr-{offset}        [DBNE.W Dr,<label>]
  1654:             //DBNZ.W Dr,<label>                               |A|012346|-|--*--|-----|          |0101_011_011_001_rrr-{offset}        [DBNE.W Dr,<label>]
  1655:             //DBNZE.W Dr,<label>                              |A|012346|-|--*--|-----|          |0101_011_011_001_rrr-{offset}        [DBNE.W Dr,<label>]
  1656:             //TRAPNE.W #<data>                                |-|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}
  1657:             //TPNE.W #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1658:             //TPNEQ.W #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1659:             //TPNZ.W #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1660:             //TPNZE.W #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1661:             //TRAPNEQ.W #<data>                               |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1662:             //TRAPNZ.W #<data>                                |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1663:             //TRAPNZE.W #<data>                               |A|--2346|-|--*--|-----|          |0101_011_011_111_010-{data}  [TRAPNE.W #<data>]
  1664:             //TRAPNE.L #<data>                                |-|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}
  1665:             //TPNE.L #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1666:             //TPNEQ.L #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1667:             //TPNZ.L #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1668:             //TPNZE.L #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1669:             //TRAPNEQ.L #<data>                               |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1670:             //TRAPNZ.L #<data>                                |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1671:             //TRAPNZE.L #<data>                               |A|--2346|-|--*--|-----|          |0101_011_011_111_011-{data}  [TRAPNE.L #<data>]
  1672:             //TRAPNE                                          |-|--2346|-|--*--|-----|          |0101_011_011_111_100
  1673:             //TPNE                                            |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1674:             //TPNEQ                                           |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1675:             //TPNZ                                            |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1676:             //TPNZE                                           |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1677:             //TRAPNEQ                                         |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1678:             //TRAPNZ                                          |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1679:             //TRAPNZE                                         |A|--2346|-|--*--|-----|          |0101_011_011_111_100 [TRAPNE]
  1680:           case 0b0101_011_011:
  1681:             irpSne ();
  1682:             break irpSwitch;
  1683: 
  1684:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1685:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1686:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1687:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1688:             //SEQ.B <ea>                                      |-|012346|-|--*--|-----|D M+-WXZ  |0101_011_111_mmm_rrr
  1689:             //SNNE.B <ea>                                     |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_111_mmm_rrr [SEQ.B <ea>]
  1690:             //SNNZ.B <ea>                                     |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_111_mmm_rrr [SEQ.B <ea>]
  1691:             //SZE.B <ea>                                      |A|012346|-|--*--|-----|D M+-WXZ  |0101_011_111_mmm_rrr [SEQ.B <ea>]
  1692:             //DBEQ.W Dr,<label>                               |-|012346|-|--*--|-----|          |0101_011_111_001_rrr-{offset}
  1693:             //DBNNE.W Dr,<label>                              |A|012346|-|--*--|-----|          |0101_011_111_001_rrr-{offset}        [DBEQ.W Dr,<label>]
  1694:             //DBNNZ.W Dr,<label>                              |A|012346|-|--*--|-----|          |0101_011_111_001_rrr-{offset}        [DBEQ.W Dr,<label>]
  1695:             //DBZE.W Dr,<label>                               |A|012346|-|--*--|-----|          |0101_011_111_001_rrr-{offset}        [DBEQ.W Dr,<label>]
  1696:             //TRAPEQ.W #<data>                                |-|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}
  1697:             //TPEQ.W #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1698:             //TPNNE.W #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1699:             //TPNNZ.W #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1700:             //TPZE.W #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1701:             //TRAPNNE.W #<data>                               |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1702:             //TRAPNNZ.W #<data>                               |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1703:             //TRAPZE.W #<data>                                |A|--2346|-|--*--|-----|          |0101_011_111_111_010-{data}  [TRAPEQ.W #<data>]
  1704:             //TRAPEQ.L #<data>                                |-|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}
  1705:             //TPEQ.L #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1706:             //TPNNE.L #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1707:             //TPNNZ.L #<data>                                 |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1708:             //TPZE.L #<data>                                  |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1709:             //TRAPNNE.L #<data>                               |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1710:             //TRAPNNZ.L #<data>                               |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1711:             //TRAPZE.L #<data>                                |A|--2346|-|--*--|-----|          |0101_011_111_111_011-{data}  [TRAPEQ.L #<data>]
  1712:             //TRAPEQ                                          |-|--2346|-|--*--|-----|          |0101_011_111_111_100
  1713:             //TPEQ                                            |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1714:             //TPNNE                                           |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1715:             //TPNNZ                                           |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1716:             //TPZE                                            |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1717:             //TRAPNNE                                         |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1718:             //TRAPNNZ                                         |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1719:             //TRAPZE                                          |A|--2346|-|--*--|-----|          |0101_011_111_111_100 [TRAPEQ]
  1720:           case 0b0101_011_111:
  1721:             irpSeq ();
  1722:             break irpSwitch;
  1723: 
  1724:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1725:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1726:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1727:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1728:             //SVC.B <ea>                                      |-|012346|-|---*-|-----|D M+-WXZ  |0101_100_011_mmm_rrr
  1729:             //SNVS.B <ea>                                     |A|012346|-|---*-|-----|D M+-WXZ  |0101_100_011_mmm_rrr [SVC.B <ea>]
  1730:             //DBVC.W Dr,<label>                               |-|012346|-|---*-|-----|          |0101_100_011_001_rrr-{offset}
  1731:             //DBNVS.W Dr,<label>                              |A|012346|-|---*-|-----|          |0101_100_011_001_rrr-{offset}        [DBVC.W Dr,<label>]
  1732:             //TRAPVC.W #<data>                                |-|--2346|-|---*-|-----|          |0101_100_011_111_010-{data}
  1733:             //TPNVS.W #<data>                                 |A|--2346|-|---*-|-----|          |0101_100_011_111_010-{data}  [TRAPVC.W #<data>]
  1734:             //TPVC.W #<data>                                  |A|--2346|-|---*-|-----|          |0101_100_011_111_010-{data}  [TRAPVC.W #<data>]
  1735:             //TRAPNVS.W #<data>                               |A|--2346|-|---*-|-----|          |0101_100_011_111_010-{data}  [TRAPVC.W #<data>]
  1736:             //TRAPVC.L #<data>                                |-|--2346|-|---*-|-----|          |0101_100_011_111_011-{data}
  1737:             //TPNVS.L #<data>                                 |A|--2346|-|---*-|-----|          |0101_100_011_111_011-{data}  [TRAPVC.L #<data>]
  1738:             //TPVC.L #<data>                                  |A|--2346|-|---*-|-----|          |0101_100_011_111_011-{data}  [TRAPVC.L #<data>]
  1739:             //TRAPNVS.L #<data>                               |A|--2346|-|---*-|-----|          |0101_100_011_111_011-{data}  [TRAPVC.L #<data>]
  1740:             //TRAPVC                                          |-|--2346|-|---*-|-----|          |0101_100_011_111_100
  1741:             //TPNVS                                           |A|--2346|-|---*-|-----|          |0101_100_011_111_100 [TRAPVC]
  1742:             //TPVC                                            |A|--2346|-|---*-|-----|          |0101_100_011_111_100 [TRAPVC]
  1743:             //TRAPNVS                                         |A|--2346|-|---*-|-----|          |0101_100_011_111_100 [TRAPVC]
  1744:           case 0b0101_100_011:
  1745:             irpSvc ();
  1746:             break irpSwitch;
  1747: 
  1748:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1749:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1750:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1751:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1752:             //SVS.B <ea>                                      |-|012346|-|---*-|-----|D M+-WXZ  |0101_100_111_mmm_rrr
  1753:             //SNVC.B <ea>                                     |A|012346|-|---*-|-----|D M+-WXZ  |0101_100_111_mmm_rrr [SVS.B <ea>]
  1754:             //DBVS.W Dr,<label>                               |-|012346|-|---*-|-----|          |0101_100_111_001_rrr-{offset}
  1755:             //DBNVC.W Dr,<label>                              |A|012346|-|---*-|-----|          |0101_100_111_001_rrr-{offset}        [DBVS.W Dr,<label>]
  1756:             //TRAPVS.W #<data>                                |-|--2346|-|---*-|-----|          |0101_100_111_111_010-{data}
  1757:             //TPNVC.W #<data>                                 |A|--2346|-|---*-|-----|          |0101_100_111_111_010-{data}  [TRAPVS.W #<data>]
  1758:             //TPVS.W #<data>                                  |A|--2346|-|---*-|-----|          |0101_100_111_111_010-{data}  [TRAPVS.W #<data>]
  1759:             //TRAPNVC.W #<data>                               |A|--2346|-|---*-|-----|          |0101_100_111_111_010-{data}  [TRAPVS.W #<data>]
  1760:             //TRAPVS.L #<data>                                |-|--2346|-|---*-|-----|          |0101_100_111_111_011-{data}
  1761:             //TPNVC.L #<data>                                 |A|--2346|-|---*-|-----|          |0101_100_111_111_011-{data}  [TRAPVS.L #<data>]
  1762:             //TPVS.L #<data>                                  |A|--2346|-|---*-|-----|          |0101_100_111_111_011-{data}  [TRAPVS.L #<data>]
  1763:             //TRAPNVC.L #<data>                               |A|--2346|-|---*-|-----|          |0101_100_111_111_011-{data}  [TRAPVS.L #<data>]
  1764:             //TRAPVS                                          |-|--2346|-|---*-|-----|          |0101_100_111_111_100
  1765:             //TPNVC                                           |A|--2346|-|---*-|-----|          |0101_100_111_111_100 [TRAPVS]
  1766:             //TPVS                                            |A|--2346|-|---*-|-----|          |0101_100_111_111_100 [TRAPVS]
  1767:             //TRAPNVC                                         |A|--2346|-|---*-|-----|          |0101_100_111_111_100 [TRAPVS]
  1768:           case 0b0101_100_111:
  1769:             irpSvs ();
  1770:             break irpSwitch;
  1771: 
  1772:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1773:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1774:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1775:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1776:             //SPL.B <ea>                                      |-|012346|-|-*---|-----|D M+-WXZ  |0101_101_011_mmm_rrr
  1777:             //SNMI.B <ea>                                     |A|012346|-|-*---|-----|D M+-WXZ  |0101_101_011_mmm_rrr [SPL.B <ea>]
  1778:             //DBPL.W Dr,<label>                               |-|012346|-|-*---|-----|          |0101_101_011_001_rrr-{offset}
  1779:             //DBNMI.W Dr,<label>                              |A|012346|-|-*---|-----|          |0101_101_011_001_rrr-{offset}        [DBPL.W Dr,<label>]
  1780:             //TRAPPL.W #<data>                                |-|--2346|-|-*---|-----|          |0101_101_011_111_010-{data}
  1781:             //TPNMI.W #<data>                                 |A|--2346|-|-*---|-----|          |0101_101_011_111_010-{data}  [TRAPPL.W #<data>]
  1782:             //TPPL.W #<data>                                  |A|--2346|-|-*---|-----|          |0101_101_011_111_010-{data}  [TRAPPL.W #<data>]
  1783:             //TRAPNMI.W #<data>                               |A|--2346|-|-*---|-----|          |0101_101_011_111_010-{data}  [TRAPPL.W #<data>]
  1784:             //TRAPPL.L #<data>                                |-|--2346|-|-*---|-----|          |0101_101_011_111_011-{data}
  1785:             //TPNMI.L #<data>                                 |A|--2346|-|-*---|-----|          |0101_101_011_111_011-{data}  [TRAPPL.L #<data>]
  1786:             //TPPL.L #<data>                                  |A|--2346|-|-*---|-----|          |0101_101_011_111_011-{data}  [TRAPPL.L #<data>]
  1787:             //TRAPNMI.L #<data>                               |A|--2346|-|-*---|-----|          |0101_101_011_111_011-{data}  [TRAPPL.L #<data>]
  1788:             //TRAPPL                                          |-|--2346|-|-*---|-----|          |0101_101_011_111_100
  1789:             //TPNMI                                           |A|--2346|-|-*---|-----|          |0101_101_011_111_100 [TRAPPL]
  1790:             //TPPL                                            |A|--2346|-|-*---|-----|          |0101_101_011_111_100 [TRAPPL]
  1791:             //TRAPNMI                                         |A|--2346|-|-*---|-----|          |0101_101_011_111_100 [TRAPPL]
  1792:           case 0b0101_101_011:
  1793:             irpSpl ();
  1794:             break irpSwitch;
  1795: 
  1796:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1797:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1798:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1799:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1800:             //SMI.B <ea>                                      |-|012346|-|-*---|-----|D M+-WXZ  |0101_101_111_mmm_rrr
  1801:             //SNPL.B <ea>                                     |A|012346|-|-*---|-----|D M+-WXZ  |0101_101_111_mmm_rrr [SMI.B <ea>]
  1802:             //DBMI.W Dr,<label>                               |-|012346|-|-*---|-----|          |0101_101_111_001_rrr-{offset}
  1803:             //DBNPL.W Dr,<label>                              |A|012346|-|-*---|-----|          |0101_101_111_001_rrr-{offset}        [DBMI.W Dr,<label>]
  1804:             //TRAPMI.W #<data>                                |-|--2346|-|-*---|-----|          |0101_101_111_111_010-{data}
  1805:             //TPMI.W #<data>                                  |A|--2346|-|-*---|-----|          |0101_101_111_111_010-{data}  [TRAPMI.W #<data>]
  1806:             //TPNPL.W #<data>                                 |A|--2346|-|-*---|-----|          |0101_101_111_111_010-{data}  [TRAPMI.W #<data>]
  1807:             //TRAPNPL.W #<data>                               |A|--2346|-|-*---|-----|          |0101_101_111_111_010-{data}  [TRAPMI.W #<data>]
  1808:             //TRAPMI.L #<data>                                |-|--2346|-|-*---|-----|          |0101_101_111_111_011-{data}
  1809:             //TPMI.L #<data>                                  |A|--2346|-|-*---|-----|          |0101_101_111_111_011-{data}  [TRAPMI.L #<data>]
  1810:             //TPNPL.L #<data>                                 |A|--2346|-|-*---|-----|          |0101_101_111_111_011-{data}  [TRAPMI.L #<data>]
  1811:             //TRAPNPL.L #<data>                               |A|--2346|-|-*---|-----|          |0101_101_111_111_011-{data}  [TRAPMI.L #<data>]
  1812:             //TRAPMI                                          |-|--2346|-|-*---|-----|          |0101_101_111_111_100
  1813:             //TPMI                                            |A|--2346|-|-*---|-----|          |0101_101_111_111_100 [TRAPMI]
  1814:             //TPNPL                                           |A|--2346|-|-*---|-----|          |0101_101_111_111_100 [TRAPMI]
  1815:             //TRAPNPL                                         |A|--2346|-|-*---|-----|          |0101_101_111_111_100 [TRAPMI]
  1816:           case 0b0101_101_111:
  1817:             irpSmi ();
  1818:             break irpSwitch;
  1819: 
  1820:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1821:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1822:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1823:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1824:             //SGE.B <ea>                                      |-|012346|-|-*-*-|-----|D M+-WXZ  |0101_110_011_mmm_rrr
  1825:             //SNLT.B <ea>                                     |A|012346|-|-*-*-|-----|D M+-WXZ  |0101_110_011_mmm_rrr [SGE.B <ea>]
  1826:             //DBGE.W Dr,<label>                               |-|012346|-|-*-*-|-----|          |0101_110_011_001_rrr-{offset}
  1827:             //DBNLT.W Dr,<label>                              |A|012346|-|-*-*-|-----|          |0101_110_011_001_rrr-{offset}        [DBGE.W Dr,<label>]
  1828:             //TRAPGE.W #<data>                                |-|--2346|-|-*-*-|-----|          |0101_110_011_111_010-{data}
  1829:             //TPGE.W #<data>                                  |A|--2346|-|-*-*-|-----|          |0101_110_011_111_010-{data}  [TRAPGE.W #<data>]
  1830:             //TPNLT.W #<data>                                 |A|--2346|-|-*-*-|-----|          |0101_110_011_111_010-{data}  [TRAPGE.W #<data>]
  1831:             //TRAPNLT.W #<data>                               |A|--2346|-|-*-*-|-----|          |0101_110_011_111_010-{data}  [TRAPGE.W #<data>]
  1832:             //TRAPGE.L #<data>                                |-|--2346|-|-*-*-|-----|          |0101_110_011_111_011-{data}
  1833:             //TPGE.L #<data>                                  |A|--2346|-|-*-*-|-----|          |0101_110_011_111_011-{data}  [TRAPGE.L #<data>]
  1834:             //TPNLT.L #<data>                                 |A|--2346|-|-*-*-|-----|          |0101_110_011_111_011-{data}  [TRAPGE.L #<data>]
  1835:             //TRAPNLT.L #<data>                               |A|--2346|-|-*-*-|-----|          |0101_110_011_111_011-{data}  [TRAPGE.L #<data>]
  1836:             //TRAPGE                                          |-|--2346|-|-*-*-|-----|          |0101_110_011_111_100
  1837:             //TPGE                                            |A|--2346|-|-*-*-|-----|          |0101_110_011_111_100 [TRAPGE]
  1838:             //TPNLT                                           |A|--2346|-|-*-*-|-----|          |0101_110_011_111_100 [TRAPGE]
  1839:             //TRAPNLT                                         |A|--2346|-|-*-*-|-----|          |0101_110_011_111_100 [TRAPGE]
  1840:           case 0b0101_110_011:
  1841:             irpSge ();
  1842:             break irpSwitch;
  1843: 
  1844:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1845:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1846:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1847:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1848:             //SLT.B <ea>                                      |-|012346|-|-*-*-|-----|D M+-WXZ  |0101_110_111_mmm_rrr
  1849:             //SNGE.B <ea>                                     |A|012346|-|-*-*-|-----|D M+-WXZ  |0101_110_111_mmm_rrr [SLT.B <ea>]
  1850:             //DBLT.W Dr,<label>                               |-|012346|-|-*-*-|-----|          |0101_110_111_001_rrr-{offset}
  1851:             //DBNGE.W Dr,<label>                              |A|012346|-|-*-*-|-----|          |0101_110_111_001_rrr-{offset}        [DBLT.W Dr,<label>]
  1852:             //TRAPLT.W #<data>                                |-|--2346|-|-*-*-|-----|          |0101_110_111_111_010-{data}
  1853:             //TPLT.W #<data>                                  |A|--2346|-|-*-*-|-----|          |0101_110_111_111_010-{data}  [TRAPLT.W #<data>]
  1854:             //TPNGE.W #<data>                                 |A|--2346|-|-*-*-|-----|          |0101_110_111_111_010-{data}  [TRAPLT.W #<data>]
  1855:             //TRAPNGE.W #<data>                               |A|--2346|-|-*-*-|-----|          |0101_110_111_111_010-{data}  [TRAPLT.W #<data>]
  1856:             //TRAPLT.L #<data>                                |-|--2346|-|-*-*-|-----|          |0101_110_111_111_011-{data}
  1857:             //TPLT.L #<data>                                  |A|--2346|-|-*-*-|-----|          |0101_110_111_111_011-{data}  [TRAPLT.L #<data>]
  1858:             //TPNGE.L #<data>                                 |A|--2346|-|-*-*-|-----|          |0101_110_111_111_011-{data}  [TRAPLT.L #<data>]
  1859:             //TRAPNGE.L #<data>                               |A|--2346|-|-*-*-|-----|          |0101_110_111_111_011-{data}  [TRAPLT.L #<data>]
  1860:             //TRAPLT                                          |-|--2346|-|-*-*-|-----|          |0101_110_111_111_100
  1861:             //TPLT                                            |A|--2346|-|-*-*-|-----|          |0101_110_111_111_100 [TRAPLT]
  1862:             //TPNGE                                           |A|--2346|-|-*-*-|-----|          |0101_110_111_111_100 [TRAPLT]
  1863:             //TRAPNGE                                         |A|--2346|-|-*-*-|-----|          |0101_110_111_111_100 [TRAPLT]
  1864:           case 0b0101_110_111:
  1865:             irpSlt ();
  1866:             break irpSwitch;
  1867: 
  1868:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1869:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1870:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1871:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1872:             //SGT.B <ea>                                      |-|012346|-|-***-|-----|D M+-WXZ  |0101_111_011_mmm_rrr
  1873:             //SNLE.B <ea>                                     |A|012346|-|-***-|-----|D M+-WXZ  |0101_111_011_mmm_rrr [SGT.B <ea>]
  1874:             //DBGT.W Dr,<label>                               |-|012346|-|-***-|-----|          |0101_111_011_001_rrr-{offset}
  1875:             //DBNLE.W Dr,<label>                              |A|012346|-|-***-|-----|          |0101_111_011_001_rrr-{offset}        [DBGT.W Dr,<label>]
  1876:             //TRAPGT.W #<data>                                |-|--2346|-|-***-|-----|          |0101_111_011_111_010-{data}
  1877:             //TPGT.W #<data>                                  |A|--2346|-|-***-|-----|          |0101_111_011_111_010-{data}  [TRAPGT.W #<data>]
  1878:             //TPNLE.W #<data>                                 |A|--2346|-|-***-|-----|          |0101_111_011_111_010-{data}  [TRAPGT.W #<data>]
  1879:             //TRAPNLE.W #<data>                               |A|--2346|-|-***-|-----|          |0101_111_011_111_010-{data}  [TRAPGT.W #<data>]
  1880:             //TRAPGT.L #<data>                                |-|--2346|-|-***-|-----|          |0101_111_011_111_011-{data}
  1881:             //TPGT.L #<data>                                  |A|--2346|-|-***-|-----|          |0101_111_011_111_011-{data}  [TRAPGT.L #<data>]
  1882:             //TPNLE.L #<data>                                 |A|--2346|-|-***-|-----|          |0101_111_011_111_011-{data}  [TRAPGT.L #<data>]
  1883:             //TRAPNLE.L #<data>                               |A|--2346|-|-***-|-----|          |0101_111_011_111_011-{data}  [TRAPGT.L #<data>]
  1884:             //TRAPGT                                          |-|--2346|-|-***-|-----|          |0101_111_011_111_100
  1885:             //TPGT                                            |A|--2346|-|-***-|-----|          |0101_111_011_111_100 [TRAPGT]
  1886:             //TPNLE                                           |A|--2346|-|-***-|-----|          |0101_111_011_111_100 [TRAPGT]
  1887:             //TRAPNLE                                         |A|--2346|-|-***-|-----|          |0101_111_011_111_100 [TRAPGT]
  1888:           case 0b0101_111_011:
  1889:             irpSgt ();
  1890:             break irpSwitch;
  1891: 
  1892:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1893:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1894:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1895:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1896:             //SLE.B <ea>                                      |-|012346|-|-***-|-----|D M+-WXZ  |0101_111_111_mmm_rrr
  1897:             //SNGT.B <ea>                                     |A|012346|-|-***-|-----|D M+-WXZ  |0101_111_111_mmm_rrr [SLE.B <ea>]
  1898:             //DBLE.W Dr,<label>                               |-|012346|-|-***-|-----|          |0101_111_111_001_rrr-{offset}
  1899:             //DBNGT.W Dr,<label>                              |A|012346|-|-***-|-----|          |0101_111_111_001_rrr-{offset}        [DBLE.W Dr,<label>]
  1900:             //TRAPLE.W #<data>                                |-|--2346|-|-***-|-----|          |0101_111_111_111_010-{data}
  1901:             //TPLE.W #<data>                                  |A|--2346|-|-***-|-----|          |0101_111_111_111_010-{data}  [TRAPLE.W #<data>]
  1902:             //TPNGT.W #<data>                                 |A|--2346|-|-***-|-----|          |0101_111_111_111_010-{data}  [TRAPLE.W #<data>]
  1903:             //TRAPNGT.W #<data>                               |A|--2346|-|-***-|-----|          |0101_111_111_111_010-{data}  [TRAPLE.W #<data>]
  1904:             //TRAPLE.L #<data>                                |-|--2346|-|-***-|-----|          |0101_111_111_111_011-{data}
  1905:             //TPLE.L #<data>                                  |A|--2346|-|-***-|-----|          |0101_111_111_111_011-{data}  [TRAPLE.L #<data>]
  1906:             //TPNGT.L #<data>                                 |A|--2346|-|-***-|-----|          |0101_111_111_111_011-{data}  [TRAPLE.L #<data>]
  1907:             //TRAPNGT.L #<data>                               |A|--2346|-|-***-|-----|          |0101_111_111_111_011-{data}  [TRAPLE.L #<data>]
  1908:             //TRAPLE                                          |-|--2346|-|-***-|-----|          |0101_111_111_111_100
  1909:             //TPLE                                            |A|--2346|-|-***-|-----|          |0101_111_111_111_100 [TRAPLE]
  1910:             //TPNGT                                           |A|--2346|-|-***-|-----|          |0101_111_111_111_100 [TRAPLE]
  1911:             //TRAPNGT                                         |A|--2346|-|-***-|-----|          |0101_111_111_111_100 [TRAPLE]
  1912:           case 0b0101_111_111:
  1913:             irpSle ();
  1914:             break irpSwitch;
  1915: 
  1916:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1917:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1918:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1919:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1920:             //BRA.W <label>                                   |-|012346|-|-----|-----|          |0110_000_000_000_000-{offset}
  1921:             //JBRA.W <label>                                  |A|012346|-|-----|-----|          |0110_000_000_000_000-{offset}        [BRA.W <label>]
  1922:             //BRA.S <label>                                   |-|012346|-|-----|-----|          |0110_000_000_sss_sss (s is not equal to 0)
  1923:             //JBRA.S <label>                                  |A|012346|-|-----|-----|          |0110_000_000_sss_sss (s is not equal to 0)   [BRA.S <label>]
  1924:           case 0b0110_000_000:
  1925:             irpBrasw ();
  1926:             break irpSwitch;
  1927: 
  1928:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1929:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1930:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1931:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1932:             //BRA.S <label>                                   |-|012346|-|-----|-----|          |0110_000_001_sss_sss
  1933:             //JBRA.S <label>                                  |A|012346|-|-----|-----|          |0110_000_001_sss_sss [BRA.S <label>]
  1934:           case 0b0110_000_001:
  1935:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1936:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1937:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1938:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1939:             //BRA.S <label>                                   |-|012346|-|-----|-----|          |0110_000_010_sss_sss
  1940:             //JBRA.S <label>                                  |A|012346|-|-----|-----|          |0110_000_010_sss_sss [BRA.S <label>]
  1941:           case 0b0110_000_010:
  1942:             irpBras ();
  1943:             break irpSwitch;
  1944: 
  1945:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1946:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1947:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1948:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1949:             //BRA.S <label>                                   |-|--2346|-|-----|-----|          |0110_000_011_sss_sss (s is not equal to 63)
  1950:             //JBRA.S <label>                                  |A|--2346|-|-----|-----|          |0110_000_011_sss_sss (s is not equal to 63)  [BRA.S <label>]
  1951:             //BRA.L <label>                                   |-|--2346|-|-----|-----|          |0110_000_011_111_111-{offset}
  1952:           case 0b0110_000_011:
  1953:             irpBrasl ();
  1954:             break irpSwitch;
  1955: 
  1956:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1957:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1958:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1959:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1960:             //BSR.W <label>                                   |-|012346|-|-----|-----|          |0110_000_100_000_000-{offset}
  1961:             //JBSR.W <label>                                  |A|012346|-|-----|-----|          |0110_000_100_000_000-{offset}        [BSR.W <label>]
  1962:             //BSR.S <label>                                   |-|012346|-|-----|-----|          |0110_000_100_sss_sss (s is not equal to 0)
  1963:             //JBSR.S <label>                                  |A|012346|-|-----|-----|          |0110_000_100_sss_sss (s is not equal to 0)   [BSR.S <label>]
  1964:           case 0b0110_000_100:
  1965:             irpBsrsw ();
  1966:             break irpSwitch;
  1967: 
  1968:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1969:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1970:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1971:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1972:             //BSR.S <label>                                   |-|012346|-|-----|-----|          |0110_000_101_sss_sss
  1973:             //JBSR.S <label>                                  |A|012346|-|-----|-----|          |0110_000_101_sss_sss [BSR.S <label>]
  1974:           case 0b0110_000_101:
  1975:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1976:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1977:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1978:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1979:             //BSR.S <label>                                   |-|012346|-|-----|-----|          |0110_000_110_sss_sss
  1980:             //JBSR.S <label>                                  |A|012346|-|-----|-----|          |0110_000_110_sss_sss [BSR.S <label>]
  1981:           case 0b0110_000_110:
  1982:             irpBsrs ();
  1983:             break irpSwitch;
  1984: 
  1985:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1986:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1987:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1988:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1989:             //BSR.S <label>                                   |-|--2346|-|-----|-----|          |0110_000_111_sss_sss (s is not equal to 63)
  1990:             //JBSR.S <label>                                  |A|--2346|-|-----|-----|          |0110_000_111_sss_sss (s is not equal to 63)  [BSR.S <label>]
  1991:             //BSR.L <label>                                   |-|--2346|-|-----|-----|          |0110_000_111_111_111-{offset}
  1992:           case 0b0110_000_111:
  1993:             irpBsrsl ();
  1994:             break irpSwitch;
  1995: 
  1996:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  1997:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  1998:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  1999:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2000:             //BHI.W <label>                                   |-|012346|-|--*-*|-----|          |0110_001_000_000_000-{offset}
  2001:             //BNLS.W <label>                                  |A|012346|-|--*-*|-----|          |0110_001_000_000_000-{offset}        [BHI.W <label>]
  2002:             //JBHI.W <label>                                  |A|012346|-|--*-*|-----|          |0110_001_000_000_000-{offset}        [BHI.W <label>]
  2003:             //JBNLS.W <label>                                 |A|012346|-|--*-*|-----|          |0110_001_000_000_000-{offset}        [BHI.W <label>]
  2004:             //BHI.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_000_sss_sss (s is not equal to 0)
  2005:             //BNLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_000_sss_sss (s is not equal to 0)   [BHI.S <label>]
  2006:             //JBHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_000_sss_sss (s is not equal to 0)   [BHI.S <label>]
  2007:             //JBNLS.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_000_sss_sss (s is not equal to 0)   [BHI.S <label>]
  2008:             //JBLS.L <label>                                  |A|012346|-|--*-*|-----|          |0110_001_000_000_110-0100111011111001-{address}      [BHI.S (*)+8;JMP <label>]
  2009:             //JBNHI.L <label>                                 |A|012346|-|--*-*|-----|          |0110_001_000_000_110-0100111011111001-{address}      [BHI.S (*)+8;JMP <label>]
  2010:           case 0b0110_001_000:
  2011:             irpBhisw ();
  2012:             break irpSwitch;
  2013: 
  2014:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2015:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2016:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2017:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2018:             //BHI.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_001_sss_sss
  2019:             //BNLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_001_sss_sss [BHI.S <label>]
  2020:             //JBHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_001_sss_sss [BHI.S <label>]
  2021:             //JBNLS.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_001_sss_sss [BHI.S <label>]
  2022:           case 0b0110_001_001:
  2023:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2024:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2025:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2026:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2027:             //BHI.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_010_sss_sss
  2028:             //BNLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_010_sss_sss [BHI.S <label>]
  2029:             //JBHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_010_sss_sss [BHI.S <label>]
  2030:             //JBNLS.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_010_sss_sss [BHI.S <label>]
  2031:           case 0b0110_001_010:
  2032:             irpBhis ();
  2033:             break irpSwitch;
  2034: 
  2035:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2036:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2037:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2038:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2039:             //BHI.S <label>                                   |-|--2346|-|--*-*|-----|          |0110_001_011_sss_sss (s is not equal to 63)
  2040:             //BNLS.S <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_011_sss_sss (s is not equal to 63)  [BHI.S <label>]
  2041:             //JBHI.S <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_011_sss_sss (s is not equal to 63)  [BHI.S <label>]
  2042:             //JBNLS.S <label>                                 |A|--2346|-|--*-*|-----|          |0110_001_011_sss_sss (s is not equal to 63)  [BHI.S <label>]
  2043:             //BHI.L <label>                                   |-|--2346|-|--*-*|-----|          |0110_001_011_111_111-{offset}
  2044:             //BNLS.L <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_011_111_111-{offset}        [BHI.L <label>]
  2045:           case 0b0110_001_011:
  2046:             irpBhisl ();
  2047:             break irpSwitch;
  2048: 
  2049:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2050:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2051:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2052:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2053:             //BLS.W <label>                                   |-|012346|-|--*-*|-----|          |0110_001_100_000_000-{offset}
  2054:             //BNHI.W <label>                                  |A|012346|-|--*-*|-----|          |0110_001_100_000_000-{offset}        [BLS.W <label>]
  2055:             //JBLS.W <label>                                  |A|012346|-|--*-*|-----|          |0110_001_100_000_000-{offset}        [BLS.W <label>]
  2056:             //JBNHI.W <label>                                 |A|012346|-|--*-*|-----|          |0110_001_100_000_000-{offset}        [BLS.W <label>]
  2057:             //BLS.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_100_sss_sss (s is not equal to 0)
  2058:             //BNHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_100_sss_sss (s is not equal to 0)   [BLS.S <label>]
  2059:             //JBLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_100_sss_sss (s is not equal to 0)   [BLS.S <label>]
  2060:             //JBNHI.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_100_sss_sss (s is not equal to 0)   [BLS.S <label>]
  2061:             //JBHI.L <label>                                  |A|012346|-|--*-*|-----|          |0110_001_100_000_110-0100111011111001-{address}      [BLS.S (*)+8;JMP <label>]
  2062:             //JBNLS.L <label>                                 |A|012346|-|--*-*|-----|          |0110_001_100_000_110-0100111011111001-{address}      [BLS.S (*)+8;JMP <label>]
  2063:           case 0b0110_001_100:
  2064:             irpBlssw ();
  2065:             break irpSwitch;
  2066: 
  2067:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2068:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2069:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2070:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2071:             //BLS.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_101_sss_sss
  2072:             //BNHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_101_sss_sss [BLS.S <label>]
  2073:             //JBLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_101_sss_sss [BLS.S <label>]
  2074:             //JBNHI.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_101_sss_sss [BLS.S <label>]
  2075:           case 0b0110_001_101:
  2076:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2077:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2078:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2079:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2080:             //BLS.S <label>                                   |-|012346|-|--*-*|-----|          |0110_001_110_sss_sss
  2081:             //BNHI.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_110_sss_sss [BLS.S <label>]
  2082:             //JBLS.S <label>                                  |A|012346|-|--*-*|-----|          |0110_001_110_sss_sss [BLS.S <label>]
  2083:             //JBNHI.S <label>                                 |A|012346|-|--*-*|-----|          |0110_001_110_sss_sss [BLS.S <label>]
  2084:           case 0b0110_001_110:
  2085:             irpBlss ();
  2086:             break irpSwitch;
  2087: 
  2088:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2089:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2090:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2091:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2092:             //BLS.S <label>                                   |-|--2346|-|--*-*|-----|          |0110_001_111_sss_sss (s is not equal to 63)
  2093:             //BNHI.S <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_111_sss_sss (s is not equal to 63)  [BLS.S <label>]
  2094:             //JBLS.S <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_111_sss_sss (s is not equal to 63)  [BLS.S <label>]
  2095:             //JBNHI.S <label>                                 |A|--2346|-|--*-*|-----|          |0110_001_111_sss_sss (s is not equal to 63)  [BLS.S <label>]
  2096:             //BLS.L <label>                                   |-|--2346|-|--*-*|-----|          |0110_001_111_111_111-{offset}
  2097:             //BNHI.L <label>                                  |A|--2346|-|--*-*|-----|          |0110_001_111_111_111-{offset}        [BLS.L <label>]
  2098:           case 0b0110_001_111:
  2099:             irpBlssl ();
  2100:             break irpSwitch;
  2101: 
  2102:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2103:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2104:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2105:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2106:             //BCC.W <label>                                   |-|012346|-|----*|-----|          |0110_010_000_000_000-{offset}
  2107:             //BHS.W <label>                                   |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2108:             //BNCS.W <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2109:             //BNLO.W <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2110:             //JBCC.W <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2111:             //JBHS.W <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2112:             //JBNCS.W <label>                                 |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2113:             //JBNLO.W <label>                                 |A|012346|-|----*|-----|          |0110_010_000_000_000-{offset}        [BCC.W <label>]
  2114:             //BCC.S <label>                                   |-|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)
  2115:             //BHS.S <label>                                   |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2116:             //BNCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2117:             //BNLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2118:             //JBCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2119:             //JBHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2120:             //JBNCS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2121:             //JBNLO.S <label>                                 |A|012346|-|----*|-----|          |0110_010_000_sss_sss (s is not equal to 0)   [BCC.S <label>]
  2122:             //JBCS.L <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_110-0100111011111001-{address}      [BCC.S (*)+8;JMP <label>]
  2123:             //JBLO.L <label>                                  |A|012346|-|----*|-----|          |0110_010_000_000_110-0100111011111001-{address}      [BCC.S (*)+8;JMP <label>]
  2124:             //JBNCC.L <label>                                 |A|012346|-|----*|-----|          |0110_010_000_000_110-0100111011111001-{address}      [BCC.S (*)+8;JMP <label>]
  2125:             //JBNHS.L <label>                                 |A|012346|-|----*|-----|          |0110_010_000_000_110-0100111011111001-{address}      [BCC.S (*)+8;JMP <label>]
  2126:           case 0b0110_010_000:
  2127:             irpBhssw ();
  2128:             break irpSwitch;
  2129: 
  2130:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2131:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2132:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2133:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2134:             //BCC.S <label>                                   |-|012346|-|----*|-----|          |0110_010_001_sss_sss
  2135:             //BHS.S <label>                                   |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2136:             //BNCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2137:             //BNLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2138:             //JBCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2139:             //JBHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2140:             //JBNCS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2141:             //JBNLO.S <label>                                 |A|012346|-|----*|-----|          |0110_010_001_sss_sss [BCC.S <label>]
  2142:           case 0b0110_010_001:
  2143:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2144:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2145:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2146:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2147:             //BCC.S <label>                                   |-|012346|-|----*|-----|          |0110_010_010_sss_sss
  2148:             //BHS.S <label>                                   |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2149:             //BNCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2150:             //BNLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2151:             //JBCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2152:             //JBHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2153:             //JBNCS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2154:             //JBNLO.S <label>                                 |A|012346|-|----*|-----|          |0110_010_010_sss_sss [BCC.S <label>]
  2155:           case 0b0110_010_010:
  2156:             irpBhss ();
  2157:             break irpSwitch;
  2158: 
  2159:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2160:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2161:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2162:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2163:             //BCC.S <label>                                   |-|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)
  2164:             //BHS.S <label>                                   |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2165:             //BNCS.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2166:             //BNLO.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2167:             //JBCC.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2168:             //JBHS.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2169:             //JBNCS.S <label>                                 |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2170:             //JBNLO.S <label>                                 |A|--2346|-|----*|-----|          |0110_010_011_sss_sss (s is not equal to 63)  [BCC.S <label>]
  2171:             //BCC.L <label>                                   |-|--2346|-|----*|-----|          |0110_010_011_111_111-{offset}
  2172:             //BHS.L <label>                                   |A|--2346|-|----*|-----|          |0110_010_011_111_111-{offset}        [BCC.L <label>]
  2173:             //BNCS.L <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_111_111-{offset}        [BCC.L <label>]
  2174:             //BNLO.L <label>                                  |A|--2346|-|----*|-----|          |0110_010_011_111_111-{offset}        [BCC.L <label>]
  2175:           case 0b0110_010_011:
  2176:             irpBhssl ();
  2177:             break irpSwitch;
  2178: 
  2179:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2180:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2181:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2182:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2183:             //BCS.W <label>                                   |-|012346|-|----*|-----|          |0110_010_100_000_000-{offset}
  2184:             //BLO.W <label>                                   |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2185:             //BNCC.W <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2186:             //BNHS.W <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2187:             //JBCS.W <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2188:             //JBLO.W <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2189:             //JBNCC.W <label>                                 |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2190:             //JBNHS.W <label>                                 |A|012346|-|----*|-----|          |0110_010_100_000_000-{offset}        [BCS.W <label>]
  2191:             //BCS.S <label>                                   |-|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)
  2192:             //BLO.S <label>                                   |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2193:             //BNCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2194:             //BNHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2195:             //JBCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2196:             //JBLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2197:             //JBNCC.S <label>                                 |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2198:             //JBNHS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_100_sss_sss (s is not equal to 0)   [BCS.S <label>]
  2199:             //JBCC.L <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_110-0100111011111001-{address}      [BCS.S (*)+8;JMP <label>]
  2200:             //JBHS.L <label>                                  |A|012346|-|----*|-----|          |0110_010_100_000_110-0100111011111001-{address}      [BCS.S (*)+8;JMP <label>]
  2201:             //JBNCS.L <label>                                 |A|012346|-|----*|-----|          |0110_010_100_000_110-0100111011111001-{address}      [BCS.S (*)+8;JMP <label>]
  2202:             //JBNLO.L <label>                                 |A|012346|-|----*|-----|          |0110_010_100_000_110-0100111011111001-{address}      [BCS.S (*)+8;JMP <label>]
  2203:           case 0b0110_010_100:
  2204:             irpBlosw ();
  2205:             break irpSwitch;
  2206: 
  2207:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2208:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2209:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2210:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2211:             //BCS.S <label>                                   |-|012346|-|----*|-----|          |0110_010_101_sss_sss
  2212:             //BLO.S <label>                                   |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2213:             //BNCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2214:             //BNHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2215:             //JBCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2216:             //JBLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2217:             //JBNCC.S <label>                                 |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2218:             //JBNHS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_101_sss_sss [BCS.S <label>]
  2219:           case 0b0110_010_101:
  2220:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2221:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2222:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2223:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2224:             //BCS.S <label>                                   |-|012346|-|----*|-----|          |0110_010_110_sss_sss
  2225:             //BLO.S <label>                                   |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2226:             //BNCC.S <label>                                  |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2227:             //BNHS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2228:             //JBCS.S <label>                                  |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2229:             //JBLO.S <label>                                  |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2230:             //JBNCC.S <label>                                 |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2231:             //JBNHS.S <label>                                 |A|012346|-|----*|-----|          |0110_010_110_sss_sss [BCS.S <label>]
  2232:           case 0b0110_010_110:
  2233:             irpBlos ();
  2234:             break irpSwitch;
  2235: 
  2236:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2237:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2238:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2239:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2240:             //BCS.S <label>                                   |-|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)
  2241:             //BLO.S <label>                                   |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2242:             //BNCC.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2243:             //BNHS.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2244:             //JBCS.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2245:             //JBLO.S <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2246:             //JBNCC.S <label>                                 |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2247:             //JBNHS.S <label>                                 |A|--2346|-|----*|-----|          |0110_010_111_sss_sss (s is not equal to 63)  [BCS.S <label>]
  2248:             //BCS.L <label>                                   |-|--2346|-|----*|-----|          |0110_010_111_111_111-{offset}
  2249:             //BLO.L <label>                                   |A|--2346|-|----*|-----|          |0110_010_111_111_111-{offset}        [BCS.L <label>]
  2250:             //BNCC.L <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_111_111-{offset}        [BCS.L <label>]
  2251:             //BNHS.L <label>                                  |A|--2346|-|----*|-----|          |0110_010_111_111_111-{offset}        [BCS.L <label>]
  2252:           case 0b0110_010_111:
  2253:             irpBlosl ();
  2254:             break irpSwitch;
  2255: 
  2256:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2257:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2258:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2259:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2260:             //BNE.W <label>                                   |-|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}
  2261:             //BNEQ.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2262:             //BNZ.W <label>                                   |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2263:             //BNZE.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2264:             //JBNE.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2265:             //JBNEQ.W <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2266:             //JBNZ.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2267:             //JBNZE.W <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_000-{offset}        [BNE.W <label>]
  2268:             //BNE.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)
  2269:             //BNEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2270:             //BNZ.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2271:             //BNZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2272:             //JBNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2273:             //JBNEQ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2274:             //JBNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2275:             //JBNZE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_sss_sss (s is not equal to 0)   [BNE.S <label>]
  2276:             //JBEQ.L <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2277:             //JBNEQ.L <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2278:             //JBNNE.L <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2279:             //JBNNZ.L <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2280:             //JBNZ.L <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2281:             //JBNZE.L <label>                                 |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2282:             //JBZE.L <label>                                  |A|012346|-|--*--|-----|          |0110_011_000_000_110-0100111011111001-{address}      [BNE.S (*)+8;JMP <label>]
  2283:           case 0b0110_011_000:
  2284:             irpBnesw ();
  2285:             break irpSwitch;
  2286: 
  2287:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2288:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2289:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2290:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2291:             //BNE.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_001_sss_sss
  2292:             //BNEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2293:             //BNZ.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2294:             //BNZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2295:             //JBNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2296:             //JBNEQ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2297:             //JBNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2298:             //JBNZE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_001_sss_sss [BNE.S <label>]
  2299:           case 0b0110_011_001:
  2300:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2301:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2302:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2303:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2304:             //BNE.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_010_sss_sss
  2305:             //BNEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2306:             //BNZ.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2307:             //BNZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2308:             //JBNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2309:             //JBNEQ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2310:             //JBNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2311:             //JBNZE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_010_sss_sss [BNE.S <label>]
  2312:           case 0b0110_011_010:
  2313:             irpBnes ();
  2314:             break irpSwitch;
  2315: 
  2316:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2317:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2318:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2319:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2320:             //BNE.S <label>                                   |-|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)
  2321:             //BNEQ.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2322:             //BNZ.S <label>                                   |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2323:             //BNZE.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2324:             //JBNE.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2325:             //JBNEQ.S <label>                                 |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2326:             //JBNZ.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2327:             //JBNZE.S <label>                                 |A|--2346|-|--*--|-----|          |0110_011_011_sss_sss (s is not equal to 63)  [BNE.S <label>]
  2328:             //BNE.L <label>                                   |-|--2346|-|--*--|-----|          |0110_011_011_111_111-{offset}
  2329:             //BNEQ.L <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_111_111-{offset}        [BNE.L <label>]
  2330:             //BNZ.L <label>                                   |A|--2346|-|--*--|-----|          |0110_011_011_111_111-{offset}        [BNE.L <label>]
  2331:             //BNZE.L <label>                                  |A|--2346|-|--*--|-----|          |0110_011_011_111_111-{offset}        [BNE.L <label>]
  2332:           case 0b0110_011_011:
  2333:             irpBnesl ();
  2334:             break irpSwitch;
  2335: 
  2336:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2337:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2338:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2339:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2340:             //BEQ.W <label>                                   |-|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}
  2341:             //BNNE.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2342:             //BNNZ.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2343:             //BZE.W <label>                                   |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2344:             //JBEQ.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2345:             //JBNNE.W <label>                                 |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2346:             //JBNNZ.W <label>                                 |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2347:             //JBZE.W <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_000_000-{offset}        [BEQ.W <label>]
  2348:             //BEQ.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)
  2349:             //BNNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2350:             //BNNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2351:             //BZE.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2352:             //JBEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2353:             //JBNNE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2354:             //JBNNZ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2355:             //JBZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_sss_sss (s is not equal to 0)   [BEQ.S <label>]
  2356:             //JBNE.L <label>                                  |A|012346|-|--*--|-----|          |0110_011_100_000_110-0100111011111001-{address}      [BEQ.S (*)+8;JMP <label>]
  2357:           case 0b0110_011_100:
  2358:             irpBeqsw ();
  2359:             break irpSwitch;
  2360: 
  2361:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2362:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2363:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2364:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2365:             //BEQ.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_101_sss_sss
  2366:             //BNNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2367:             //BNNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2368:             //BZE.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2369:             //JBEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2370:             //JBNNE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2371:             //JBNNZ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2372:             //JBZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_101_sss_sss [BEQ.S <label>]
  2373:           case 0b0110_011_101:
  2374:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2375:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2376:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2377:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2378:             //BEQ.S <label>                                   |-|012346|-|--*--|-----|          |0110_011_110_sss_sss
  2379:             //BNNE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2380:             //BNNZ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2381:             //BZE.S <label>                                   |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2382:             //JBEQ.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2383:             //JBNNE.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2384:             //JBNNZ.S <label>                                 |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2385:             //JBZE.S <label>                                  |A|012346|-|--*--|-----|          |0110_011_110_sss_sss [BEQ.S <label>]
  2386:           case 0b0110_011_110:
  2387:             irpBeqs ();
  2388:             break irpSwitch;
  2389: 
  2390:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2391:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2392:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2393:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2394:             //BEQ.S <label>                                   |-|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)
  2395:             //BNNE.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2396:             //BNNZ.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2397:             //BZE.S <label>                                   |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2398:             //JBEQ.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2399:             //JBNNE.S <label>                                 |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2400:             //JBNNZ.S <label>                                 |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2401:             //JBZE.S <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_sss_sss (s is not equal to 63)  [BEQ.S <label>]
  2402:             //BEQ.L <label>                                   |-|--2346|-|--*--|-----|          |0110_011_111_111_111-{offset}
  2403:             //BNNE.L <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_111_111-{offset}        [BEQ.L <label>]
  2404:             //BNNZ.L <label>                                  |A|--2346|-|--*--|-----|          |0110_011_111_111_111-{offset}        [BEQ.L <label>]
  2405:             //BZE.L <label>                                   |A|--2346|-|--*--|-----|          |0110_011_111_111_111-{offset}        [BEQ.L <label>]
  2406:           case 0b0110_011_111:
  2407:             irpBeqsl ();
  2408:             break irpSwitch;
  2409: 
  2410:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2411:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2412:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2413:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2414:             //BVC.W <label>                                   |-|012346|-|---*-|-----|          |0110_100_000_000_000-{offset}
  2415:             //BNVS.W <label>                                  |A|012346|-|---*-|-----|          |0110_100_000_000_000-{offset}        [BVC.W <label>]
  2416:             //JBNVS.W <label>                                 |A|012346|-|---*-|-----|          |0110_100_000_000_000-{offset}        [BVC.W <label>]
  2417:             //JBVC.W <label>                                  |A|012346|-|---*-|-----|          |0110_100_000_000_000-{offset}        [BVC.W <label>]
  2418:             //BVC.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_000_sss_sss (s is not equal to 0)
  2419:             //BNVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_000_sss_sss (s is not equal to 0)   [BVC.S <label>]
  2420:             //JBNVS.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_000_sss_sss (s is not equal to 0)   [BVC.S <label>]
  2421:             //JBVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_000_sss_sss (s is not equal to 0)   [BVC.S <label>]
  2422:             //JBNVC.L <label>                                 |A|012346|-|---*-|-----|          |0110_100_000_000_110-0100111011111001-{address}      [BVC.S (*)+8;JMP <label>]
  2423:             //JBVS.L <label>                                  |A|012346|-|---*-|-----|          |0110_100_000_000_110-0100111011111001-{address}      [BVC.S (*)+8;JMP <label>]
  2424:           case 0b0110_100_000:
  2425:             irpBvcsw ();
  2426:             break irpSwitch;
  2427: 
  2428:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2429:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2430:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2431:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2432:             //BVC.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_001_sss_sss
  2433:             //BNVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_001_sss_sss [BVC.S <label>]
  2434:             //JBNVS.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_001_sss_sss [BVC.S <label>]
  2435:             //JBVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_001_sss_sss [BVC.S <label>]
  2436:           case 0b0110_100_001:
  2437:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2438:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2439:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2440:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2441:             //BVC.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_010_sss_sss
  2442:             //BNVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_010_sss_sss [BVC.S <label>]
  2443:             //JBNVS.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_010_sss_sss [BVC.S <label>]
  2444:             //JBVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_010_sss_sss [BVC.S <label>]
  2445:           case 0b0110_100_010:
  2446:             irpBvcs ();
  2447:             break irpSwitch;
  2448: 
  2449:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2450:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2451:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2452:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2453:             //BVC.S <label>                                   |-|--2346|-|---*-|-----|          |0110_100_011_sss_sss (s is not equal to 63)
  2454:             //BNVS.S <label>                                  |A|--2346|-|---*-|-----|          |0110_100_011_sss_sss (s is not equal to 63)  [BVC.S <label>]
  2455:             //JBNVS.S <label>                                 |A|--2346|-|---*-|-----|          |0110_100_011_sss_sss (s is not equal to 63)  [BVC.S <label>]
  2456:             //JBVC.S <label>                                  |A|--2346|-|---*-|-----|          |0110_100_011_sss_sss (s is not equal to 63)  [BVC.S <label>]
  2457:             //BVC.L <label>                                   |-|--2346|-|---*-|-----|          |0110_100_011_111_111-{offset}
  2458:             //BNVS.L <label>                                  |A|--2346|-|---*-|-----|          |0110_100_011_111_111-{offset}        [BVC.L <label>]
  2459:           case 0b0110_100_011:
  2460:             irpBvcsl ();
  2461:             break irpSwitch;
  2462: 
  2463:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2464:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2465:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2466:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2467:             //BVS.W <label>                                   |-|012346|-|---*-|-----|          |0110_100_100_000_000-{offset}
  2468:             //BNVC.W <label>                                  |A|012346|-|---*-|-----|          |0110_100_100_000_000-{offset}        [BVS.W <label>]
  2469:             //JBNVC.W <label>                                 |A|012346|-|---*-|-----|          |0110_100_100_000_000-{offset}        [BVS.W <label>]
  2470:             //JBVS.W <label>                                  |A|012346|-|---*-|-----|          |0110_100_100_000_000-{offset}        [BVS.W <label>]
  2471:             //BVS.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_100_sss_sss (s is not equal to 0)
  2472:             //BNVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_100_sss_sss (s is not equal to 0)   [BVS.S <label>]
  2473:             //JBNVC.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_100_sss_sss (s is not equal to 0)   [BVS.S <label>]
  2474:             //JBVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_100_sss_sss (s is not equal to 0)   [BVS.S <label>]
  2475:             //JBNVS.L <label>                                 |A|012346|-|---*-|-----|          |0110_100_100_000_110-0100111011111001-{address}      [BVS.S (*)+8;JMP <label>]
  2476:             //JBVC.L <label>                                  |A|012346|-|---*-|-----|          |0110_100_100_000_110-0100111011111001-{address}      [BVS.S (*)+8;JMP <label>]
  2477:           case 0b0110_100_100:
  2478:             irpBvssw ();
  2479:             break irpSwitch;
  2480: 
  2481:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2482:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2483:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2484:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2485:             //BVS.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_101_sss_sss
  2486:             //BNVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_101_sss_sss [BVS.S <label>]
  2487:             //JBNVC.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_101_sss_sss [BVS.S <label>]
  2488:             //JBVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_101_sss_sss [BVS.S <label>]
  2489:           case 0b0110_100_101:
  2490:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2491:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2492:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2493:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2494:             //BVS.S <label>                                   |-|012346|-|---*-|-----|          |0110_100_110_sss_sss
  2495:             //BNVC.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_110_sss_sss [BVS.S <label>]
  2496:             //JBNVC.S <label>                                 |A|012346|-|---*-|-----|          |0110_100_110_sss_sss [BVS.S <label>]
  2497:             //JBVS.S <label>                                  |A|012346|-|---*-|-----|          |0110_100_110_sss_sss [BVS.S <label>]
  2498:           case 0b0110_100_110:
  2499:             irpBvss ();
  2500:             break irpSwitch;
  2501: 
  2502:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2503:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2504:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2505:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2506:             //BVS.S <label>                                   |-|--2346|-|---*-|-----|          |0110_100_111_sss_sss (s is not equal to 63)
  2507:             //BNVC.S <label>                                  |A|--2346|-|---*-|-----|          |0110_100_111_sss_sss (s is not equal to 63)  [BVS.S <label>]
  2508:             //JBNVC.S <label>                                 |A|--2346|-|---*-|-----|          |0110_100_111_sss_sss (s is not equal to 63)  [BVS.S <label>]
  2509:             //JBVS.S <label>                                  |A|--2346|-|---*-|-----|          |0110_100_111_sss_sss (s is not equal to 63)  [BVS.S <label>]
  2510:             //BVS.L <label>                                   |-|--2346|-|---*-|-----|          |0110_100_111_111_111-{offset}
  2511:             //BNVC.L <label>                                  |A|--2346|-|---*-|-----|          |0110_100_111_111_111-{offset}        [BVS.L <label>]
  2512:           case 0b0110_100_111:
  2513:             irpBvssl ();
  2514:             break irpSwitch;
  2515: 
  2516:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2517:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2518:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2519:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2520:             //BPL.W <label>                                   |-|012346|-|-*---|-----|          |0110_101_000_000_000-{offset}
  2521:             //BNMI.W <label>                                  |A|012346|-|-*---|-----|          |0110_101_000_000_000-{offset}        [BPL.W <label>]
  2522:             //JBNMI.W <label>                                 |A|012346|-|-*---|-----|          |0110_101_000_000_000-{offset}        [BPL.W <label>]
  2523:             //JBPL.W <label>                                  |A|012346|-|-*---|-----|          |0110_101_000_000_000-{offset}        [BPL.W <label>]
  2524:             //BPL.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_000_sss_sss (s is not equal to 0)
  2525:             //BNMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_000_sss_sss (s is not equal to 0)   [BPL.S <label>]
  2526:             //JBNMI.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_000_sss_sss (s is not equal to 0)   [BPL.S <label>]
  2527:             //JBPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_000_sss_sss (s is not equal to 0)   [BPL.S <label>]
  2528:             //JBMI.L <label>                                  |A|012346|-|-*---|-----|          |0110_101_000_000_110-0100111011111001-{address}      [BPL.S (*)+8;JMP <label>]
  2529:             //JBNPL.L <label>                                 |A|012346|-|-*---|-----|          |0110_101_000_000_110-0100111011111001-{address}      [BPL.S (*)+8;JMP <label>]
  2530:           case 0b0110_101_000:
  2531:             irpBplsw ();
  2532:             break irpSwitch;
  2533: 
  2534:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2535:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2536:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2537:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2538:             //BPL.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_001_sss_sss
  2539:             //BNMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_001_sss_sss [BPL.S <label>]
  2540:             //JBNMI.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_001_sss_sss [BPL.S <label>]
  2541:             //JBPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_001_sss_sss [BPL.S <label>]
  2542:           case 0b0110_101_001:
  2543:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2544:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2545:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2546:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2547:             //BPL.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_010_sss_sss
  2548:             //BNMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_010_sss_sss [BPL.S <label>]
  2549:             //JBNMI.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_010_sss_sss [BPL.S <label>]
  2550:             //JBPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_010_sss_sss [BPL.S <label>]
  2551:           case 0b0110_101_010:
  2552:             irpBpls ();
  2553:             break irpSwitch;
  2554: 
  2555:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2556:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2557:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2558:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2559:             //BPL.S <label>                                   |-|--2346|-|-*---|-----|          |0110_101_011_sss_sss (s is not equal to 63)
  2560:             //BNMI.S <label>                                  |A|--2346|-|-*---|-----|          |0110_101_011_sss_sss (s is not equal to 63)  [BPL.S <label>]
  2561:             //JBNMI.S <label>                                 |A|--2346|-|-*---|-----|          |0110_101_011_sss_sss (s is not equal to 63)  [BPL.S <label>]
  2562:             //JBPL.S <label>                                  |A|--2346|-|-*---|-----|          |0110_101_011_sss_sss (s is not equal to 63)  [BPL.S <label>]
  2563:             //BPL.L <label>                                   |-|--2346|-|-*---|-----|          |0110_101_011_111_111-{offset}
  2564:             //BNMI.L <label>                                  |A|--2346|-|-*---|-----|          |0110_101_011_111_111-{offset}        [BPL.L <label>]
  2565:           case 0b0110_101_011:
  2566:             irpBplsl ();
  2567:             break irpSwitch;
  2568: 
  2569:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2570:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2571:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2572:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2573:             //BMI.W <label>                                   |-|012346|-|-*---|-----|          |0110_101_100_000_000-{offset}
  2574:             //BNPL.W <label>                                  |A|012346|-|-*---|-----|          |0110_101_100_000_000-{offset}        [BMI.W <label>]
  2575:             //JBMI.W <label>                                  |A|012346|-|-*---|-----|          |0110_101_100_000_000-{offset}        [BMI.W <label>]
  2576:             //JBNPL.W <label>                                 |A|012346|-|-*---|-----|          |0110_101_100_000_000-{offset}        [BMI.W <label>]
  2577:             //BMI.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_100_sss_sss (s is not equal to 0)
  2578:             //BNPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_100_sss_sss (s is not equal to 0)   [BMI.S <label>]
  2579:             //JBMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_100_sss_sss (s is not equal to 0)   [BMI.S <label>]
  2580:             //JBNPL.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_100_sss_sss (s is not equal to 0)   [BMI.S <label>]
  2581:             //JBNMI.L <label>                                 |A|012346|-|-*---|-----|          |0110_101_100_000_110-0100111011111001-{address}      [BMI.S (*)+8;JMP <label>]
  2582:             //JBPL.L <label>                                  |A|012346|-|-*---|-----|          |0110_101_100_000_110-0100111011111001-{address}      [BMI.S (*)+8;JMP <label>]
  2583:           case 0b0110_101_100:
  2584:             irpBmisw ();
  2585:             break irpSwitch;
  2586: 
  2587:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2588:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2589:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2590:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2591:             //BMI.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_101_sss_sss
  2592:             //BNPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_101_sss_sss [BMI.S <label>]
  2593:             //JBMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_101_sss_sss [BMI.S <label>]
  2594:             //JBNPL.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_101_sss_sss [BMI.S <label>]
  2595:           case 0b0110_101_101:
  2596:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2597:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2598:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2599:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2600:             //BMI.S <label>                                   |-|012346|-|-*---|-----|          |0110_101_110_sss_sss
  2601:             //BNPL.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_110_sss_sss [BMI.S <label>]
  2602:             //JBMI.S <label>                                  |A|012346|-|-*---|-----|          |0110_101_110_sss_sss [BMI.S <label>]
  2603:             //JBNPL.S <label>                                 |A|012346|-|-*---|-----|          |0110_101_110_sss_sss [BMI.S <label>]
  2604:           case 0b0110_101_110:
  2605:             irpBmis ();
  2606:             break irpSwitch;
  2607: 
  2608:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2609:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2610:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2611:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2612:             //BMI.S <label>                                   |-|--2346|-|-*---|-----|          |0110_101_111_sss_sss (s is not equal to 63)
  2613:             //BNPL.S <label>                                  |A|--2346|-|-*---|-----|          |0110_101_111_sss_sss (s is not equal to 63)  [BMI.S <label>]
  2614:             //JBMI.S <label>                                  |A|--2346|-|-*---|-----|          |0110_101_111_sss_sss (s is not equal to 63)  [BMI.S <label>]
  2615:             //JBNPL.S <label>                                 |A|--2346|-|-*---|-----|          |0110_101_111_sss_sss (s is not equal to 63)  [BMI.S <label>]
  2616:             //BMI.L <label>                                   |-|--2346|-|-*---|-----|          |0110_101_111_111_111-{offset}
  2617:             //BNPL.L <label>                                  |A|--2346|-|-*---|-----|          |0110_101_111_111_111-{offset}        [BMI.L <label>]
  2618:           case 0b0110_101_111:
  2619:             irpBmisl ();
  2620:             break irpSwitch;
  2621: 
  2622:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2623:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2624:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2625:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2626:             //BGE.W <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_000_000_000-{offset}
  2627:             //BNLT.W <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_000_000_000-{offset}        [BGE.W <label>]
  2628:             //JBGE.W <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_000_000_000-{offset}        [BGE.W <label>]
  2629:             //JBNLT.W <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_000_000_000-{offset}        [BGE.W <label>]
  2630:             //BGE.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_000_sss_sss (s is not equal to 0)
  2631:             //BNLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_000_sss_sss (s is not equal to 0)   [BGE.S <label>]
  2632:             //JBGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_000_sss_sss (s is not equal to 0)   [BGE.S <label>]
  2633:             //JBNLT.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_000_sss_sss (s is not equal to 0)   [BGE.S <label>]
  2634:             //JBLT.L <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_000_000_110-0100111011111001-{address}      [BGE.S (*)+8;JMP <label>]
  2635:             //JBNGE.L <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_000_000_110-0100111011111001-{address}      [BGE.S (*)+8;JMP <label>]
  2636:           case 0b0110_110_000:
  2637:             irpBgesw ();
  2638:             break irpSwitch;
  2639: 
  2640:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2641:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2642:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2643:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2644:             //BGE.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_001_sss_sss
  2645:             //BNLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_001_sss_sss [BGE.S <label>]
  2646:             //JBGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_001_sss_sss [BGE.S <label>]
  2647:             //JBNLT.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_001_sss_sss [BGE.S <label>]
  2648:           case 0b0110_110_001:
  2649:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2650:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2651:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2652:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2653:             //BGE.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_010_sss_sss
  2654:             //BNLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_010_sss_sss [BGE.S <label>]
  2655:             //JBGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_010_sss_sss [BGE.S <label>]
  2656:             //JBNLT.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_010_sss_sss [BGE.S <label>]
  2657:           case 0b0110_110_010:
  2658:             irpBges ();
  2659:             break irpSwitch;
  2660: 
  2661:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2662:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2663:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2664:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2665:             //BGE.S <label>                                   |-|--2346|-|-*-*-|-----|          |0110_110_011_sss_sss (s is not equal to 63)
  2666:             //BNLT.S <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_011_sss_sss (s is not equal to 63)  [BGE.S <label>]
  2667:             //JBGE.S <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_011_sss_sss (s is not equal to 63)  [BGE.S <label>]
  2668:             //JBNLT.S <label>                                 |A|--2346|-|-*-*-|-----|          |0110_110_011_sss_sss (s is not equal to 63)  [BGE.S <label>]
  2669:             //BGE.L <label>                                   |-|--2346|-|-*-*-|-----|          |0110_110_011_111_111-{offset}
  2670:             //BNLT.L <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_011_111_111-{offset}        [BGE.L <label>]
  2671:           case 0b0110_110_011:
  2672:             irpBgesl ();
  2673:             break irpSwitch;
  2674: 
  2675:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2676:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2677:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2678:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2679:             //BLT.W <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_100_000_000-{offset}
  2680:             //BNGE.W <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_100_000_000-{offset}        [BLT.W <label>]
  2681:             //JBLT.W <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_100_000_000-{offset}        [BLT.W <label>]
  2682:             //JBNGE.W <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_100_000_000-{offset}        [BLT.W <label>]
  2683:             //BLT.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_100_sss_sss (s is not equal to 0)
  2684:             //BNGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_100_sss_sss (s is not equal to 0)   [BLT.S <label>]
  2685:             //JBLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_100_sss_sss (s is not equal to 0)   [BLT.S <label>]
  2686:             //JBNGE.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_100_sss_sss (s is not equal to 0)   [BLT.S <label>]
  2687:             //JBGE.L <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_100_000_110-0100111011111001-{address}      [BLT.S (*)+8;JMP <label>]
  2688:             //JBNLT.L <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_100_000_110-0100111011111001-{address}      [BLT.S (*)+8;JMP <label>]
  2689:           case 0b0110_110_100:
  2690:             irpBltsw ();
  2691:             break irpSwitch;
  2692: 
  2693:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2694:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2695:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2696:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2697:             //BLT.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_101_sss_sss
  2698:             //BNGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_101_sss_sss [BLT.S <label>]
  2699:             //JBLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_101_sss_sss [BLT.S <label>]
  2700:             //JBNGE.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_101_sss_sss [BLT.S <label>]
  2701:           case 0b0110_110_101:
  2702:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2703:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2704:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2705:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2706:             //BLT.S <label>                                   |-|012346|-|-*-*-|-----|          |0110_110_110_sss_sss
  2707:             //BNGE.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_110_sss_sss [BLT.S <label>]
  2708:             //JBLT.S <label>                                  |A|012346|-|-*-*-|-----|          |0110_110_110_sss_sss [BLT.S <label>]
  2709:             //JBNGE.S <label>                                 |A|012346|-|-*-*-|-----|          |0110_110_110_sss_sss [BLT.S <label>]
  2710:           case 0b0110_110_110:
  2711:             irpBlts ();
  2712:             break irpSwitch;
  2713: 
  2714:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2715:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2716:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2717:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2718:             //BLT.S <label>                                   |-|--2346|-|-*-*-|-----|          |0110_110_111_sss_sss (s is not equal to 63)
  2719:             //BNGE.S <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_111_sss_sss (s is not equal to 63)  [BLT.S <label>]
  2720:             //JBLT.S <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_111_sss_sss (s is not equal to 63)  [BLT.S <label>]
  2721:             //JBNGE.S <label>                                 |A|--2346|-|-*-*-|-----|          |0110_110_111_sss_sss (s is not equal to 63)  [BLT.S <label>]
  2722:             //BLT.L <label>                                   |-|--2346|-|-*-*-|-----|          |0110_110_111_111_111-{offset}
  2723:             //BNGE.L <label>                                  |A|--2346|-|-*-*-|-----|          |0110_110_111_111_111-{offset}        [BLT.L <label>]
  2724:           case 0b0110_110_111:
  2725:             irpBltsl ();
  2726:             break irpSwitch;
  2727: 
  2728:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2729:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2730:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2731:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2732:             //BGT.W <label>                                   |-|012346|-|-***-|-----|          |0110_111_000_000_000-{offset}
  2733:             //BNLE.W <label>                                  |A|012346|-|-***-|-----|          |0110_111_000_000_000-{offset}        [BGT.W <label>]
  2734:             //JBGT.W <label>                                  |A|012346|-|-***-|-----|          |0110_111_000_000_000-{offset}        [BGT.W <label>]
  2735:             //JBNLE.W <label>                                 |A|012346|-|-***-|-----|          |0110_111_000_000_000-{offset}        [BGT.W <label>]
  2736:             //BGT.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_000_sss_sss (s is not equal to 0)
  2737:             //BNLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_000_sss_sss (s is not equal to 0)   [BGT.S <label>]
  2738:             //JBGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_000_sss_sss (s is not equal to 0)   [BGT.S <label>]
  2739:             //JBNLE.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_000_sss_sss (s is not equal to 0)   [BGT.S <label>]
  2740:             //JBLE.L <label>                                  |A|012346|-|-***-|-----|          |0110_111_000_000_110-0100111011111001-{address}      [BGT.S (*)+8;JMP <label>]
  2741:             //JBNGT.L <label>                                 |A|012346|-|-***-|-----|          |0110_111_000_000_110-0100111011111001-{address}      [BGT.S (*)+8;JMP <label>]
  2742:           case 0b0110_111_000:
  2743:             irpBgtsw ();
  2744:             break irpSwitch;
  2745: 
  2746:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2747:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2748:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2749:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2750:             //BGT.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_001_sss_sss
  2751:             //BNLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_001_sss_sss [BGT.S <label>]
  2752:             //JBGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_001_sss_sss [BGT.S <label>]
  2753:             //JBNLE.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_001_sss_sss [BGT.S <label>]
  2754:           case 0b0110_111_001:
  2755:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2756:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2757:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2758:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2759:             //BGT.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_010_sss_sss
  2760:             //BNLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_010_sss_sss [BGT.S <label>]
  2761:             //JBGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_010_sss_sss [BGT.S <label>]
  2762:             //JBNLE.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_010_sss_sss [BGT.S <label>]
  2763:           case 0b0110_111_010:
  2764:             irpBgts ();
  2765:             break irpSwitch;
  2766: 
  2767:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2768:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2769:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2770:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2771:             //BGT.S <label>                                   |-|--2346|-|-***-|-----|          |0110_111_011_sss_sss (s is not equal to 63)
  2772:             //BNLE.S <label>                                  |A|--2346|-|-***-|-----|          |0110_111_011_sss_sss (s is not equal to 63)  [BGT.S <label>]
  2773:             //JBGT.S <label>                                  |A|--2346|-|-***-|-----|          |0110_111_011_sss_sss (s is not equal to 63)  [BGT.S <label>]
  2774:             //JBNLE.S <label>                                 |A|--2346|-|-***-|-----|          |0110_111_011_sss_sss (s is not equal to 63)  [BGT.S <label>]
  2775:             //BGT.L <label>                                   |-|--2346|-|-***-|-----|          |0110_111_011_111_111-{offset}
  2776:             //BNLE.L <label>                                  |A|--2346|-|-***-|-----|          |0110_111_011_111_111-{offset}        [BGT.L <label>]
  2777:           case 0b0110_111_011:
  2778:             irpBgtsl ();
  2779:             break irpSwitch;
  2780: 
  2781:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2782:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2783:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2784:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2785:             //BLE.W <label>                                   |-|012346|-|-***-|-----|          |0110_111_100_000_000-{offset}
  2786:             //BNGT.W <label>                                  |A|012346|-|-***-|-----|          |0110_111_100_000_000-{offset}        [BLE.W <label>]
  2787:             //JBLE.W <label>                                  |A|012346|-|-***-|-----|          |0110_111_100_000_000-{offset}        [BLE.W <label>]
  2788:             //JBNGT.W <label>                                 |A|012346|-|-***-|-----|          |0110_111_100_000_000-{offset}        [BLE.W <label>]
  2789:             //BLE.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_100_sss_sss (s is not equal to 0)
  2790:             //BNGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_100_sss_sss (s is not equal to 0)   [BLE.S <label>]
  2791:             //JBLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_100_sss_sss (s is not equal to 0)   [BLE.S <label>]
  2792:             //JBNGT.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_100_sss_sss (s is not equal to 0)   [BLE.S <label>]
  2793:             //JBGT.L <label>                                  |A|012346|-|-***-|-----|          |0110_111_100_000_110-0100111011111001-{address}      [BLE.S (*)+8;JMP <label>]
  2794:             //JBNLE.L <label>                                 |A|012346|-|-***-|-----|          |0110_111_100_000_110-0100111011111001-{address}      [BLE.S (*)+8;JMP <label>]
  2795:           case 0b0110_111_100:
  2796:             irpBlesw ();
  2797:             break irpSwitch;
  2798: 
  2799:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2800:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2801:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2802:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2803:             //BLE.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_101_sss_sss
  2804:             //BNGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_101_sss_sss [BLE.S <label>]
  2805:             //JBLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_101_sss_sss [BLE.S <label>]
  2806:             //JBNGT.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_101_sss_sss [BLE.S <label>]
  2807:           case 0b0110_111_101:
  2808:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2809:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2810:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2811:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2812:             //BLE.S <label>                                   |-|012346|-|-***-|-----|          |0110_111_110_sss_sss
  2813:             //BNGT.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_110_sss_sss [BLE.S <label>]
  2814:             //JBLE.S <label>                                  |A|012346|-|-***-|-----|          |0110_111_110_sss_sss [BLE.S <label>]
  2815:             //JBNGT.S <label>                                 |A|012346|-|-***-|-----|          |0110_111_110_sss_sss [BLE.S <label>]
  2816:           case 0b0110_111_110:
  2817:             irpBles ();
  2818:             break irpSwitch;
  2819: 
  2820:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2821:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2822:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2823:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2824:             //BLE.S <label>                                   |-|--2346|-|-***-|-----|          |0110_111_111_sss_sss (s is not equal to 63)
  2825:             //BNGT.S <label>                                  |A|--2346|-|-***-|-----|          |0110_111_111_sss_sss (s is not equal to 63)  [BLE.S <label>]
  2826:             //JBLE.S <label>                                  |A|--2346|-|-***-|-----|          |0110_111_111_sss_sss (s is not equal to 63)  [BLE.S <label>]
  2827:             //JBNGT.S <label>                                 |A|--2346|-|-***-|-----|          |0110_111_111_sss_sss (s is not equal to 63)  [BLE.S <label>]
  2828:             //BLE.L <label>                                   |-|--2346|-|-***-|-----|          |0110_111_111_111_111-{offset}
  2829:             //BNGT.L <label>                                  |A|--2346|-|-***-|-----|          |0110_111_111_111_111-{offset}        [BLE.L <label>]
  2830:           case 0b0110_111_111:
  2831:             irpBlesl ();
  2832:             break irpSwitch;
  2833: 
  2834:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2835:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2836:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2837:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2838:             //IOCS <name>                                     |A|012346|-|UUUUU|UUUUU|          |0111_000_0dd_ddd_ddd-0100111001001111        [MOVEQ.L #<data>,D0;TRAP #15]
  2839:             //MOVEQ.L #<data>,Dq                              |-|012346|-|-UUUU|-**00|          |0111_qqq_0dd_ddd_ddd
  2840:           case 0b0111_000_000:
  2841:           case 0b0111_000_001:
  2842:           case 0b0111_000_010:
  2843:           case 0b0111_000_011:
  2844:           case 0b0111_001_000:
  2845:           case 0b0111_001_001:
  2846:           case 0b0111_001_010:
  2847:           case 0b0111_001_011:
  2848:           case 0b0111_010_000:
  2849:           case 0b0111_010_001:
  2850:           case 0b0111_010_010:
  2851:           case 0b0111_010_011:
  2852:           case 0b0111_011_000:
  2853:           case 0b0111_011_001:
  2854:           case 0b0111_011_010:
  2855:           case 0b0111_011_011:
  2856:           case 0b0111_100_000:
  2857:           case 0b0111_100_001:
  2858:           case 0b0111_100_010:
  2859:           case 0b0111_100_011:
  2860:           case 0b0111_101_000:
  2861:           case 0b0111_101_001:
  2862:           case 0b0111_101_010:
  2863:           case 0b0111_101_011:
  2864:           case 0b0111_110_000:
  2865:           case 0b0111_110_001:
  2866:           case 0b0111_110_010:
  2867:           case 0b0111_110_011:
  2868:           case 0b0111_111_000:
  2869:           case 0b0111_111_001:
  2870:           case 0b0111_111_010:
  2871:           case 0b0111_111_011:
  2872:             irpMoveq ();
  2873:             break irpSwitch;
  2874: 
  2875:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2876:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2877:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2878:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2879:             //MVS.B <ea>,Dq                                   |-|------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_100_mmm_rrr (ISA_B)
  2880:           case 0b0111_000_100:
  2881:           case 0b0111_001_100:
  2882:           case 0b0111_010_100:
  2883:           case 0b0111_011_100:
  2884:           case 0b0111_100_100:
  2885:           case 0b0111_101_100:
  2886:           case 0b0111_110_100:
  2887:           case 0b0111_111_100:
  2888:             irpMvsByte ();
  2889:             break irpSwitch;
  2890: 
  2891:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2892:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2893:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2894:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2895:             //MVS.W <ea>,Dq                                   |-|------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_101_mmm_rrr (ISA_B)
  2896:           case 0b0111_000_101:
  2897:           case 0b0111_001_101:
  2898:           case 0b0111_010_101:
  2899:           case 0b0111_011_101:
  2900:           case 0b0111_100_101:
  2901:           case 0b0111_101_101:
  2902:           case 0b0111_110_101:
  2903:           case 0b0111_111_101:
  2904:             irpMvsWord ();
  2905:             break irpSwitch;
  2906: 
  2907:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2908:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2909:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2910:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2911:             //MVZ.B <ea>,Dq                                   |-|------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_110_mmm_rrr (ISA_B)
  2912:           case 0b0111_000_110:
  2913:           case 0b0111_001_110:
  2914:           case 0b0111_010_110:
  2915:           case 0b0111_011_110:
  2916:           case 0b0111_100_110:
  2917:           case 0b0111_101_110:
  2918:           case 0b0111_110_110:
  2919:           case 0b0111_111_110:
  2920:             irpMvzByte ();
  2921:             break irpSwitch;
  2922: 
  2923:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2924:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2925:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2926:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2927:             //MVZ.W <ea>,Dq                                   |-|------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_111_mmm_rrr (ISA_B)
  2928:           case 0b0111_000_111:
  2929:           case 0b0111_001_111:
  2930:           case 0b0111_010_111:
  2931:           case 0b0111_011_111:
  2932:           case 0b0111_100_111:
  2933:           case 0b0111_101_111:
  2934:           case 0b0111_110_111:
  2935:           case 0b0111_111_111:
  2936:             irpMvzWord ();
  2937:             break irpSwitch;
  2938: 
  2939:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2940:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2941:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2942:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2943:             //OR.B <ea>,Dq                                    |-|012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_000_mmm_rrr
  2944:           case 0b1000_000_000:
  2945:           case 0b1000_001_000:
  2946:           case 0b1000_010_000:
  2947:           case 0b1000_011_000:
  2948:           case 0b1000_100_000:
  2949:           case 0b1000_101_000:
  2950:           case 0b1000_110_000:
  2951:           case 0b1000_111_000:
  2952:             irpOrToRegByte ();
  2953:             break irpSwitch;
  2954: 
  2955:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2956:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2957:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2958:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2959:             //OR.W <ea>,Dq                                    |-|012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_001_mmm_rrr
  2960:           case 0b1000_000_001:
  2961:           case 0b1000_001_001:
  2962:           case 0b1000_010_001:
  2963:           case 0b1000_011_001:
  2964:           case 0b1000_100_001:
  2965:           case 0b1000_101_001:
  2966:           case 0b1000_110_001:
  2967:           case 0b1000_111_001:
  2968:             irpOrToRegWord ();
  2969:             break irpSwitch;
  2970: 
  2971:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2972:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2973:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2974:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2975:             //OR.L <ea>,Dq                                    |-|012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_010_mmm_rrr
  2976:           case 0b1000_000_010:
  2977:           case 0b1000_001_010:
  2978:           case 0b1000_010_010:
  2979:           case 0b1000_011_010:
  2980:           case 0b1000_100_010:
  2981:           case 0b1000_101_010:
  2982:           case 0b1000_110_010:
  2983:           case 0b1000_111_010:
  2984:             irpOrToRegLong ();
  2985:             break irpSwitch;
  2986: 
  2987:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2988:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  2989:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  2990:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  2991:             //DIVU.W <ea>,Dq                                  |-|012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_011_mmm_rrr
  2992:           case 0b1000_000_011:
  2993:           case 0b1000_001_011:
  2994:           case 0b1000_010_011:
  2995:           case 0b1000_011_011:
  2996:           case 0b1000_100_011:
  2997:           case 0b1000_101_011:
  2998:           case 0b1000_110_011:
  2999:           case 0b1000_111_011:
  3000:             irpDivuWord ();
  3001:             break irpSwitch;
  3002: 
  3003:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3004:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3005:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3006:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3007:             //SBCD.B Dr,Dq                                    |-|012346|-|UUUUU|*U*U*|          |1000_qqq_100_000_rrr
  3008:             //SBCD.B -(Ar),-(Aq)                              |-|012346|-|UUUUU|*U*U*|          |1000_qqq_100_001_rrr
  3009:             //OR.B Dq,<ea>                                    |-|012346|-|-UUUU|-**00|  M+-WXZ  |1000_qqq_100_mmm_rrr
  3010:           case 0b1000_000_100:
  3011:           case 0b1000_001_100:
  3012:           case 0b1000_010_100:
  3013:           case 0b1000_011_100:
  3014:           case 0b1000_100_100:
  3015:           case 0b1000_101_100:
  3016:           case 0b1000_110_100:
  3017:           case 0b1000_111_100:
  3018:             irpOrToMemByte ();
  3019:             break irpSwitch;
  3020: 
  3021:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3022:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3023:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3024:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3025:             //PACK Dr,Dq,#<data>                              |-|--2346|-|-----|-----|          |1000_qqq_101_000_rrr-{data}
  3026:             //PACK -(Ar),-(Aq),#<data>                        |-|--2346|-|-----|-----|          |1000_qqq_101_001_rrr-{data}
  3027:             //OR.W Dq,<ea>                                    |-|012346|-|-UUUU|-**00|  M+-WXZ  |1000_qqq_101_mmm_rrr
  3028:           case 0b1000_000_101:
  3029:           case 0b1000_001_101:
  3030:           case 0b1000_010_101:
  3031:           case 0b1000_011_101:
  3032:           case 0b1000_100_101:
  3033:           case 0b1000_101_101:
  3034:           case 0b1000_110_101:
  3035:           case 0b1000_111_101:
  3036:             irpOrToMemWord ();
  3037:             break irpSwitch;
  3038: 
  3039:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3040:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3041:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3042:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3043:             //UNPK Dr,Dq,#<data>                              |-|--2346|-|-----|-----|          |1000_qqq_110_000_rrr-{data}
  3044:             //UNPK -(Ar),-(Aq),#<data>                        |-|--2346|-|-----|-----|          |1000_qqq_110_001_rrr-{data}
  3045:             //OR.L Dq,<ea>                                    |-|012346|-|-UUUU|-**00|  M+-WXZ  |1000_qqq_110_mmm_rrr
  3046:           case 0b1000_000_110:
  3047:           case 0b1000_001_110:
  3048:           case 0b1000_010_110:
  3049:           case 0b1000_011_110:
  3050:           case 0b1000_100_110:
  3051:           case 0b1000_101_110:
  3052:           case 0b1000_110_110:
  3053:           case 0b1000_111_110:
  3054:             irpOrToMemLong ();
  3055:             break irpSwitch;
  3056: 
  3057:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3058:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3059:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3060:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3061:             //DIVS.W <ea>,Dq                                  |-|012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_111_mmm_rrr
  3062:           case 0b1000_000_111:
  3063:           case 0b1000_001_111:
  3064:           case 0b1000_010_111:
  3065:           case 0b1000_011_111:
  3066:           case 0b1000_100_111:
  3067:           case 0b1000_101_111:
  3068:           case 0b1000_110_111:
  3069:           case 0b1000_111_111:
  3070:             irpDivsWord ();
  3071:             break irpSwitch;
  3072: 
  3073:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3074:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3075:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3076:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3077:             //SUB.B <ea>,Dq                                   |-|012346|-|UUUUU|*****|D M+-WXZPI|1001_qqq_000_mmm_rrr
  3078:           case 0b1001_000_000:
  3079:           case 0b1001_001_000:
  3080:           case 0b1001_010_000:
  3081:           case 0b1001_011_000:
  3082:           case 0b1001_100_000:
  3083:           case 0b1001_101_000:
  3084:           case 0b1001_110_000:
  3085:           case 0b1001_111_000:
  3086:             irpSubToRegByte ();
  3087:             break irpSwitch;
  3088: 
  3089:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3090:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3091:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3092:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3093:             //SUB.W <ea>,Dq                                   |-|012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_001_mmm_rrr
  3094:           case 0b1001_000_001:
  3095:           case 0b1001_001_001:
  3096:           case 0b1001_010_001:
  3097:           case 0b1001_011_001:
  3098:           case 0b1001_100_001:
  3099:           case 0b1001_101_001:
  3100:           case 0b1001_110_001:
  3101:           case 0b1001_111_001:
  3102:             irpSubToRegWord ();
  3103:             break irpSwitch;
  3104: 
  3105:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3106:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3107:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3108:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3109:             //SUB.L <ea>,Dq                                   |-|012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_010_mmm_rrr
  3110:           case 0b1001_000_010:
  3111:           case 0b1001_001_010:
  3112:           case 0b1001_010_010:
  3113:           case 0b1001_011_010:
  3114:           case 0b1001_100_010:
  3115:           case 0b1001_101_010:
  3116:           case 0b1001_110_010:
  3117:           case 0b1001_111_010:
  3118:             irpSubToRegLong ();
  3119:             break irpSwitch;
  3120: 
  3121:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3122:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3123:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3124:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3125:             //SUBA.W <ea>,Aq                                  |-|012346|-|-----|-----|DAM+-WXZPI|1001_qqq_011_mmm_rrr
  3126:             //SUB.W <ea>,Aq                                   |A|012346|-|-----|-----|DAM+-WXZPI|1001_qqq_011_mmm_rrr [SUBA.W <ea>,Aq]
  3127:             //CLR.W Ar                                        |A|012346|-|-----|-----| A        |1001_rrr_011_001_rrr [SUBA.W Ar,Ar]
  3128:           case 0b1001_000_011:
  3129:           case 0b1001_001_011:
  3130:           case 0b1001_010_011:
  3131:           case 0b1001_011_011:
  3132:           case 0b1001_100_011:
  3133:           case 0b1001_101_011:
  3134:           case 0b1001_110_011:
  3135:           case 0b1001_111_011:
  3136:             irpSubaWord ();
  3137:             break irpSwitch;
  3138: 
  3139:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3140:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3141:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3142:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3143:             //SUBX.B Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1001_qqq_100_000_rrr
  3144:             //SUBX.B -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1001_qqq_100_001_rrr
  3145:             //SUB.B Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1001_qqq_100_mmm_rrr
  3146:           case 0b1001_000_100:
  3147:           case 0b1001_001_100:
  3148:           case 0b1001_010_100:
  3149:           case 0b1001_011_100:
  3150:           case 0b1001_100_100:
  3151:           case 0b1001_101_100:
  3152:           case 0b1001_110_100:
  3153:           case 0b1001_111_100:
  3154:             irpSubToMemByte ();
  3155:             break irpSwitch;
  3156: 
  3157:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3158:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3159:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3160:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3161:             //SUBX.W Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1001_qqq_101_000_rrr
  3162:             //SUBX.W -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1001_qqq_101_001_rrr
  3163:             //SUB.W Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1001_qqq_101_mmm_rrr
  3164:           case 0b1001_000_101:
  3165:           case 0b1001_001_101:
  3166:           case 0b1001_010_101:
  3167:           case 0b1001_011_101:
  3168:           case 0b1001_100_101:
  3169:           case 0b1001_101_101:
  3170:           case 0b1001_110_101:
  3171:           case 0b1001_111_101:
  3172:             irpSubToMemWord ();
  3173:             break irpSwitch;
  3174: 
  3175:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3176:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3177:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3178:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3179:             //SUBX.L Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1001_qqq_110_000_rrr
  3180:             //SUBX.L -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1001_qqq_110_001_rrr
  3181:             //SUB.L Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1001_qqq_110_mmm_rrr
  3182:           case 0b1001_000_110:
  3183:           case 0b1001_001_110:
  3184:           case 0b1001_010_110:
  3185:           case 0b1001_011_110:
  3186:           case 0b1001_100_110:
  3187:           case 0b1001_101_110:
  3188:           case 0b1001_110_110:
  3189:           case 0b1001_111_110:
  3190:             irpSubToMemLong ();
  3191:             break irpSwitch;
  3192: 
  3193:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3194:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3195:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3196:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3197:             //SUBA.L <ea>,Aq                                  |-|012346|-|-----|-----|DAM+-WXZPI|1001_qqq_111_mmm_rrr
  3198:             //SUB.L <ea>,Aq                                   |A|012346|-|-----|-----|DAM+-WXZPI|1001_qqq_111_mmm_rrr [SUBA.L <ea>,Aq]
  3199:             //CLR.L Ar                                        |A|012346|-|-----|-----| A        |1001_rrr_111_001_rrr [SUBA.L Ar,Ar]
  3200:           case 0b1001_000_111:
  3201:           case 0b1001_001_111:
  3202:           case 0b1001_010_111:
  3203:           case 0b1001_011_111:
  3204:           case 0b1001_100_111:
  3205:           case 0b1001_101_111:
  3206:           case 0b1001_110_111:
  3207:           case 0b1001_111_111:
  3208:             irpSubaLong ();
  3209:             break irpSwitch;
  3210: 
  3211:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3212:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3213:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3214:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3215:             //SXCALL <name>                                   |A|012346|-|UUUUU|*****|          |1010_0dd_ddd_ddd_ddd [ALINE #<data>]
  3216:           case 0b1010_000_000:
  3217:           case 0b1010_000_001:
  3218:           case 0b1010_000_010:
  3219:           case 0b1010_000_011:
  3220:           case 0b1010_000_100:
  3221:           case 0b1010_000_101:
  3222:           case 0b1010_000_110:
  3223:           case 0b1010_000_111:
  3224:           case 0b1010_001_000:
  3225:           case 0b1010_001_001:
  3226:           case 0b1010_001_010:
  3227:           case 0b1010_001_011:
  3228:           case 0b1010_001_100:
  3229:           case 0b1010_001_101:
  3230:           case 0b1010_001_110:
  3231:           case 0b1010_001_111:
  3232:           case 0b1010_010_000:
  3233:           case 0b1010_010_001:
  3234:           case 0b1010_010_010:
  3235:           case 0b1010_010_011:
  3236:           case 0b1010_010_100:
  3237:           case 0b1010_010_101:
  3238:           case 0b1010_010_110:
  3239:           case 0b1010_010_111:
  3240:           case 0b1010_011_000:
  3241:           case 0b1010_011_001:
  3242:           case 0b1010_011_010:
  3243:           case 0b1010_011_011:
  3244:           case 0b1010_011_100:
  3245:           case 0b1010_011_101:
  3246:           case 0b1010_011_110:
  3247:           case 0b1010_011_111:
  3248:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3249:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3250:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3251:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3252:             //ALINE #<data>                                   |-|012346|-|UUUUU|*****|          |1010_ddd_ddd_ddd_ddd (line 1010 emulator)
  3253:           case 0b1010_100_000:
  3254:           case 0b1010_100_001:
  3255:           case 0b1010_100_010:
  3256:           case 0b1010_100_011:
  3257:           case 0b1010_100_100:
  3258:           case 0b1010_100_101:
  3259:           case 0b1010_100_110:
  3260:           case 0b1010_100_111:
  3261:           case 0b1010_101_000:
  3262:           case 0b1010_101_001:
  3263:           case 0b1010_101_010:
  3264:           case 0b1010_101_011:
  3265:           case 0b1010_101_100:
  3266:           case 0b1010_101_101:
  3267:           case 0b1010_101_110:
  3268:           case 0b1010_101_111:
  3269:           case 0b1010_110_000:
  3270:           case 0b1010_110_001:
  3271:           case 0b1010_110_010:
  3272:           case 0b1010_110_011:
  3273:           case 0b1010_110_100:
  3274:           case 0b1010_110_101:
  3275:           case 0b1010_110_110:
  3276:           case 0b1010_110_111:
  3277:           case 0b1010_111_000:
  3278:           case 0b1010_111_001:
  3279:           case 0b1010_111_010:
  3280:           case 0b1010_111_011:
  3281:           case 0b1010_111_100:
  3282:           case 0b1010_111_101:
  3283:           case 0b1010_111_110:
  3284:           case 0b1010_111_111:
  3285:             irpAline ();
  3286:             break irpSwitch;
  3287: 
  3288:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3289:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3290:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3291:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3292:             //CMP.B <ea>,Dq                                   |-|012346|-|-UUUU|-****|D M+-WXZPI|1011_qqq_000_mmm_rrr
  3293:           case 0b1011_000_000:
  3294:           case 0b1011_001_000:
  3295:           case 0b1011_010_000:
  3296:           case 0b1011_011_000:
  3297:           case 0b1011_100_000:
  3298:           case 0b1011_101_000:
  3299:           case 0b1011_110_000:
  3300:           case 0b1011_111_000:
  3301:             irpCmpByte ();
  3302:             break irpSwitch;
  3303: 
  3304:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3305:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3306:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3307:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3308:             //CMP.W <ea>,Dq                                   |-|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_001_mmm_rrr
  3309:           case 0b1011_000_001:
  3310:           case 0b1011_001_001:
  3311:           case 0b1011_010_001:
  3312:           case 0b1011_011_001:
  3313:           case 0b1011_100_001:
  3314:           case 0b1011_101_001:
  3315:           case 0b1011_110_001:
  3316:           case 0b1011_111_001:
  3317:             irpCmpWord ();
  3318:             break irpSwitch;
  3319: 
  3320:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3321:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3322:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3323:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3324:             //CMP.L <ea>,Dq                                   |-|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_010_mmm_rrr
  3325:           case 0b1011_000_010:
  3326:           case 0b1011_001_010:
  3327:           case 0b1011_010_010:
  3328:           case 0b1011_011_010:
  3329:           case 0b1011_100_010:
  3330:           case 0b1011_101_010:
  3331:           case 0b1011_110_010:
  3332:           case 0b1011_111_010:
  3333:             irpCmpLong ();
  3334:             break irpSwitch;
  3335: 
  3336:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3337:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3338:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3339:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3340:             //CMPA.W <ea>,Aq                                  |-|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_011_mmm_rrr
  3341:             //CMP.W <ea>,Aq                                   |A|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_011_mmm_rrr [CMPA.W <ea>,Aq]
  3342:           case 0b1011_000_011:
  3343:           case 0b1011_001_011:
  3344:           case 0b1011_010_011:
  3345:           case 0b1011_011_011:
  3346:           case 0b1011_100_011:
  3347:           case 0b1011_101_011:
  3348:           case 0b1011_110_011:
  3349:           case 0b1011_111_011:
  3350:             irpCmpaWord ();
  3351:             break irpSwitch;
  3352: 
  3353:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3354:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3355:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3356:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3357:             //EOR.B Dq,<ea>                                   |-|012346|-|-UUUU|-**00|D M+-WXZ  |1011_qqq_100_mmm_rrr
  3358:             //CMPM.B (Ar)+,(Aq)+                              |-|012346|-|-UUUU|-****|          |1011_qqq_100_001_rrr
  3359:           case 0b1011_000_100:
  3360:           case 0b1011_001_100:
  3361:           case 0b1011_010_100:
  3362:           case 0b1011_011_100:
  3363:           case 0b1011_100_100:
  3364:           case 0b1011_101_100:
  3365:           case 0b1011_110_100:
  3366:           case 0b1011_111_100:
  3367:             irpEorByte ();
  3368:             break irpSwitch;
  3369: 
  3370:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3371:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3372:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3373:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3374:             //EOR.W Dq,<ea>                                   |-|012346|-|-UUUU|-**00|D M+-WXZ  |1011_qqq_101_mmm_rrr
  3375:             //CMPM.W (Ar)+,(Aq)+                              |-|012346|-|-UUUU|-****|          |1011_qqq_101_001_rrr
  3376:           case 0b1011_000_101:
  3377:           case 0b1011_001_101:
  3378:           case 0b1011_010_101:
  3379:           case 0b1011_011_101:
  3380:           case 0b1011_100_101:
  3381:           case 0b1011_101_101:
  3382:           case 0b1011_110_101:
  3383:           case 0b1011_111_101:
  3384:             irpEorWord ();
  3385:             break irpSwitch;
  3386: 
  3387:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3388:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3389:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3390:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3391:             //EOR.L Dq,<ea>                                   |-|012346|-|-UUUU|-**00|D M+-WXZ  |1011_qqq_110_mmm_rrr
  3392:             //CMPM.L (Ar)+,(Aq)+                              |-|012346|-|-UUUU|-****|          |1011_qqq_110_001_rrr
  3393:           case 0b1011_000_110:
  3394:           case 0b1011_001_110:
  3395:           case 0b1011_010_110:
  3396:           case 0b1011_011_110:
  3397:           case 0b1011_100_110:
  3398:           case 0b1011_101_110:
  3399:           case 0b1011_110_110:
  3400:           case 0b1011_111_110:
  3401:             irpEorLong ();
  3402:             break irpSwitch;
  3403: 
  3404:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3405:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3406:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3407:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3408:             //CMPA.L <ea>,Aq                                  |-|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_111_mmm_rrr
  3409:             //CMP.L <ea>,Aq                                   |A|012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_111_mmm_rrr [CMPA.L <ea>,Aq]
  3410:           case 0b1011_000_111:
  3411:           case 0b1011_001_111:
  3412:           case 0b1011_010_111:
  3413:           case 0b1011_011_111:
  3414:           case 0b1011_100_111:
  3415:           case 0b1011_101_111:
  3416:           case 0b1011_110_111:
  3417:           case 0b1011_111_111:
  3418:             irpCmpaLong ();
  3419:             break irpSwitch;
  3420: 
  3421:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3422:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3423:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3424:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3425:             //AND.B <ea>,Dq                                   |-|012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_000_mmm_rrr
  3426:           case 0b1100_000_000:
  3427:           case 0b1100_001_000:
  3428:           case 0b1100_010_000:
  3429:           case 0b1100_011_000:
  3430:           case 0b1100_100_000:
  3431:           case 0b1100_101_000:
  3432:           case 0b1100_110_000:
  3433:           case 0b1100_111_000:
  3434:             irpAndToRegByte ();
  3435:             break irpSwitch;
  3436: 
  3437:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3438:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3439:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3440:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3441:             //AND.W <ea>,Dq                                   |-|012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_001_mmm_rrr
  3442:           case 0b1100_000_001:
  3443:           case 0b1100_001_001:
  3444:           case 0b1100_010_001:
  3445:           case 0b1100_011_001:
  3446:           case 0b1100_100_001:
  3447:           case 0b1100_101_001:
  3448:           case 0b1100_110_001:
  3449:           case 0b1100_111_001:
  3450:             irpAndToRegWord ();
  3451:             break irpSwitch;
  3452: 
  3453:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3454:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3455:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3456:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3457:             //AND.L <ea>,Dq                                   |-|012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_010_mmm_rrr
  3458:           case 0b1100_000_010:
  3459:           case 0b1100_001_010:
  3460:           case 0b1100_010_010:
  3461:           case 0b1100_011_010:
  3462:           case 0b1100_100_010:
  3463:           case 0b1100_101_010:
  3464:           case 0b1100_110_010:
  3465:           case 0b1100_111_010:
  3466:             irpAndToRegLong ();
  3467:             break irpSwitch;
  3468: 
  3469:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3470:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3471:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3472:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3473:             //MULU.W <ea>,Dq                                  |-|012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_011_mmm_rrr
  3474:           case 0b1100_000_011:
  3475:           case 0b1100_001_011:
  3476:           case 0b1100_010_011:
  3477:           case 0b1100_011_011:
  3478:           case 0b1100_100_011:
  3479:           case 0b1100_101_011:
  3480:           case 0b1100_110_011:
  3481:           case 0b1100_111_011:
  3482:             irpMuluWord ();
  3483:             break irpSwitch;
  3484: 
  3485:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3486:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3487:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3488:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3489:             //ABCD.B Dr,Dq                                    |-|012346|-|UUUUU|*U*U*|          |1100_qqq_100_000_rrr
  3490:             //ABCD.B -(Ar),-(Aq)                              |-|012346|-|UUUUU|*U*U*|          |1100_qqq_100_001_rrr
  3491:             //AND.B Dq,<ea>                                   |-|012346|-|-UUUU|-**00|  M+-WXZ  |1100_qqq_100_mmm_rrr
  3492:           case 0b1100_000_100:
  3493:           case 0b1100_001_100:
  3494:           case 0b1100_010_100:
  3495:           case 0b1100_011_100:
  3496:           case 0b1100_100_100:
  3497:           case 0b1100_101_100:
  3498:           case 0b1100_110_100:
  3499:           case 0b1100_111_100:
  3500:             irpAndToMemByte ();
  3501:             break irpSwitch;
  3502: 
  3503:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3504:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3505:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3506:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3507:             //EXG.L Dq,Dr                                     |-|012346|-|-----|-----|          |1100_qqq_101_000_rrr
  3508:             //EXG.L Aq,Ar                                     |-|012346|-|-----|-----|          |1100_qqq_101_001_rrr
  3509:             //AND.W Dq,<ea>                                   |-|012346|-|-UUUU|-**00|  M+-WXZ  |1100_qqq_101_mmm_rrr
  3510:           case 0b1100_000_101:
  3511:           case 0b1100_001_101:
  3512:           case 0b1100_010_101:
  3513:           case 0b1100_011_101:
  3514:           case 0b1100_100_101:
  3515:           case 0b1100_101_101:
  3516:           case 0b1100_110_101:
  3517:           case 0b1100_111_101:
  3518:             irpAndToMemWord ();
  3519:             break irpSwitch;
  3520: 
  3521:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3522:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3523:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3524:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3525:             //EXG.L Dq,Ar                                     |-|012346|-|-----|-----|          |1100_qqq_110_001_rrr
  3526:             //AND.L Dq,<ea>                                   |-|012346|-|-UUUU|-**00|  M+-WXZ  |1100_qqq_110_mmm_rrr
  3527:           case 0b1100_000_110:
  3528:           case 0b1100_001_110:
  3529:           case 0b1100_010_110:
  3530:           case 0b1100_011_110:
  3531:           case 0b1100_100_110:
  3532:           case 0b1100_101_110:
  3533:           case 0b1100_110_110:
  3534:           case 0b1100_111_110:
  3535:             irpAndToMemLong ();
  3536:             break irpSwitch;
  3537: 
  3538:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3539:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3540:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3541:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3542:             //MULS.W <ea>,Dq                                  |-|012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_111_mmm_rrr
  3543:           case 0b1100_000_111:
  3544:           case 0b1100_001_111:
  3545:           case 0b1100_010_111:
  3546:           case 0b1100_011_111:
  3547:           case 0b1100_100_111:
  3548:           case 0b1100_101_111:
  3549:           case 0b1100_110_111:
  3550:           case 0b1100_111_111:
  3551:             irpMulsWord ();
  3552:             break irpSwitch;
  3553: 
  3554:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3555:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3556:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3557:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3558:             //ADD.B <ea>,Dq                                   |-|012346|-|UUUUU|*****|D M+-WXZPI|1101_qqq_000_mmm_rrr
  3559:           case 0b1101_000_000:
  3560:           case 0b1101_001_000:
  3561:           case 0b1101_010_000:
  3562:           case 0b1101_011_000:
  3563:           case 0b1101_100_000:
  3564:           case 0b1101_101_000:
  3565:           case 0b1101_110_000:
  3566:           case 0b1101_111_000:
  3567:             irpAddToRegByte ();
  3568:             break irpSwitch;
  3569: 
  3570:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3571:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3572:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3573:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3574:             //ADD.W <ea>,Dq                                   |-|012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_001_mmm_rrr
  3575:           case 0b1101_000_001:
  3576:           case 0b1101_001_001:
  3577:           case 0b1101_010_001:
  3578:           case 0b1101_011_001:
  3579:           case 0b1101_100_001:
  3580:           case 0b1101_101_001:
  3581:           case 0b1101_110_001:
  3582:           case 0b1101_111_001:
  3583:             irpAddToRegWord ();
  3584:             break irpSwitch;
  3585: 
  3586:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3587:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3588:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3589:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3590:             //ADD.L <ea>,Dq                                   |-|012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_010_mmm_rrr
  3591:           case 0b1101_000_010:
  3592:           case 0b1101_001_010:
  3593:           case 0b1101_010_010:
  3594:           case 0b1101_011_010:
  3595:           case 0b1101_100_010:
  3596:           case 0b1101_101_010:
  3597:           case 0b1101_110_010:
  3598:           case 0b1101_111_010:
  3599:             irpAddToRegLong ();
  3600:             break irpSwitch;
  3601: 
  3602:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3603:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3604:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3605:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3606:             //ADDA.W <ea>,Aq                                  |-|012346|-|-----|-----|DAM+-WXZPI|1101_qqq_011_mmm_rrr
  3607:             //ADD.W <ea>,Aq                                   |A|012346|-|-----|-----|DAM+-WXZPI|1101_qqq_011_mmm_rrr [ADDA.W <ea>,Aq]
  3608:           case 0b1101_000_011:
  3609:           case 0b1101_001_011:
  3610:           case 0b1101_010_011:
  3611:           case 0b1101_011_011:
  3612:           case 0b1101_100_011:
  3613:           case 0b1101_101_011:
  3614:           case 0b1101_110_011:
  3615:           case 0b1101_111_011:
  3616:             irpAddaWord ();
  3617:             break irpSwitch;
  3618: 
  3619:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3620:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3621:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3622:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3623:             //ADDX.B Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1101_qqq_100_000_rrr
  3624:             //ADDX.B -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1101_qqq_100_001_rrr
  3625:             //ADD.B Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1101_qqq_100_mmm_rrr
  3626:           case 0b1101_000_100:
  3627:           case 0b1101_001_100:
  3628:           case 0b1101_010_100:
  3629:           case 0b1101_011_100:
  3630:           case 0b1101_100_100:
  3631:           case 0b1101_101_100:
  3632:           case 0b1101_110_100:
  3633:           case 0b1101_111_100:
  3634:             irpAddToMemByte ();
  3635:             break irpSwitch;
  3636: 
  3637:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3638:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3639:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3640:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3641:             //ADDX.W Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1101_qqq_101_000_rrr
  3642:             //ADDX.W -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1101_qqq_101_001_rrr
  3643:             //ADD.W Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1101_qqq_101_mmm_rrr
  3644:           case 0b1101_000_101:
  3645:           case 0b1101_001_101:
  3646:           case 0b1101_010_101:
  3647:           case 0b1101_011_101:
  3648:           case 0b1101_100_101:
  3649:           case 0b1101_101_101:
  3650:           case 0b1101_110_101:
  3651:           case 0b1101_111_101:
  3652:             irpAddToMemWord ();
  3653:             break irpSwitch;
  3654: 
  3655:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3656:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3657:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3658:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3659:             //ADDX.L Dr,Dq                                    |-|012346|-|*UUUU|*****|          |1101_qqq_110_000_rrr
  3660:             //ADDX.L -(Ar),-(Aq)                              |-|012346|-|*UUUU|*****|          |1101_qqq_110_001_rrr
  3661:             //ADD.L Dq,<ea>                                   |-|012346|-|UUUUU|*****|  M+-WXZ  |1101_qqq_110_mmm_rrr
  3662:           case 0b1101_000_110:
  3663:           case 0b1101_001_110:
  3664:           case 0b1101_010_110:
  3665:           case 0b1101_011_110:
  3666:           case 0b1101_100_110:
  3667:           case 0b1101_101_110:
  3668:           case 0b1101_110_110:
  3669:           case 0b1101_111_110:
  3670:             irpAddToMemLong ();
  3671:             break irpSwitch;
  3672: 
  3673:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3674:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3675:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3676:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3677:             //ADDA.L <ea>,Aq                                  |-|012346|-|-----|-----|DAM+-WXZPI|1101_qqq_111_mmm_rrr
  3678:             //ADD.L <ea>,Aq                                   |A|012346|-|-----|-----|DAM+-WXZPI|1101_qqq_111_mmm_rrr [ADDA.L <ea>,Aq]
  3679:           case 0b1101_000_111:
  3680:           case 0b1101_001_111:
  3681:           case 0b1101_010_111:
  3682:           case 0b1101_011_111:
  3683:           case 0b1101_100_111:
  3684:           case 0b1101_101_111:
  3685:           case 0b1101_110_111:
  3686:           case 0b1101_111_111:
  3687:             irpAddaLong ();
  3688:             break irpSwitch;
  3689: 
  3690:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3691:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3692:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3693:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3694:             //ASR.B #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_000_000_rrr
  3695:             //LSR.B #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_000_001_rrr
  3696:             //ROXR.B #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_000_010_rrr
  3697:             //ROR.B #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_000_011_rrr
  3698:             //ASR.B Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_000_100_rrr
  3699:             //LSR.B Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_000_101_rrr
  3700:             //ROXR.B Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_000_110_rrr
  3701:             //ROR.B Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_000_111_rrr
  3702:             //ASR.B Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_000_000_rrr [ASR.B #1,Dr]
  3703:             //LSR.B Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_000_001_rrr [LSR.B #1,Dr]
  3704:             //ROXR.B Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_000_010_rrr [ROXR.B #1,Dr]
  3705:             //ROR.B Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_000_011_rrr [ROR.B #1,Dr]
  3706:           case 0b1110_000_000:
  3707:           case 0b1110_001_000:
  3708:           case 0b1110_010_000:
  3709:           case 0b1110_011_000:
  3710:           case 0b1110_100_000:
  3711:           case 0b1110_101_000:
  3712:           case 0b1110_110_000:
  3713:           case 0b1110_111_000:
  3714:             irpXxrToRegByte ();
  3715:             break irpSwitch;
  3716: 
  3717:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3718:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3719:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3720:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3721:             //ASR.W #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_001_000_rrr
  3722:             //LSR.W #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_001_001_rrr
  3723:             //ROXR.W #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_001_010_rrr
  3724:             //ROR.W #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_001_011_rrr
  3725:             //ASR.W Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_001_100_rrr
  3726:             //LSR.W Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_001_101_rrr
  3727:             //ROXR.W Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_001_110_rrr
  3728:             //ROR.W Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_001_111_rrr
  3729:             //ASR.W Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_001_000_rrr [ASR.W #1,Dr]
  3730:             //LSR.W Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_001_001_rrr [LSR.W #1,Dr]
  3731:             //ROXR.W Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_001_010_rrr [ROXR.W #1,Dr]
  3732:             //ROR.W Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_001_011_rrr [ROR.W #1,Dr]
  3733:           case 0b1110_000_001:
  3734:           case 0b1110_001_001:
  3735:           case 0b1110_010_001:
  3736:           case 0b1110_011_001:
  3737:           case 0b1110_100_001:
  3738:           case 0b1110_101_001:
  3739:           case 0b1110_110_001:
  3740:           case 0b1110_111_001:
  3741:             irpXxrToRegWord ();
  3742:             break irpSwitch;
  3743: 
  3744:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3745:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3746:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3747:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3748:             //ASR.L #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_010_000_rrr
  3749:             //LSR.L #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_010_001_rrr
  3750:             //ROXR.L #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_010_010_rrr
  3751:             //ROR.L #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_010_011_rrr
  3752:             //ASR.L Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_010_100_rrr
  3753:             //LSR.L Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_010_101_rrr
  3754:             //ROXR.L Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_010_110_rrr
  3755:             //ROR.L Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_010_111_rrr
  3756:             //ASR.L Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_010_000_rrr [ASR.L #1,Dr]
  3757:             //LSR.L Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_010_001_rrr [LSR.L #1,Dr]
  3758:             //ROXR.L Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_010_010_rrr [ROXR.L #1,Dr]
  3759:             //ROR.L Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_010_011_rrr [ROR.L #1,Dr]
  3760:           case 0b1110_000_010:
  3761:           case 0b1110_001_010:
  3762:           case 0b1110_010_010:
  3763:           case 0b1110_011_010:
  3764:           case 0b1110_100_010:
  3765:           case 0b1110_101_010:
  3766:           case 0b1110_110_010:
  3767:           case 0b1110_111_010:
  3768:             irpXxrToRegLong ();
  3769:             break irpSwitch;
  3770: 
  3771:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3772:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3773:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3774:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3775:             //ASR.W <ea>                                      |-|012346|-|UUUUU|***0*|  M+-WXZ  |1110_000_011_mmm_rrr
  3776:           case 0b1110_000_011:
  3777:             irpAsrToMem ();
  3778:             break irpSwitch;
  3779: 
  3780:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3781:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3782:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3783:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3784:             //ASL.B #<data>,Dr                                |-|012346|-|UUUUU|*****|          |1110_qqq_100_000_rrr
  3785:             //LSL.B #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_100_001_rrr
  3786:             //ROXL.B #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_100_010_rrr
  3787:             //ROL.B #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_100_011_rrr
  3788:             //ASL.B Dq,Dr                                     |-|012346|-|UUUUU|*****|          |1110_qqq_100_100_rrr
  3789:             //LSL.B Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_100_101_rrr
  3790:             //ROXL.B Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_100_110_rrr
  3791:             //ROL.B Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_100_111_rrr
  3792:             //ASL.B Dr                                        |A|012346|-|UUUUU|*****|          |1110_001_100_000_rrr [ASL.B #1,Dr]
  3793:             //LSL.B Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_100_001_rrr [LSL.B #1,Dr]
  3794:             //ROXL.B Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_100_010_rrr [ROXL.B #1,Dr]
  3795:             //ROL.B Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_100_011_rrr [ROL.B #1,Dr]
  3796:           case 0b1110_000_100:
  3797:           case 0b1110_001_100:
  3798:           case 0b1110_010_100:
  3799:           case 0b1110_011_100:
  3800:           case 0b1110_100_100:
  3801:           case 0b1110_101_100:
  3802:           case 0b1110_110_100:
  3803:           case 0b1110_111_100:
  3804:             irpXxlToRegByte ();
  3805:             break irpSwitch;
  3806: 
  3807:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3808:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3809:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3810:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3811:             //ASL.W #<data>,Dr                                |-|012346|-|UUUUU|*****|          |1110_qqq_101_000_rrr
  3812:             //LSL.W #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_101_001_rrr
  3813:             //ROXL.W #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_101_010_rrr
  3814:             //ROL.W #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_101_011_rrr
  3815:             //ASL.W Dq,Dr                                     |-|012346|-|UUUUU|*****|          |1110_qqq_101_100_rrr
  3816:             //LSL.W Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_101_101_rrr
  3817:             //ROXL.W Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_101_110_rrr
  3818:             //ROL.W Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_101_111_rrr
  3819:             //ASL.W Dr                                        |A|012346|-|UUUUU|*****|          |1110_001_101_000_rrr [ASL.W #1,Dr]
  3820:             //LSL.W Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_101_001_rrr [LSL.W #1,Dr]
  3821:             //ROXL.W Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_101_010_rrr [ROXL.W #1,Dr]
  3822:             //ROL.W Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_101_011_rrr [ROL.W #1,Dr]
  3823:           case 0b1110_000_101:
  3824:           case 0b1110_001_101:
  3825:           case 0b1110_010_101:
  3826:           case 0b1110_011_101:
  3827:           case 0b1110_100_101:
  3828:           case 0b1110_101_101:
  3829:           case 0b1110_110_101:
  3830:           case 0b1110_111_101:
  3831:             irpXxlToRegWord ();
  3832:             break irpSwitch;
  3833: 
  3834:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3835:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3836:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3837:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3838:             //ASL.L #<data>,Dr                                |-|012346|-|UUUUU|*****|          |1110_qqq_110_000_rrr
  3839:             //LSL.L #<data>,Dr                                |-|012346|-|UUUUU|***0*|          |1110_qqq_110_001_rrr
  3840:             //ROXL.L #<data>,Dr                               |-|012346|-|*UUUU|***0*|          |1110_qqq_110_010_rrr
  3841:             //ROL.L #<data>,Dr                                |-|012346|-|-UUUU|-**0*|          |1110_qqq_110_011_rrr
  3842:             //ASL.L Dq,Dr                                     |-|012346|-|UUUUU|*****|          |1110_qqq_110_100_rrr
  3843:             //LSL.L Dq,Dr                                     |-|012346|-|UUUUU|***0*|          |1110_qqq_110_101_rrr
  3844:             //ROXL.L Dq,Dr                                    |-|012346|-|*UUUU|***0*|          |1110_qqq_110_110_rrr
  3845:             //ROL.L Dq,Dr                                     |-|012346|-|-UUUU|-**0*|          |1110_qqq_110_111_rrr
  3846:             //ASL.L Dr                                        |A|012346|-|UUUUU|*****|          |1110_001_110_000_rrr [ASL.L #1,Dr]
  3847:             //LSL.L Dr                                        |A|012346|-|UUUUU|***0*|          |1110_001_110_001_rrr [LSL.L #1,Dr]
  3848:             //ROXL.L Dr                                       |A|012346|-|*UUUU|***0*|          |1110_001_110_010_rrr [ROXL.L #1,Dr]
  3849:             //ROL.L Dr                                        |A|012346|-|-UUUU|-**0*|          |1110_001_110_011_rrr [ROL.L #1,Dr]
  3850:           case 0b1110_000_110:
  3851:           case 0b1110_001_110:
  3852:           case 0b1110_010_110:
  3853:           case 0b1110_011_110:
  3854:           case 0b1110_100_110:
  3855:           case 0b1110_101_110:
  3856:           case 0b1110_110_110:
  3857:           case 0b1110_111_110:
  3858:             irpXxlToRegLong ();
  3859:             break irpSwitch;
  3860: 
  3861:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3862:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3863:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3864:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3865:             //ASL.W <ea>                                      |-|012346|-|UUUUU|*****|  M+-WXZ  |1110_000_111_mmm_rrr
  3866:           case 0b1110_000_111:
  3867:             irpAslToMem ();
  3868:             break irpSwitch;
  3869: 
  3870:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3871:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3872:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3873:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3874:             //LSR.W <ea>                                      |-|012346|-|UUUUU|*0*0*|  M+-WXZ  |1110_001_011_mmm_rrr
  3875:           case 0b1110_001_011:
  3876:             irpLsrToMem ();
  3877:             break irpSwitch;
  3878: 
  3879:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3880:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3881:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3882:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3883:             //LSL.W <ea>                                      |-|012346|-|UUUUU|***0*|  M+-WXZ  |1110_001_111_mmm_rrr
  3884:           case 0b1110_001_111:
  3885:             irpLslToMem ();
  3886:             break irpSwitch;
  3887: 
  3888:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3889:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3890:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3891:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3892:             //ROXR.W <ea>                                     |-|012346|-|*UUUU|***0*|  M+-WXZ  |1110_010_011_mmm_rrr
  3893:           case 0b1110_010_011:
  3894:             irpRoxrToMem ();
  3895:             break irpSwitch;
  3896: 
  3897:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3898:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3899:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3900:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3901:             //ROXL.W <ea>                                     |-|012346|-|*UUUU|***0*|  M+-WXZ  |1110_010_111_mmm_rrr
  3902:           case 0b1110_010_111:
  3903:             irpRoxlToMem ();
  3904:             break irpSwitch;
  3905: 
  3906:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3907:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3908:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3909:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3910:             //ROR.W <ea>                                      |-|012346|-|-UUUU|-**0*|  M+-WXZ  |1110_011_011_mmm_rrr
  3911:           case 0b1110_011_011:
  3912:             irpRorToMem ();
  3913:             break irpSwitch;
  3914: 
  3915:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3916:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3917:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3918:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3919:             //ROL.W <ea>                                      |-|012346|-|-UUUU|-**0*|  M+-WXZ  |1110_011_111_mmm_rrr
  3920:           case 0b1110_011_111:
  3921:             irpRolToMem ();
  3922:             break irpSwitch;
  3923: 
  3924:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3925:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3926:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3927:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3928:             //BFTST <ea>{#o:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_011_mmm_rrr-00000ooooo0wwwww
  3929:             //BFTST <ea>{#o:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_011_mmm_rrr-00000ooooo100www
  3930:             //BFTST <ea>{Do:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_011_mmm_rrr-0000100ooo0wwwww
  3931:             //BFTST <ea>{Do:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_011_mmm_rrr-0000100ooo100www
  3932:           case 0b1110_100_011:
  3933:             irpBftst ();
  3934:             break irpSwitch;
  3935: 
  3936:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3937:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3938:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3939:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3940:             //BFEXTU <ea>{#o:#w},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_111_mmm_rrr-0nnn0ooooo0wwwww
  3941:             //BFEXTU <ea>{#o:Dw},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_111_mmm_rrr-0nnn0ooooo100www
  3942:             //BFEXTU <ea>{Do:#w},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_111_mmm_rrr-0nnn100ooo0wwwww
  3943:             //BFEXTU <ea>{Do:Dw},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_100_111_mmm_rrr-0nnn100ooo100www
  3944:           case 0b1110_100_111:
  3945:             irpBfextu ();
  3946:             break irpSwitch;
  3947: 
  3948:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3949:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3950:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3951:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3952:             //BFCHG <ea>{#o:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_101_011_mmm_rrr-00000ooooo0wwwww
  3953:             //BFCHG <ea>{#o:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_101_011_mmm_rrr-00000ooooo100www
  3954:             //BFCHG <ea>{Do:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_101_011_mmm_rrr-0000100ooo0wwwww
  3955:             //BFCHG <ea>{Do:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_101_011_mmm_rrr-0000100ooo100www
  3956:           case 0b1110_101_011:
  3957:             irpBfchg ();
  3958:             break irpSwitch;
  3959: 
  3960:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3961:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3962:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3963:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3964:             //BFEXTS <ea>{#o:#w},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_101_111_mmm_rrr-0nnn0ooooo0wwwww
  3965:             //BFEXTS <ea>{#o:Dw},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_101_111_mmm_rrr-0nnn0ooooo100www
  3966:             //BFEXTS <ea>{Do:#w},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_101_111_mmm_rrr-0nnn100ooo0wwwww
  3967:             //BFEXTS <ea>{Do:Dw},Dn                           |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_101_111_mmm_rrr-0nnn100ooo100www
  3968:           case 0b1110_101_111:
  3969:             irpBfexts ();
  3970:             break irpSwitch;
  3971: 
  3972:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3973:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3974:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3975:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3976:             //BFCLR <ea>{#o:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_110_011_mmm_rrr-00000ooooo0wwwww
  3977:             //BFCLR <ea>{#o:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_110_011_mmm_rrr-00000ooooo100www
  3978:             //BFCLR <ea>{Do:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_110_011_mmm_rrr-0000100ooo0wwwww
  3979:             //BFCLR <ea>{Do:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_110_011_mmm_rrr-0000100ooo100www
  3980:           case 0b1110_110_011:
  3981:             irpBfclr ();
  3982:             break irpSwitch;
  3983: 
  3984:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3985:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3986:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3987:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3988:             //BFFFO <ea>{#o:#w},Dn                            |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_110_111_mmm_rrr-0nnn0ooooo0wwwww
  3989:             //BFFFO <ea>{#o:Dw},Dn                            |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_110_111_mmm_rrr-0nnn0ooooo100www
  3990:             //BFFFO <ea>{Do:#w},Dn                            |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_110_111_mmm_rrr-0nnn100ooo0wwwww
  3991:             //BFFFO <ea>{Do:Dw},Dn                            |-|--2346|-|-UUUU|-**00|D M  WXZP |1110_110_111_mmm_rrr-0nnn100ooo100www
  3992:           case 0b1110_110_111:
  3993:             irpBfffo ();
  3994:             break irpSwitch;
  3995: 
  3996:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  3997:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  3998:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  3999:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4000:             //BFSET <ea>{#o:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_011_mmm_rrr-00000ooooo0wwwww
  4001:             //BFSET <ea>{#o:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_011_mmm_rrr-00000ooooo100www
  4002:             //BFSET <ea>{Do:#w}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_011_mmm_rrr-0000100ooo0wwwww
  4003:             //BFSET <ea>{Do:Dw}                               |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_011_mmm_rrr-0000100ooo100www
  4004:           case 0b1110_111_011:
  4005:             irpBfset ();
  4006:             break irpSwitch;
  4007: 
  4008:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4009:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4010:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4011:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4012:             //BFINS Dn,<ea>{#o:#w}                            |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_111_mmm_rrr-0nnn0ooooo0wwwww
  4013:             //BFINS Dn,<ea>{#o:Dw}                            |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_111_mmm_rrr-0nnn0ooooo100www
  4014:             //BFINS Dn,<ea>{Do:#w}                            |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_111_mmm_rrr-0nnn100ooo0wwwww
  4015:             //BFINS Dn,<ea>{Do:Dw}                            |-|--2346|-|-UUUU|-**00|D M  WXZ  |1110_111_111_mmm_rrr-0nnn100ooo100www
  4016:           case 0b1110_111_111:
  4017:             irpBfins ();
  4018:             break irpSwitch;
  4019: 
  4020:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4021:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4022:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4023:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4024:             //FTST.X FPm                                      |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmm0000111010
  4025:             //FMOVE.X FPm,FPn                                 |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000000
  4026:             //FINT.X FPm,FPn                                  |-|--CCS6|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000001
  4027:             //FSINH.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000010
  4028:             //FINTRZ.X FPm,FPn                                |-|--CCS6|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000011
  4029:             //FSQRT.X FPm,FPn                                 |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000100
  4030:             //FLOGNP1.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0000110
  4031:             //FETOXM1.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001000
  4032:             //FTANH.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001001
  4033:             //FATAN.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001010
  4034:             //FASIN.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001100
  4035:             //FATANH.X FPm,FPn                                |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001101
  4036:             //FSIN.X FPm,FPn                                  |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001110
  4037:             //FTAN.X FPm,FPn                                  |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0001111
  4038:             //FETOX.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010000
  4039:             //FTWOTOX.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010001
  4040:             //FTENTOX.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010010
  4041:             //FLOGN.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010100
  4042:             //FLOG10.X FPm,FPn                                |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010101
  4043:             //FLOG2.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0010110
  4044:             //FABS.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011000
  4045:             //FCOSH.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011001
  4046:             //FNEG.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011010
  4047:             //FACOS.X FPm,FPn                                 |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011100
  4048:             //FCOS.X FPm,FPn                                  |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011101
  4049:             //FGETEXP.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011110
  4050:             //FGETMAN.X FPm,FPn                               |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0011111
  4051:             //FDIV.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100000
  4052:             //FMOD.X FPm,FPn                                  |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100001
  4053:             //FADD.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100010
  4054:             //FMUL.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100011
  4055:             //FSGLDIV.X FPm,FPn                               |-|--CCS6|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100100
  4056:             //FREM.X FPm,FPn                                  |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100101
  4057:             //FSCALE.X FPm,FPn                                |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100110
  4058:             //FSGLMUL.X FPm,FPn                               |-|--CCS6|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0100111
  4059:             //FSUB.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0101000
  4060:             //FCMP.X FPm,FPn                                  |-|--CC46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn0111000
  4061:             //FSMOVE.X FPm,FPn                                |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1000000
  4062:             //FSSQRT.X FPm,FPn                                |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1000001
  4063:             //FDMOVE.X FPm,FPn                                |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1000100
  4064:             //FDSQRT.X FPm,FPn                                |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1000101
  4065:             //FSABS.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1011000
  4066:             //FSNEG.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1011010
  4067:             //FDABS.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1011100
  4068:             //FDNEG.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1011110
  4069:             //FSDIV.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100000
  4070:             //FSADD.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100010
  4071:             //FSMUL.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100011
  4072:             //FDDIV.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100100
  4073:             //FDADD.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100110
  4074:             //FDMUL.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1100111
  4075:             //FSSUB.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1101000
  4076:             //FDSUB.X FPm,FPn                                 |-|----46|-|-----|-----|          |1111_001_000_000_000-000mmmnnn1101100
  4077:             //FSINCOS.X FPm,FPc:FPs                           |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-000mmmsss0110ccc
  4078:             //FMOVECR.X #ccc,FPn                              |-|--CCSS|-|-----|-----|          |1111_001_000_000_000-010111nnn0cccccc
  4079:             //FMOVE.L FPn,<ea>                                |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-011000nnn0000000
  4080:             //FMOVE.S FPn,<ea>                                |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-011001nnn0000000
  4081:             //FMOVE.W FPn,<ea>                                |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-011100nnn0000000
  4082:             //FMOVE.B FPn,<ea>                                |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-011110nnn0000000
  4083:             //FMOVE.L FPIAR,<ea>                              |-|--CC46|-|-----|-----|DAM+-WXZ  |1111_001_000_mmm_rrr-1010010000000000
  4084:             //FMOVEM.L FPIAR,<ea>                             |-|--CC46|-|-----|-----|DAM+-WXZ  |1111_001_000_mmm_rrr-1010010000000000
  4085:             //FMOVE.L FPSR,<ea>                               |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-1010100000000000
  4086:             //FMOVEM.L FPSR,<ea>                              |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-1010100000000000
  4087:             //FMOVE.L FPCR,<ea>                               |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-1011000000000000
  4088:             //FMOVEM.L FPCR,<ea>                              |-|--CC46|-|-----|-----|D M+-WXZ  |1111_001_000_mmm_rrr-1011000000000000
  4089:             //FTST.L <ea>                                     |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-0100000000111010
  4090:             //FMOVE.L <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000000
  4091:             //FINT.L <ea>,FPn                                 |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000001
  4092:             //FSINH.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000010
  4093:             //FINTRZ.L <ea>,FPn                               |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000011
  4094:             //FSQRT.L <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000100
  4095:             //FLOGNP1.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0000110
  4096:             //FETOXM1.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001000
  4097:             //FTANH.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001001
  4098:             //FATAN.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001010
  4099:             //FASIN.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001100
  4100:             //FATANH.L <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001101
  4101:             //FSIN.L <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001110
  4102:             //FTAN.L <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0001111
  4103:             //FETOX.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010000
  4104:             //FTWOTOX.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010001
  4105:             //FTENTOX.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010010
  4106:             //FLOGN.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010100
  4107:             //FLOG10.L <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010101
  4108:             //FLOG2.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0010110
  4109:             //FABS.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011000
  4110:             //FCOSH.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011001
  4111:             //FNEG.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011010
  4112:             //FACOS.L <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011100
  4113:             //FCOS.L <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011101
  4114:             //FGETEXP.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011110
  4115:             //FGETMAN.L <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0011111
  4116:             //FDIV.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100000
  4117:             //FMOD.L <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100001
  4118:             //FADD.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100010
  4119:             //FMUL.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100011
  4120:             //FSGLDIV.L <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100100
  4121:             //FREM.L <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100101
  4122:             //FSCALE.L <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100110
  4123:             //FSGLMUL.L <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0100111
  4124:             //FSUB.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0101000
  4125:             //FCMP.L <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn0111000
  4126:             //FSMOVE.L <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1000000
  4127:             //FSSQRT.L <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1000001
  4128:             //FDMOVE.L <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1000100
  4129:             //FDSQRT.L <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1000101
  4130:             //FSABS.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1011000
  4131:             //FSNEG.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1011010
  4132:             //FDABS.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1011100
  4133:             //FDNEG.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1011110
  4134:             //FSDIV.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100000
  4135:             //FSADD.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100010
  4136:             //FSMUL.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100011
  4137:             //FDDIV.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100100
  4138:             //FDADD.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100110
  4139:             //FDMUL.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1100111
  4140:             //FSSUB.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1101000
  4141:             //FDSUB.L <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000nnn1101100
  4142:             //FSINCOS.L <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010000sss0110ccc
  4143:             //FTST.S <ea>                                     |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-0100010000111010
  4144:             //FMOVE.S <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000000
  4145:             //FINT.S <ea>,FPn                                 |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000001
  4146:             //FSINH.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000010
  4147:             //FINTRZ.S <ea>,FPn                               |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000011
  4148:             //FSQRT.S <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000100
  4149:             //FLOGNP1.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0000110
  4150:             //FETOXM1.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001000
  4151:             //FTANH.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001001
  4152:             //FATAN.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001010
  4153:             //FASIN.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001100
  4154:             //FATANH.S <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001101
  4155:             //FSIN.S <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001110
  4156:             //FTAN.S <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0001111
  4157:             //FETOX.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010000
  4158:             //FTWOTOX.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010001
  4159:             //FTENTOX.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010010
  4160:             //FLOGN.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010100
  4161:             //FLOG10.S <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010101
  4162:             //FLOG2.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0010110
  4163:             //FABS.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011000
  4164:             //FCOSH.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011001
  4165:             //FNEG.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011010
  4166:             //FACOS.S <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011100
  4167:             //FCOS.S <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011101
  4168:             //FGETEXP.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011110
  4169:             //FGETMAN.S <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0011111
  4170:             //FDIV.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100000
  4171:             //FMOD.S <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100001
  4172:             //FADD.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100010
  4173:             //FMUL.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100011
  4174:             //FSGLDIV.S <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100100
  4175:             //FREM.S <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100101
  4176:             //FSCALE.S <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100110
  4177:             //FSGLMUL.S <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0100111
  4178:             //FSUB.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0101000
  4179:             //FCMP.S <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn0111000
  4180:             //FSMOVE.S <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1000000
  4181:             //FSSQRT.S <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1000001
  4182:             //FDMOVE.S <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1000100
  4183:             //FDSQRT.S <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1000101
  4184:             //FSABS.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1011000
  4185:             //FSNEG.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1011010
  4186:             //FDABS.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1011100
  4187:             //FDNEG.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1011110
  4188:             //FSDIV.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100000
  4189:             //FSADD.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100010
  4190:             //FSMUL.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100011
  4191:             //FDDIV.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100100
  4192:             //FDADD.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100110
  4193:             //FDMUL.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1100111
  4194:             //FSSUB.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1101000
  4195:             //FDSUB.S <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001nnn1101100
  4196:             //FSINCOS.S <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010001sss0110ccc
  4197:             //FTST.W <ea>                                     |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-0101000000111010
  4198:             //FMOVE.W <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000000
  4199:             //FINT.W <ea>,FPn                                 |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000001
  4200:             //FSINH.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000010
  4201:             //FINTRZ.W <ea>,FPn                               |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000011
  4202:             //FSQRT.W <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000100
  4203:             //FLOGNP1.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0000110
  4204:             //FETOXM1.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001000
  4205:             //FTANH.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001001
  4206:             //FATAN.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001010
  4207:             //FASIN.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001100
  4208:             //FATANH.W <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001101
  4209:             //FSIN.W <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001110
  4210:             //FTAN.W <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0001111
  4211:             //FETOX.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010000
  4212:             //FTWOTOX.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010001
  4213:             //FTENTOX.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010010
  4214:             //FLOGN.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010100
  4215:             //FLOG10.W <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010101
  4216:             //FLOG2.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0010110
  4217:             //FABS.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011000
  4218:             //FCOSH.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011001
  4219:             //FNEG.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011010
  4220:             //FACOS.W <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011100
  4221:             //FCOS.W <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011101
  4222:             //FGETEXP.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011110
  4223:             //FGETMAN.W <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0011111
  4224:             //FDIV.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100000
  4225:             //FMOD.W <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100001
  4226:             //FADD.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100010
  4227:             //FMUL.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100011
  4228:             //FSGLDIV.W <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100100
  4229:             //FREM.W <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100101
  4230:             //FSCALE.W <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100110
  4231:             //FSGLMUL.W <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0100111
  4232:             //FSUB.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0101000
  4233:             //FCMP.W <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn0111000
  4234:             //FSMOVE.W <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1000000
  4235:             //FSSQRT.W <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1000001
  4236:             //FDMOVE.W <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1000100
  4237:             //FDSQRT.W <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1000101
  4238:             //FSABS.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1011000
  4239:             //FSNEG.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1011010
  4240:             //FDABS.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1011100
  4241:             //FDNEG.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1011110
  4242:             //FSDIV.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100000
  4243:             //FSADD.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100010
  4244:             //FSMUL.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100011
  4245:             //FDDIV.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100100
  4246:             //FDADD.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100110
  4247:             //FDMUL.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1100111
  4248:             //FSSUB.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1101000
  4249:             //FDSUB.W <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100nnn1101100
  4250:             //FSINCOS.W <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010100sss0110ccc
  4251:             //FTST.B <ea>                                     |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-0101100000111010
  4252:             //FMOVE.B <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000000
  4253:             //FINT.B <ea>,FPn                                 |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000001
  4254:             //FSINH.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000010
  4255:             //FINTRZ.B <ea>,FPn                               |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000011
  4256:             //FSQRT.B <ea>,FPn                                |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000100
  4257:             //FLOGNP1.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0000110
  4258:             //FETOXM1.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001000
  4259:             //FTANH.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001001
  4260:             //FATAN.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001010
  4261:             //FASIN.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001100
  4262:             //FATANH.B <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001101
  4263:             //FSIN.B <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001110
  4264:             //FTAN.B <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0001111
  4265:             //FETOX.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010000
  4266:             //FTWOTOX.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010001
  4267:             //FTENTOX.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010010
  4268:             //FLOGN.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010100
  4269:             //FLOG10.B <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010101
  4270:             //FLOG2.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0010110
  4271:             //FABS.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011000
  4272:             //FCOSH.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011001
  4273:             //FNEG.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011010
  4274:             //FACOS.B <ea>,FPn                                |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011100
  4275:             //FCOS.B <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011101
  4276:             //FGETEXP.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011110
  4277:             //FGETMAN.B <ea>,FPn                              |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0011111
  4278:             //FDIV.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100000
  4279:             //FMOD.B <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100001
  4280:             //FADD.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100010
  4281:             //FMUL.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100011
  4282:             //FSGLDIV.B <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100100
  4283:             //FREM.B <ea>,FPn                                 |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100101
  4284:             //FSCALE.B <ea>,FPn                               |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100110
  4285:             //FSGLMUL.B <ea>,FPn                              |-|--CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0100111
  4286:             //FSUB.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0101000
  4287:             //FCMP.B <ea>,FPn                                 |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn0111000
  4288:             //FSMOVE.B <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1000000
  4289:             //FSSQRT.B <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1000001
  4290:             //FDMOVE.B <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1000100
  4291:             //FDSQRT.B <ea>,FPn                               |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1000101
  4292:             //FSABS.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1011000
  4293:             //FSNEG.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1011010
  4294:             //FDABS.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1011100
  4295:             //FDNEG.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1011110
  4296:             //FSDIV.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100000
  4297:             //FSADD.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100010
  4298:             //FSMUL.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100011
  4299:             //FDDIV.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100100
  4300:             //FDADD.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100110
  4301:             //FDMUL.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1100111
  4302:             //FSSUB.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1101000
  4303:             //FDSUB.B <ea>,FPn                                |-|----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110nnn1101100
  4304:             //FSINCOS.B <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010110sss0110ccc
  4305:             //FMOVE.L <ea>,FPIAR                              |-|--CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-1000010000000000
  4306:             //FMOVEM.L <ea>,FPIAR                             |-|--CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-1000010000000000
  4307:             //FMOVE.L <ea>,FPSR                               |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-1000100000000000
  4308:             //FMOVEM.L <ea>,FPSR                              |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-1000100000000000
  4309:             //FMOVE.L <ea>,FPCR                               |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-1001000000000000
  4310:             //FMOVEM.L <ea>,FPCR                              |-|--CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-1001000000000000
  4311:             //FMOVE.X FPn,<ea>                                |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-011010nnn0000000
  4312:             //FMOVE.P FPn,<ea>{#k}                            |-|--CCSS|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-011011nnnkkkkkkk
  4313:             //FMOVE.D FPn,<ea>                                |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-011101nnn0000000
  4314:             //FMOVE.P FPn,<ea>{Dk}                            |-|--CCSS|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-011111nnnkkk0000
  4315:             //FMOVEM.L FPSR/FPIAR,<ea>                        |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-1010110000000000
  4316:             //FMOVEM.L FPCR/FPIAR,<ea>                        |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-1011010000000000
  4317:             //FMOVEM.L FPCR/FPSR,<ea>                         |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-1011100000000000
  4318:             //FMOVEM.L FPCR/FPSR/FPIAR,<ea>                   |-|--CC46|-|-----|-----|  M+-WXZ  |1111_001_000_mmm_rrr-1011110000000000
  4319:             //FMOVEM.X #<data>,<ea>                           |-|--CC46|-|-----|-----|  M  WXZ  |1111_001_000_mmm_rrr-11110000dddddddd
  4320:             //FMOVEM.X <list>,<ea>                            |-|--CC46|-|-----|-----|  M  WXZ  |1111_001_000_mmm_rrr-11110000llllllll
  4321:             //FMOVEM.X Dl,<ea>                                |-|--CC4S|-|-----|-----|  M  WXZ  |1111_001_000_mmm_rrr-111110000lll0000
  4322:             //FMOVEM.L <ea>,FPSR/FPIAR                        |-|--CC46|-|-----|-----|  M+-WXZP |1111_001_000_mmm_rrr-1000110000000000
  4323:             //FMOVEM.L <ea>,FPCR/FPIAR                        |-|--CC46|-|-----|-----|  M+-WXZP |1111_001_000_mmm_rrr-1001010000000000
  4324:             //FMOVEM.L <ea>,FPCR/FPSR                         |-|--CC46|-|-----|-----|  M+-WXZP |1111_001_000_mmm_rrr-1001100000000000
  4325:             //FMOVEM.L <ea>,FPCR/FPSR/FPIAR                   |-|--CC46|-|-----|-----|  M+-WXZP |1111_001_000_mmm_rrr-1001110000000000
  4326:             //FMOVEM.X <ea>,#<data>                           |-|--CC46|-|-----|-----|  M+ WXZP |1111_001_000_mmm_rrr-11010000dddddddd
  4327:             //FMOVEM.X <ea>,<list>                            |-|--CC46|-|-----|-----|  M+ WXZP |1111_001_000_mmm_rrr-11010000llllllll
  4328:             //FMOVEM.X <ea>,Dl                                |-|--CC4S|-|-----|-----|  M+ WXZP |1111_001_000_mmm_rrr-110110000lll0000
  4329:             //FTST.X <ea>                                     |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-0100100000111010
  4330:             //FMOVE.X <ea>,FPn                                |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000000
  4331:             //FINT.X <ea>,FPn                                 |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000001
  4332:             //FSINH.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000010
  4333:             //FINTRZ.X <ea>,FPn                               |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000011
  4334:             //FSQRT.X <ea>,FPn                                |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000100
  4335:             //FLOGNP1.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0000110
  4336:             //FETOXM1.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001000
  4337:             //FTANH.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001001
  4338:             //FATAN.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001010
  4339:             //FASIN.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001100
  4340:             //FATANH.X <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001101
  4341:             //FSIN.X <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001110
  4342:             //FTAN.X <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0001111
  4343:             //FETOX.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010000
  4344:             //FTWOTOX.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010001
  4345:             //FTENTOX.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010010
  4346:             //FLOGN.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010100
  4347:             //FLOG10.X <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010101
  4348:             //FLOG2.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0010110
  4349:             //FABS.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011000
  4350:             //FCOSH.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011001
  4351:             //FNEG.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011010
  4352:             //FACOS.X <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011100
  4353:             //FCOS.X <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011101
  4354:             //FGETEXP.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011110
  4355:             //FGETMAN.X <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0011111
  4356:             //FDIV.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100000
  4357:             //FMOD.X <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100001
  4358:             //FADD.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100010
  4359:             //FMUL.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100011
  4360:             //FSGLDIV.X <ea>,FPn                              |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100100
  4361:             //FREM.X <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100101
  4362:             //FSCALE.X <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100110
  4363:             //FSGLMUL.X <ea>,FPn                              |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0100111
  4364:             //FSUB.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0101000
  4365:             //FCMP.X <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn0111000
  4366:             //FSMOVE.X <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1000000
  4367:             //FSSQRT.X <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1000001
  4368:             //FDMOVE.X <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1000100
  4369:             //FDSQRT.X <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1000101
  4370:             //FSABS.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1011000
  4371:             //FSNEG.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1011010
  4372:             //FDABS.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1011100
  4373:             //FDNEG.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1011110
  4374:             //FSDIV.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100000
  4375:             //FSADD.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100010
  4376:             //FSMUL.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100011
  4377:             //FDDIV.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100100
  4378:             //FDADD.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100110
  4379:             //FDMUL.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1100111
  4380:             //FSSUB.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1101000
  4381:             //FDSUB.X <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010nnn1101100
  4382:             //FSINCOS.X <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010010sss0110ccc
  4383:             //FTST.P <ea>                                     |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-0100110000111010
  4384:             //FMOVE.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000000
  4385:             //FINT.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000001
  4386:             //FSINH.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000010
  4387:             //FINTRZ.P <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000011
  4388:             //FSQRT.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000100
  4389:             //FLOGNP1.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0000110
  4390:             //FETOXM1.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001000
  4391:             //FTANH.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001001
  4392:             //FATAN.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001010
  4393:             //FASIN.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001100
  4394:             //FATANH.P <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001101
  4395:             //FSIN.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001110
  4396:             //FTAN.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0001111
  4397:             //FETOX.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010000
  4398:             //FTWOTOX.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010001
  4399:             //FTENTOX.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010010
  4400:             //FLOGN.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010100
  4401:             //FLOG10.P <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010101
  4402:             //FLOG2.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0010110
  4403:             //FABS.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011000
  4404:             //FCOSH.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011001
  4405:             //FNEG.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011010
  4406:             //FACOS.P <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011100
  4407:             //FCOS.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011101
  4408:             //FGETEXP.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011110
  4409:             //FGETMAN.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0011111
  4410:             //FDIV.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100000
  4411:             //FMOD.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100001
  4412:             //FADD.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100010
  4413:             //FMUL.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100011
  4414:             //FSGLDIV.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100100
  4415:             //FREM.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100101
  4416:             //FSCALE.P <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100110
  4417:             //FSGLMUL.P <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0100111
  4418:             //FSUB.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0101000
  4419:             //FCMP.P <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn0111000
  4420:             //FSMOVE.P <ea>,FPn                               |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1000000
  4421:             //FSSQRT.P <ea>,FPn                               |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1000001
  4422:             //FDMOVE.P <ea>,FPn                               |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1000100
  4423:             //FDSQRT.P <ea>,FPn                               |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1000101
  4424:             //FSABS.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1011000
  4425:             //FSNEG.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1011010
  4426:             //FDABS.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1011100
  4427:             //FDNEG.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1011110
  4428:             //FSDIV.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100000
  4429:             //FSADD.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100010
  4430:             //FSMUL.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100011
  4431:             //FDDIV.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100100
  4432:             //FDADD.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100110
  4433:             //FDMUL.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1100111
  4434:             //FSSUB.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1101000
  4435:             //FDSUB.P <ea>,FPn                                |-|----SS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011nnn1101100
  4436:             //FSINCOS.P <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010011sss0110ccc
  4437:             //FTST.D <ea>                                     |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-0101010000111010
  4438:             //FMOVE.D <ea>,FPn                                |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000000
  4439:             //FINT.D <ea>,FPn                                 |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000001
  4440:             //FSINH.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000010
  4441:             //FINTRZ.D <ea>,FPn                               |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000011
  4442:             //FSQRT.D <ea>,FPn                                |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000100
  4443:             //FLOGNP1.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0000110
  4444:             //FETOXM1.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001000
  4445:             //FTANH.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001001
  4446:             //FATAN.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001010
  4447:             //FASIN.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001100
  4448:             //FATANH.D <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001101
  4449:             //FSIN.D <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001110
  4450:             //FTAN.D <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0001111
  4451:             //FETOX.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010000
  4452:             //FTWOTOX.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010001
  4453:             //FTENTOX.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010010
  4454:             //FLOGN.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010100
  4455:             //FLOG10.D <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010101
  4456:             //FLOG2.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0010110
  4457:             //FABS.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011000
  4458:             //FCOSH.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011001
  4459:             //FNEG.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011010
  4460:             //FACOS.D <ea>,FPn                                |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011100
  4461:             //FCOS.D <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011101
  4462:             //FGETEXP.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011110
  4463:             //FGETMAN.D <ea>,FPn                              |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0011111
  4464:             //FDIV.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100000
  4465:             //FMOD.D <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100001
  4466:             //FADD.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100010
  4467:             //FMUL.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100011
  4468:             //FSGLDIV.D <ea>,FPn                              |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100100
  4469:             //FREM.D <ea>,FPn                                 |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100101
  4470:             //FSCALE.D <ea>,FPn                               |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100110
  4471:             //FSGLMUL.D <ea>,FPn                              |-|--CCS6|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0100111
  4472:             //FSUB.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0101000
  4473:             //FCMP.D <ea>,FPn                                 |-|--CC46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn0111000
  4474:             //FSMOVE.D <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1000000
  4475:             //FSSQRT.D <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1000001
  4476:             //FDMOVE.D <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1000100
  4477:             //FDSQRT.D <ea>,FPn                               |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1000101
  4478:             //FSABS.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1011000
  4479:             //FSNEG.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1011010
  4480:             //FDABS.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1011100
  4481:             //FDNEG.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1011110
  4482:             //FSDIV.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100000
  4483:             //FSADD.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100010
  4484:             //FSMUL.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100011
  4485:             //FDDIV.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100100
  4486:             //FDADD.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100110
  4487:             //FDMUL.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1100111
  4488:             //FSSUB.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1101000
  4489:             //FDSUB.D <ea>,FPn                                |-|----46|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101nnn1101100
  4490:             //FSINCOS.D <ea>,FPc:FPs                          |-|--CCSS|-|-----|-----|  M+-WXZPI|1111_001_000_mmm_rrr-010101sss0110ccc
  4491:             //FMOVEM.X #<data>,-(Ar)                          |-|--CC46|-|-----|-----|    -     |1111_001_000_100_rrr-11100000dddddddd
  4492:             //FMOVEM.X <list>,-(Ar)                           |-|--CC46|-|-----|-----|    -     |1111_001_000_100_rrr-11100000llllllll
  4493:             //FMOVEM.X Dl,-(Ar)                               |-|--CC4S|-|-----|-----|    -     |1111_001_000_100_rrr-111010000lll0000
  4494:             //FMOVEM.L #<data>,#<data>,FPSR/FPIAR             |-|--CC4S|-|-----|-----|         I|1111_001_000_111_100-1000110000000000-{data}
  4495:             //FMOVEM.L #<data>,#<data>,FPCR/FPIAR             |-|--CC4S|-|-----|-----|         I|1111_001_000_111_100-1001010000000000-{data}
  4496:             //FMOVEM.L #<data>,#<data>,FPCR/FPSR              |-|--CC4S|-|-----|-----|         I|1111_001_000_111_100-1001100000000000-{data}
  4497:             //FMOVEM.L #<data>,#<data>,#<data>,FPCR/FPSR/FPIAR|-|--CC4S|-|-----|-----|         I|1111_001_000_111_100-1001110000000000-{data}
  4498:           case 0b1111_001_000:
  4499:             irpFgen ();
  4500:             break irpSwitch;
  4501: 
  4502:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4503:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4504:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4505:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4506:             //FSF.B <ea>                                      |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000000
  4507:             //FSEQ.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000001
  4508:             //FSOGT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000010
  4509:             //FSOGE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000011
  4510:             //FSOLT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000100
  4511:             //FSOLE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000101
  4512:             //FSOGL.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000110
  4513:             //FSOR.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000000111
  4514:             //FSUN.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001000
  4515:             //FSUEQ.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001001
  4516:             //FSUGT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001010
  4517:             //FSUGE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001011
  4518:             //FSULT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001100
  4519:             //FSULE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001101
  4520:             //FSNE.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001110
  4521:             //FST.B <ea>                                      |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000001111
  4522:             //FSSF.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010000
  4523:             //FSSEQ.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010001
  4524:             //FSGT.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010010
  4525:             //FSGE.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010011
  4526:             //FSLT.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010100
  4527:             //FSLE.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010101
  4528:             //FSGL.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010110
  4529:             //FSGLE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000010111
  4530:             //FSNGLE.B <ea>                                   |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011000
  4531:             //FSNGL.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011001
  4532:             //FSNLE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011010
  4533:             //FSNLT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011011
  4534:             //FSNGE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011100
  4535:             //FSNGT.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011101
  4536:             //FSSNE.B <ea>                                    |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011110
  4537:             //FSST.B <ea>                                     |-|--CC4S|-|-----|-----|D M+-WXZ  |1111_001_001_mmm_rrr-0000000000011111
  4538:             //FDBF Dr,<label>                                 |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000000-{offset}
  4539:             //FDBRA Dr,<label>                                |A|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000000-{offset}       [FDBF Dr,<label>]
  4540:             //FDBEQ Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000001-{offset}
  4541:             //FDBOGT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000010-{offset}
  4542:             //FDBOGE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000011-{offset}
  4543:             //FDBOLT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000100-{offset}
  4544:             //FDBOLE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000101-{offset}
  4545:             //FDBOGL Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000110-{offset}
  4546:             //FDBOR Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000000111-{offset}
  4547:             //FDBUN Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001000-{offset}
  4548:             //FDBUEQ Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001001-{offset}
  4549:             //FDBUGT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001010-{offset}
  4550:             //FDBUGE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001011-{offset}
  4551:             //FDBULT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001100-{offset}
  4552:             //FDBULE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001101-{offset}
  4553:             //FDBNE Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001110-{offset}
  4554:             //FDBT Dr,<label>                                 |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000001111-{offset}
  4555:             //FDBSF Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010000-{offset}
  4556:             //FDBSEQ Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010001-{offset}
  4557:             //FDBGT Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010010-{offset}
  4558:             //FDBGE Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010011-{offset}
  4559:             //FDBLT Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010100-{offset}
  4560:             //FDBLE Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010101-{offset}
  4561:             //FDBGL Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010110-{offset}
  4562:             //FDBGLE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000010111-{offset}
  4563:             //FDBNGLE Dr,<label>                              |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011000-{offset}
  4564:             //FDBNGL Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011001-{offset}
  4565:             //FDBNLE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011010-{offset}
  4566:             //FDBNLT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011011-{offset}
  4567:             //FDBNGE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011100-{offset}
  4568:             //FDBNGT Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011101-{offset}
  4569:             //FDBSNE Dr,<label>                               |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011110-{offset}
  4570:             //FDBST Dr,<label>                                |-|--CC4S|-|-----|-----|          |1111_001_001_001_rrr-0000000000011111-{offset}
  4571:             //FTRAPF.W #<data>                                |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000000-{data}
  4572:             //FTRAPEQ.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000001-{data}
  4573:             //FTRAPOGT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000010-{data}
  4574:             //FTRAPOGE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000011-{data}
  4575:             //FTRAPOLT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000100-{data}
  4576:             //FTRAPOLE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000101-{data}
  4577:             //FTRAPOGL.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000110-{data}
  4578:             //FTRAPOR.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000000111-{data}
  4579:             //FTRAPUN.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001000-{data}
  4580:             //FTRAPUEQ.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001001-{data}
  4581:             //FTRAPUGT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001010-{data}
  4582:             //FTRAPUGE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001011-{data}
  4583:             //FTRAPULT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001100-{data}
  4584:             //FTRAPULE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001101-{data}
  4585:             //FTRAPNE.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001110-{data}
  4586:             //FTRAPT.W #<data>                                |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000001111-{data}
  4587:             //FTRAPSF.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010000-{data}
  4588:             //FTRAPSEQ.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010001-{data}
  4589:             //FTRAPGT.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010010-{data}
  4590:             //FTRAPGE.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010011-{data}
  4591:             //FTRAPLT.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010100-{data}
  4592:             //FTRAPLE.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010101-{data}
  4593:             //FTRAPGL.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010110-{data}
  4594:             //FTRAPGLE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000010111-{data}
  4595:             //FTRAPNGLE.W #<data>                             |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011000-{data}
  4596:             //FTRAPNGL.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011001-{data}
  4597:             //FTRAPNLE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011010-{data}
  4598:             //FTRAPNLT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011011-{data}
  4599:             //FTRAPNGE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011100-{data}
  4600:             //FTRAPNGT.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011101-{data}
  4601:             //FTRAPSNE.W #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011110-{data}
  4602:             //FTRAPST.W #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_010-0000000000011111-{data}
  4603:             //FTRAPF.L #<data>                                |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000000-{data}
  4604:             //FTRAPEQ.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000001-{data}
  4605:             //FTRAPOGT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000010-{data}
  4606:             //FTRAPOGE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000011-{data}
  4607:             //FTRAPOLT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000100-{data}
  4608:             //FTRAPOLE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000101-{data}
  4609:             //FTRAPOGL.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000110-{data}
  4610:             //FTRAPOR.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000000111-{data}
  4611:             //FTRAPUN.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001000-{data}
  4612:             //FTRAPUEQ.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001001-{data}
  4613:             //FTRAPUGT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001010-{data}
  4614:             //FTRAPUGE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001011-{data}
  4615:             //FTRAPULT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001100-{data}
  4616:             //FTRAPULE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001101-{data}
  4617:             //FTRAPNE.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001110-{data}
  4618:             //FTRAPT.L #<data>                                |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000001111-{data}
  4619:             //FTRAPSF.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010000-{data}
  4620:             //FTRAPSEQ.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010001-{data}
  4621:             //FTRAPGT.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010010-{data}
  4622:             //FTRAPGE.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010011-{data}
  4623:             //FTRAPLT.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010100-{data}
  4624:             //FTRAPLE.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010101-{data}
  4625:             //FTRAPGL.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010110-{data}
  4626:             //FTRAPGLE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000010111-{data}
  4627:             //FTRAPNGLE.L #<data>                             |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011000-{data}
  4628:             //FTRAPNGL.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011001-{data}
  4629:             //FTRAPNLE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011010-{data}
  4630:             //FTRAPNLT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011011-{data}
  4631:             //FTRAPNGE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011100-{data}
  4632:             //FTRAPNGT.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011101-{data}
  4633:             //FTRAPSNE.L #<data>                              |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011110-{data}
  4634:             //FTRAPST.L #<data>                               |-|--CC4S|-|-----|-----|          |1111_001_001_111_011-0000000000011111-{data}
  4635:             //FTRAPF                                          |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000000
  4636:             //FTRAPEQ                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000001
  4637:             //FTRAPOGT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000010
  4638:             //FTRAPOGE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000011
  4639:             //FTRAPOLT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000100
  4640:             //FTRAPOLE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000101
  4641:             //FTRAPOGL                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000110
  4642:             //FTRAPOR                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000000111
  4643:             //FTRAPUN                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001000
  4644:             //FTRAPUEQ                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001001
  4645:             //FTRAPUGT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001010
  4646:             //FTRAPUGE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001011
  4647:             //FTRAPULT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001100
  4648:             //FTRAPULE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001101
  4649:             //FTRAPNE                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001110
  4650:             //FTRAPT                                          |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000001111
  4651:             //FTRAPSF                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010000
  4652:             //FTRAPSEQ                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010001
  4653:             //FTRAPGT                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010010
  4654:             //FTRAPGE                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010011
  4655:             //FTRAPLT                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010100
  4656:             //FTRAPLE                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010101
  4657:             //FTRAPGL                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010110
  4658:             //FTRAPGLE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000010111
  4659:             //FTRAPNGLE                                       |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011000
  4660:             //FTRAPNGL                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011001
  4661:             //FTRAPNLE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011010
  4662:             //FTRAPNLT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011011
  4663:             //FTRAPNGE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011100
  4664:             //FTRAPNGT                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011101
  4665:             //FTRAPSNE                                        |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011110
  4666:             //FTRAPST                                         |-|--CC4S|-|-----|-----|          |1111_001_001_111_100-0000000000011111
  4667:           case 0b1111_001_001:
  4668:             irpFscc ();
  4669:             break irpSwitch;
  4670: 
  4671:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4672:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4673:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4674:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4675:             //FNOP                                            |A|--CC46|-|-----|-----|          |1111_001_010_000_000-0000000000000000        [FBF.W (*)+2]
  4676:             //FBF.W <label>                                   |-|--CC46|-|-----|-----|          |1111_001_010_000_000-{offset}
  4677:             //FBEQ.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_000_001-{offset}
  4678:             //FBOGT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_000_010-{offset}
  4679:             //FBOGE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_000_011-{offset}
  4680:             //FBOLT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_000_100-{offset}
  4681:             //FBOLE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_000_101-{offset}
  4682:             //FBOGL.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_000_110-{offset}
  4683:             //FBOR.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_000_111-{offset}
  4684:             //FBUN.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_001_000-{offset}
  4685:             //FBUEQ.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_001_001-{offset}
  4686:             //FBUGT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_001_010-{offset}
  4687:             //FBUGE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_001_011-{offset}
  4688:             //FBULT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_001_100-{offset}
  4689:             //FBULE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_001_101-{offset}
  4690:             //FBNE.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_001_110-{offset}
  4691:             //FBT.W <label>                                   |-|--CC46|-|-----|-----|          |1111_001_010_001_111-{offset}
  4692:             //FBRA.W <label>                                  |A|--CC46|-|-----|-----|          |1111_001_010_001_111-{offset}        [FBT.W <label>]
  4693:             //FBSF.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_000-{offset}
  4694:             //FBSEQ.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_010_001-{offset}
  4695:             //FBGT.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_010-{offset}
  4696:             //FBGE.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_011-{offset}
  4697:             //FBLT.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_100-{offset}
  4698:             //FBLE.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_101-{offset}
  4699:             //FBGL.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_010_110-{offset}
  4700:             //FBGLE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_010_111-{offset}
  4701:             //FBNGLE.W <label>                                |-|--CC46|-|-----|-----|          |1111_001_010_011_000-{offset}
  4702:             //FBNGL.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_001-{offset}
  4703:             //FBNLE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_010-{offset}
  4704:             //FBNLT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_011-{offset}
  4705:             //FBNGE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_100-{offset}
  4706:             //FBNGT.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_101-{offset}
  4707:             //FBSNE.W <label>                                 |-|--CC46|-|-----|-----|          |1111_001_010_011_110-{offset}
  4708:             //FBST.W <label>                                  |-|--CC46|-|-----|-----|          |1111_001_010_011_111-{offset}
  4709:           case 0b1111_001_010:
  4710:             irpFbccWord ();
  4711:             break irpSwitch;
  4712: 
  4713:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4714:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4715:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4716:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4717:             //FBF.L <label>                                   |-|--CC46|-|-----|-----|          |1111_001_011_000_000-{offset}
  4718:             //FBEQ.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_000_001-{offset}
  4719:             //FBOGT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_000_010-{offset}
  4720:             //FBOGE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_000_011-{offset}
  4721:             //FBOLT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_000_100-{offset}
  4722:             //FBOLE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_000_101-{offset}
  4723:             //FBOGL.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_000_110-{offset}
  4724:             //FBOR.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_000_111-{offset}
  4725:             //FBUN.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_001_000-{offset}
  4726:             //FBUEQ.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_001_001-{offset}
  4727:             //FBUGT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_001_010-{offset}
  4728:             //FBUGE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_001_011-{offset}
  4729:             //FBULT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_001_100-{offset}
  4730:             //FBULE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_001_101-{offset}
  4731:             //FBNE.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_001_110-{offset}
  4732:             //FBT.L <label>                                   |-|--CC46|-|-----|-----|          |1111_001_011_001_111-{offset}
  4733:             //FBRA.L <label>                                  |A|--CC46|-|-----|-----|          |1111_001_011_001_111-{offset}        [FBT.L <label>]
  4734:             //FBSF.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_000-{offset}
  4735:             //FBSEQ.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_010_001-{offset}
  4736:             //FBGT.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_010-{offset}
  4737:             //FBGE.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_011-{offset}
  4738:             //FBLT.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_100-{offset}
  4739:             //FBLE.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_101-{offset}
  4740:             //FBGL.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_010_110-{offset}
  4741:             //FBGLE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_010_111-{offset}
  4742:             //FBNGLE.L <label>                                |-|--CC46|-|-----|-----|          |1111_001_011_011_000-{offset}
  4743:             //FBNGL.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_001-{offset}
  4744:             //FBNLE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_010-{offset}
  4745:             //FBNLT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_011-{offset}
  4746:             //FBNGE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_100-{offset}
  4747:             //FBNGT.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_101-{offset}
  4748:             //FBSNE.L <label>                                 |-|--CC46|-|-----|-----|          |1111_001_011_011_110-{offset}
  4749:             //FBST.L <label>                                  |-|--CC46|-|-----|-----|          |1111_001_011_011_111-{offset}
  4750:           case 0b1111_001_011:
  4751:             irpFbccLong ();
  4752:             break irpSwitch;
  4753: 
  4754:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4755:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4756:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4757:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4758:             //FSAVE <ea>                                      |-|--CC46|P|-----|-----|  M -WXZ  |1111_001_100_mmm_rrr
  4759:           case 0b1111_001_100:
  4760:             irpFsave ();
  4761:             break irpSwitch;
  4762: 
  4763:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4764:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4765:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4766:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4767:             //FRESTORE <ea>                                   |-|--CC46|P|-----|-----|  M+ WXZP |1111_001_101_mmm_rrr
  4768:           case 0b1111_001_101:
  4769:             irpFrestore ();
  4770:             break irpSwitch;
  4771: 
  4772:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4773:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4774:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4775:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4776:             //CINVL NC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_000_001_rrr
  4777:             //CINVP NC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_000_010_rrr
  4778:             //CINVA NC                                        |-|----46|P|-----|-----|          |1111_010_000_011_000
  4779:             //CPUSHL NC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_000_101_rrr
  4780:             //CPUSHP NC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_000_110_rrr
  4781:             //CPUSHA NC                                       |-|----46|P|-----|-----|          |1111_010_000_111_000
  4782:           case 0b1111_010_000:
  4783:             irpCinvCpushNC ();
  4784:             break irpSwitch;
  4785: 
  4786:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4787:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4788:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4789:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4790:             //CINVL DC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_001_001_rrr
  4791:             //CINVP DC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_001_010_rrr
  4792:             //CINVA DC                                        |-|----46|P|-----|-----|          |1111_010_001_011_000
  4793:             //CPUSHL DC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_001_101_rrr
  4794:             //CPUSHP DC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_001_110_rrr
  4795:             //CPUSHA DC                                       |-|----46|P|-----|-----|          |1111_010_001_111_000
  4796:           case 0b1111_010_001:
  4797:             irpCinvCpushDC ();
  4798:             break irpSwitch;
  4799: 
  4800:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4801:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4802:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4803:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4804:             //CINVL IC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_010_001_rrr
  4805:             //CINVP IC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_010_010_rrr
  4806:             //CINVA IC                                        |-|----46|P|-----|-----|          |1111_010_010_011_000
  4807:             //CPUSHL IC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_010_101_rrr
  4808:             //CPUSHP IC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_010_110_rrr
  4809:             //CPUSHA IC                                       |-|----46|P|-----|-----|          |1111_010_010_111_000
  4810:           case 0b1111_010_010:
  4811:             irpCinvCpushIC ();
  4812:             break irpSwitch;
  4813: 
  4814:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4815:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4816:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4817:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4818:             //CINVL BC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_011_001_rrr
  4819:             //CINVP BC,(Ar)                                   |-|----46|P|-----|-----|          |1111_010_011_010_rrr
  4820:             //CINVA BC                                        |-|----46|P|-----|-----|          |1111_010_011_011_000
  4821:             //CPUSHL BC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_011_101_rrr
  4822:             //CPUSHP BC,(Ar)                                  |-|----46|P|-----|-----|          |1111_010_011_110_rrr
  4823:             //CPUSHA BC                                       |-|----46|P|-----|-----|          |1111_010_011_111_000
  4824:           case 0b1111_010_011:
  4825:             irpCinvCpushBC ();
  4826:             break irpSwitch;
  4827: 
  4828:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4829:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4830:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4831:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4832:             //PFLUSHN (Ar)                                    |-|----46|P|-----|-----|          |1111_010_100_000_rrr
  4833:             //PFLUSH (Ar)                                     |-|----46|P|-----|-----|          |1111_010_100_001_rrr
  4834:             //PFLUSHAN                                        |-|----46|P|-----|-----|          |1111_010_100_010_000
  4835:             //PFLUSHA                                         |-|----46|P|-----|-----|          |1111_010_100_011_000
  4836:           case 0b1111_010_100:
  4837:             irpPflush ();
  4838:             break irpSwitch;
  4839: 
  4840:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4841:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4842:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4843:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4844:             //PLPAW (Ar)                                      |-|-----6|P|-----|-----|          |1111_010_110_001_rrr
  4845:           case 0b1111_010_110:
  4846:             irpPlpaw ();
  4847:             break irpSwitch;
  4848: 
  4849:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4850:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4851:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4852:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4853:             //PLPAR (Ar)                                      |-|-----6|P|-----|-----|          |1111_010_111_001_rrr
  4854:           case 0b1111_010_111:
  4855:             irpPlpar ();
  4856:             break irpSwitch;
  4857: 
  4858:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4859:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4860:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4861:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4862:             //MOVE16 (Ar)+,xxx.L                              |-|----46|-|-----|-----|          |1111_011_000_000_rrr-{address}
  4863:             //MOVE16 xxx.L,(Ar)+                              |-|----46|-|-----|-----|          |1111_011_000_001_rrr-{address}
  4864:             //MOVE16 (Ar),xxx.L                               |-|----46|-|-----|-----|          |1111_011_000_010_rrr-{address}
  4865:             //MOVE16 xxx.L,(Ar)                               |-|----46|-|-----|-----|          |1111_011_000_011_rrr-{address}
  4866:             //MOVE16 (Ar)+,(An)+                              |-|----46|-|-----|-----|          |1111_011_000_100_rrr-1nnn000000000000
  4867:           case 0b1111_011_000:
  4868:             irpMove16 ();
  4869:             break irpSwitch;
  4870: 
  4871:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4872:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4873:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4874:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4875:             //LPSTOP.W #<data>                                |-|-----6|P|-----|-----|          |1111_100_000_000_000-0000000111000000-{data}
  4876:           case 0b1111_100_000:
  4877:             irpLpstop ();
  4878:             break irpSwitch;
  4879: 
  4880:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4881:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4882:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4883:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4884:             //FPACK <data>                                    |A|012346|-|UUUUU|*****|          |1111_111_0dd_ddd_ddd [FLINE #<data>]
  4885:           case 0b1111_111_000:
  4886:           case 0b1111_111_001:
  4887:           case 0b1111_111_010:
  4888:           case 0b1111_111_011:
  4889:             irpFpack ();
  4890:             break irpSwitch;
  4891: 
  4892:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4893:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4894:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4895:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4896:             //DOS <data>                                      |A|012346|-|UUUUU|UUUUU|          |1111_111_1dd_ddd_ddd [FLINE #<data>]
  4897:           case 0b1111_111_100:
  4898:           case 0b1111_111_101:
  4899:           case 0b1111_111_110:
  4900:           case 0b1111_111_111:
  4901:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4902:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4903:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4904:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4905:             //FLINE #<data>                                   |-|012346|-|UUUUU|UUUUU|          |1111_ddd_ddd_ddd_ddd (line 1111 emulator)
  4906:           case 0b1111_000_000:
  4907:           case 0b1111_000_001:
  4908:           case 0b1111_000_010:
  4909:           case 0b1111_000_011:
  4910:           case 0b1111_000_100:
  4911:           case 0b1111_000_101:
  4912:           case 0b1111_000_110:
  4913:           case 0b1111_000_111:
  4914:           case 0b1111_001_110:
  4915:           case 0b1111_001_111:
  4916:           case 0b1111_010_101:
  4917:           case 0b1111_011_001:
  4918:           case 0b1111_011_010:
  4919:           case 0b1111_011_011:
  4920:           case 0b1111_011_100:
  4921:           case 0b1111_011_101:
  4922:           case 0b1111_011_110:
  4923:           case 0b1111_011_111:
  4924:           case 0b1111_100_001:
  4925:           case 0b1111_100_010:
  4926:           case 0b1111_100_011:
  4927:           case 0b1111_100_100:
  4928:           case 0b1111_100_101:
  4929:           case 0b1111_100_110:
  4930:           case 0b1111_100_111:
  4931:           case 0b1111_101_000:
  4932:           case 0b1111_101_001:
  4933:           case 0b1111_101_010:
  4934:           case 0b1111_101_011:
  4935:           case 0b1111_101_100:
  4936:           case 0b1111_101_101:
  4937:           case 0b1111_101_110:
  4938:           case 0b1111_101_111:
  4939:           case 0b1111_110_000:
  4940:           case 0b1111_110_001:
  4941:           case 0b1111_110_010:
  4942:           case 0b1111_110_011:
  4943:           case 0b1111_110_100:
  4944:           case 0b1111_110_101:
  4945:           case 0b1111_110_110:
  4946:           case 0b1111_110_111:
  4947:             irpFline ();
  4948:             break irpSwitch;
  4949: 
  4950:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4951:             //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  4952:             //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  4953:             //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  4954:             //HFSBOOT                                         |-|012346|-|-----|-----|          |0100_111_000_000_000
  4955:             //HFSINST                                         |-|012346|-|-----|-----|          |0100_111_000_000_001
  4956:             //HFSSTR                                          |-|012346|-|-----|-----|          |0100_111_000_000_010
  4957:             //HFSINT                                          |-|012346|-|-----|-----|          |0100_111_000_000_011
  4958:             //EMXNOP                                          |-|012346|-|-----|-----|          |0100_111_000_000_100
  4959:           case 0b0100_111_000:
  4960:             irpEmx ();
  4961:             break;
  4962: 
  4963:           default:
  4964:             irpIllegal ();
  4965: 
  4966:           }  //switch XEiJ.regOC >>> 6
  4967: 
  4968:           //トレース例外
  4969:           //  命令実行前にsrのTビットがセットされていたとき命令実行後にトレース例外が発生する
  4970:           //  トレース例外の発動は命令の機能拡張であり、他の例外処理で命令が中断されたときはトレース例外は発生しない
  4971:           //  命令例外はトレース例外の前に、割り込み例外はトレース例外の後に処理される
  4972:           //  未実装命令のエミュレーションルーチンはrteの直前にsrのTビットを復元することで未実装命令が1個の命令としてトレースされたように見せる
  4973:           //    ;DOSコールの終了
  4974:           //    ~008616:
  4975:           //            btst.b  #$07,(sp)
  4976:           //            bne.s   ~00861E
  4977:           //            rte
  4978:           //    ~00861E:
  4979:           //            ori.w   #$8000,sr
  4980:           //            rte
  4981:           if (XEiJ.mpuTraceFlag != 0) {  //命令実行前にsrのTビットがセットされていた
  4982:             irpExceptionFormat2 (M68kException.M6E_TRACE << 2, XEiJ.regPC, XEiJ.regPC0);  //pcは次の命令
  4983:           }
  4984:           //クロックをカウントアップする
  4985:           //  オペランドをアクセスした時点ではまだXEiJ.mpuClockTimeが更新されていないのでXEiJ.mpuClockTime<xxxClock
  4986:           //  xxxTickを呼び出すときはXEiJ.mpuClockTime>=xxxClock
  4987:           XEiJ.mpuClockTime += XEiJ.mpuModifiedUnit * XEiJ.mpuCycleCount;
  4988:           //デバイスを呼び出す
  4989:           TickerQueue.tkqRun (XEiJ.mpuClockTime);
  4990:           //割り込みを受け付ける
  4991:           if ((t = XEiJ.mpuIMR & XEiJ.mpuIRR) != 0) {  //マスクされているレベルよりも高くて受け付けていない割り込みがあるとき
  4992:             if (XEiJ.MPU_INTERRUPT_SWITCH) {
  4993:               switch (t) {
  4994:               case 0b00000001:
  4995:               case 0b00000011:
  4996:               case 0b00000101:
  4997:               case 0b00000111:
  4998:               case 0b00001001:
  4999:               case 0b00001011:
  5000:               case 0b00001101:
  5001:               case 0b00001111:
  5002:               case 0b00010001:
  5003:               case 0b00010011:
  5004:               case 0b00010101:
  5005:               case 0b00010111:
  5006:               case 0b00011001:
  5007:               case 0b00011011:
  5008:               case 0b00011101:
  5009:               case 0b00011111:
  5010:               case 0b00100001:
  5011:               case 0b00100011:
  5012:               case 0b00100101:
  5013:               case 0b00100111:
  5014:               case 0b00101001:
  5015:               case 0b00101011:
  5016:               case 0b00101101:
  5017:               case 0b00101111:
  5018:               case 0b00110001:
  5019:               case 0b00110011:
  5020:               case 0b00110101:
  5021:               case 0b00110111:
  5022:               case 0b00111001:
  5023:               case 0b00111011:
  5024:               case 0b00111101:
  5025:               case 0b00111111:
  5026:               case 0b01000001:
  5027:               case 0b01000011:
  5028:               case 0b01000101:
  5029:               case 0b01000111:
  5030:               case 0b01001001:
  5031:               case 0b01001011:
  5032:               case 0b01001101:
  5033:               case 0b01001111:
  5034:               case 0b01010001:
  5035:               case 0b01010011:
  5036:               case 0b01010101:
  5037:               case 0b01010111:
  5038:               case 0b01011001:
  5039:               case 0b01011011:
  5040:               case 0b01011101:
  5041:               case 0b01011111:
  5042:               case 0b01100001:
  5043:               case 0b01100011:
  5044:               case 0b01100101:
  5045:               case 0b01100111:
  5046:               case 0b01101001:
  5047:               case 0b01101011:
  5048:               case 0b01101101:
  5049:               case 0b01101111:
  5050:               case 0b01110001:
  5051:               case 0b01110011:
  5052:               case 0b01110101:
  5053:               case 0b01110111:
  5054:               case 0b01111001:
  5055:               case 0b01111011:
  5056:               case 0b01111101:
  5057:               case 0b01111111:
  5058:               case 0b10000001:
  5059:               case 0b10000011:
  5060:               case 0b10000101:
  5061:               case 0b10000111:
  5062:               case 0b10001001:
  5063:               case 0b10001011:
  5064:               case 0b10001101:
  5065:               case 0b10001111:
  5066:               case 0b10010001:
  5067:               case 0b10010011:
  5068:               case 0b10010101:
  5069:               case 0b10010111:
  5070:               case 0b10011001:
  5071:               case 0b10011011:
  5072:               case 0b10011101:
  5073:               case 0b10011111:
  5074:               case 0b10100001:
  5075:               case 0b10100011:
  5076:               case 0b10100101:
  5077:               case 0b10100111:
  5078:               case 0b10101001:
  5079:               case 0b10101011:
  5080:               case 0b10101101:
  5081:               case 0b10101111:
  5082:               case 0b10110001:
  5083:               case 0b10110011:
  5084:               case 0b10110101:
  5085:               case 0b10110111:
  5086:               case 0b10111001:
  5087:               case 0b10111011:
  5088:               case 0b10111101:
  5089:               case 0b10111111:
  5090:               case 0b11000001:
  5091:               case 0b11000011:
  5092:               case 0b11000101:
  5093:               case 0b11000111:
  5094:               case 0b11001001:
  5095:               case 0b11001011:
  5096:               case 0b11001101:
  5097:               case 0b11001111:
  5098:               case 0b11010001:
  5099:               case 0b11010011:
  5100:               case 0b11010101:
  5101:               case 0b11010111:
  5102:               case 0b11011001:
  5103:               case 0b11011011:
  5104:               case 0b11011101:
  5105:               case 0b11011111:
  5106:               case 0b11100001:
  5107:               case 0b11100011:
  5108:               case 0b11100101:
  5109:               case 0b11100111:
  5110:               case 0b11101001:
  5111:               case 0b11101011:
  5112:               case 0b11101101:
  5113:               case 0b11101111:
  5114:               case 0b11110001:
  5115:               case 0b11110011:
  5116:               case 0b11110101:
  5117:               case 0b11110111:
  5118:               case 0b11111001:
  5119:               case 0b11111011:
  5120:               case 0b11111101:
  5121:               case 0b11111111:
  5122:                 //レベル7
  5123:                 XEiJ.mpuIRR &= ~XEiJ.MPU_SYS_INTERRUPT_MASK;  //割り込みを受け付ける
  5124:                 if ((t = XEiJ.sysAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5125:                   irpInterrupt (t << 2, XEiJ.MPU_SYS_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5126:                 }
  5127:                 break;
  5128:               case 0b00000010:
  5129:               case 0b00000110:
  5130:               case 0b00001010:
  5131:               case 0b00001110:
  5132:               case 0b00010010:
  5133:               case 0b00010110:
  5134:               case 0b00011010:
  5135:               case 0b00011110:
  5136:               case 0b00100010:
  5137:               case 0b00100110:
  5138:               case 0b00101010:
  5139:               case 0b00101110:
  5140:               case 0b00110010:
  5141:               case 0b00110110:
  5142:               case 0b00111010:
  5143:               case 0b00111110:
  5144:               case 0b01000010:
  5145:               case 0b01000110:
  5146:               case 0b01001010:
  5147:               case 0b01001110:
  5148:               case 0b01010010:
  5149:               case 0b01010110:
  5150:               case 0b01011010:
  5151:               case 0b01011110:
  5152:               case 0b01100010:
  5153:               case 0b01100110:
  5154:               case 0b01101010:
  5155:               case 0b01101110:
  5156:               case 0b01110010:
  5157:               case 0b01110110:
  5158:               case 0b01111010:
  5159:               case 0b01111110:
  5160:               case 0b10000010:
  5161:               case 0b10000110:
  5162:               case 0b10001010:
  5163:               case 0b10001110:
  5164:               case 0b10010010:
  5165:               case 0b10010110:
  5166:               case 0b10011010:
  5167:               case 0b10011110:
  5168:               case 0b10100010:
  5169:               case 0b10100110:
  5170:               case 0b10101010:
  5171:               case 0b10101110:
  5172:               case 0b10110010:
  5173:               case 0b10110110:
  5174:               case 0b10111010:
  5175:               case 0b10111110:
  5176:               case 0b11000010:
  5177:               case 0b11000110:
  5178:               case 0b11001010:
  5179:               case 0b11001110:
  5180:               case 0b11010010:
  5181:               case 0b11010110:
  5182:               case 0b11011010:
  5183:               case 0b11011110:
  5184:               case 0b11100010:
  5185:               case 0b11100110:
  5186:               case 0b11101010:
  5187:               case 0b11101110:
  5188:               case 0b11110010:
  5189:               case 0b11110110:
  5190:               case 0b11111010:
  5191:               case 0b11111110:
  5192:                 //レベル6
  5193:                 XEiJ.mpuIRR &= ~XEiJ.MPU_MFP_INTERRUPT_MASK;  //割り込みを受け付ける
  5194:                 if ((t = MC68901.mfpAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5195:                   irpInterrupt (t << 2, XEiJ.MPU_MFP_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5196:                 }
  5197:                 break;
  5198:               case 0b00000100:
  5199:               case 0b00001100:
  5200:               case 0b00010100:
  5201:               case 0b00011100:
  5202:               case 0b00100100:
  5203:               case 0b00101100:
  5204:               case 0b00110100:
  5205:               case 0b00111100:
  5206:               case 0b01000100:
  5207:               case 0b01001100:
  5208:               case 0b01010100:
  5209:               case 0b01011100:
  5210:               case 0b01100100:
  5211:               case 0b01101100:
  5212:               case 0b01110100:
  5213:               case 0b01111100:
  5214:               case 0b10000100:
  5215:               case 0b10001100:
  5216:               case 0b10010100:
  5217:               case 0b10011100:
  5218:               case 0b10100100:
  5219:               case 0b10101100:
  5220:               case 0b10110100:
  5221:               case 0b10111100:
  5222:               case 0b11000100:
  5223:               case 0b11001100:
  5224:               case 0b11010100:
  5225:               case 0b11011100:
  5226:               case 0b11100100:
  5227:               case 0b11101100:
  5228:               case 0b11110100:
  5229:               case 0b11111100:
  5230:                 //レベル5
  5231:                 XEiJ.mpuIRR &= ~XEiJ.MPU_SCC_INTERRUPT_MASK;  //割り込みを受け付ける
  5232:                 if ((t = Z8530.sccAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5233:                   irpInterrupt (t << 2, XEiJ.MPU_SCC_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5234:                 }
  5235:                 break;
  5236:               case 0b00010000:
  5237:               case 0b00110000:
  5238:               case 0b01010000:
  5239:               case 0b01110000:
  5240:               case 0b10010000:
  5241:               case 0b10110000:
  5242:               case 0b11010000:
  5243:               case 0b11110000:
  5244:                 //レベル3
  5245:                 XEiJ.mpuIRR &= ~XEiJ.MPU_DMA_INTERRUPT_MASK;  //割り込みを受け付ける
  5246:                 if ((t = HD63450.dmaAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5247:                   irpInterrupt (t << 2, XEiJ.MPU_DMA_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5248:                 }
  5249:                 break;
  5250:               case 0b00100000:
  5251:               case 0b01100000:
  5252:               case 0b10100000:
  5253:               case 0b11100000:
  5254:                 //レベル2
  5255:                 XEiJ.mpuIRR &= ~XEiJ.MPU_EB2_INTERRUPT_MASK;  //割り込みを受け付ける
  5256:                 if ((t = XEiJ.eb2Acknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5257:                   irpInterrupt (t << 2, XEiJ.MPU_EB2_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5258:                 }
  5259:                 break;
  5260:               case 0b01000000:
  5261:               case 0b11000000:
  5262:                 //レベル1
  5263:                 XEiJ.mpuIRR &= ~XEiJ.MPU_IOI_INTERRUPT_MASK;  //割り込みを受け付ける
  5264:                 if ((t = IOInterrupt.ioiAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5265:                   irpInterrupt (t << 2, XEiJ.MPU_IOI_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5266:                 }
  5267:                 break;
  5268:               }
  5269:             } else {
  5270:               t &= -t;
  5271:               //  x&=-xはxの最下位の1のビットだけを残す演算
  5272:               //  すなわちマスクされているレベルよりも高くて受け付けていない割り込みの中で最高レベルの割り込みのビットだけが残る
  5273:               //  最高レベルの割り込みのビットしか残っていないので、割り込みの有無をレベルの高い順ではなく使用頻度の高い順に調べられる
  5274:               //  MFPやDMAの割り込みがかかる度にそれより優先度の高いインタラプトスイッチが押されていないかどうかを確かめる必要がない
  5275:               if (t == XEiJ.MPU_MFP_INTERRUPT_MASK) {
  5276:                 XEiJ.mpuIRR &= ~XEiJ.MPU_MFP_INTERRUPT_MASK;  //割り込みを受け付ける
  5277:                 if ((t = MC68901.mfpAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5278:                   irpInterrupt (t << 2, XEiJ.MPU_MFP_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5279:                 }
  5280:               } else if (t == XEiJ.MPU_DMA_INTERRUPT_MASK) {
  5281:                 XEiJ.mpuIRR &= ~XEiJ.MPU_DMA_INTERRUPT_MASK;  //割り込みを受け付ける
  5282:                 if ((t = HD63450.dmaAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5283:                   irpInterrupt (t << 2, XEiJ.MPU_DMA_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5284:                 }
  5285:               } else if (t == XEiJ.MPU_SCC_INTERRUPT_MASK) {
  5286:                 XEiJ.mpuIRR &= ~XEiJ.MPU_SCC_INTERRUPT_MASK;  //割り込みを受け付ける
  5287:                 if ((t = Z8530.sccAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5288:                   irpInterrupt (t << 2, XEiJ.MPU_SCC_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5289:                 }
  5290:               } else if (t == XEiJ.MPU_IOI_INTERRUPT_MASK) {
  5291:                 XEiJ.mpuIRR &= ~XEiJ.MPU_IOI_INTERRUPT_MASK;  //割り込みを受け付ける
  5292:                 if ((t = IOInterrupt.ioiAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5293:                   irpInterrupt (t << 2, XEiJ.MPU_IOI_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5294:                 }
  5295:               } else if (t == XEiJ.MPU_EB2_INTERRUPT_MASK) {
  5296:                 XEiJ.mpuIRR &= ~XEiJ.MPU_EB2_INTERRUPT_MASK;  //割り込みを受け付ける
  5297:                 if ((t = XEiJ.eb2Acknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5298:                   irpInterrupt (t << 2, XEiJ.MPU_EB2_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5299:                 }
  5300:               } else if (t == XEiJ.MPU_SYS_INTERRUPT_MASK) {
  5301:                 XEiJ.mpuIRR &= ~XEiJ.MPU_SYS_INTERRUPT_MASK;  //割り込みを受け付ける
  5302:                 if ((t = XEiJ.sysAcknowledge ()) != 0) {  //デバイスにベクタ番号を要求して割り込み処理中の状態になったとき
  5303:                   irpInterrupt (t << 2, XEiJ.MPU_SYS_INTERRUPT_LEVEL);  //割り込み処理を開始する
  5304:                 }
  5305:               }
  5306:             }
  5307:           }  //if t!=0
  5308:           if (MC68901.MFP_DELAYED_INTERRUPT) {
  5309:             XEiJ.mpuIRR |= XEiJ.mpuDIRR;  //遅延割り込み要求
  5310:             XEiJ.mpuDIRR = 0;
  5311:           }
  5312:         }  //命令ループ
  5313:       } catch (M68kException e) {
  5314:         if (M68kException.m6eNumber < 0) {  //命令ブレークポイントによる停止
  5315:           XEiJ.regPC = XEiJ.regPC0;
  5316:           XEiJ.mpuStop1 (null);  //"Instruction Break Point"
  5317:           break errorLoop;
  5318:         }
  5319:         //例外処理
  5320:         //  ここで処理するのはベクタ番号が2~63の例外に限る
  5321:         //  例外処理のサイクル数はACCESS_FAULTとADDRESS_ERROR以外は19になっているので必要ならば補正してからthrowする
  5322:         //  使用頻度が高いと思われる例外はインライン展開するのでここには来ない
  5323:         //  セーブされるpcは以下の例外は命令の先頭、これ以外は次の命令
  5324:         //     2  ACCESS_FAULT
  5325:         //     3  ADDRESS_ERROR
  5326:         //     4  ILLEGAL_INSTRUCTION
  5327:         //     8  PRIVILEGE_VIOLATION
  5328:         //    10  LINE_1010_EMULATOR
  5329:         //    11  LINE_1111_EMULATOR
  5330:         //    14  FORMAT_ERROR
  5331:         //    48  FP_BRANCH_SET_UNORDERED
  5332:         //    60  UNIMPLEMENTED_EFFECTIVE
  5333:         //    61  UNIMPLEMENTED_INSTRUCTION
  5334:         //              111111111122222222223333333333444444444455555555556666
  5335:         //    0123456789012345678901234567890123456789012345678901234567890123
  5336:         if (0b0011100010110010000000000000000000000000000000001000000000001100L << M68kException.m6eNumber < 0L) {
  5337:           XEiJ.regPC = XEiJ.regPC0;  //セーブされるpcは命令の先頭
  5338:           //アドレスレジスタを巻き戻す
  5339:           //  A7を含むのでユーザモードのときはスーパーバイザモードに移行する前に巻き戻すこと
  5340:           for (int arr = 8; M68kException.m6eIncremented != 0L; arr++) {
  5341:             XEiJ.regRn[arr] -= (byte) M68kException.m6eIncremented;
  5342:             M68kException.m6eIncremented = M68kException.m6eIncremented + 0x80L >> 8;
  5343:           }
  5344:         }
  5345:         //FSLWのTTRを設定する
  5346:         //  透過変換でアドレス変換キャッシュがヒットしてバスエラーが発生したときFSLWのTTRが設定されていない
  5347:         if ((M68kException.m6eFSLW & (M68kException.M6E_FSLW_BUS_ERROR_ON_READ | M68kException.M6E_FSLW_BUS_ERROR_ON_WRITE)) != 0) {  //バスエラーのとき
  5348:           if (((M68kException.m6eFSLW & M68kException.M6E_FSLW_TM_SUPERVISOR) != 0 ?
  5349:                (M68kException.m6eFSLW & M68kException.M6E_FSLW_TM_CODE) != 0 ? mmuSuperCodeTransparent : mmuSuperDataTransparent :
  5350:                (M68kException.m6eFSLW & M68kException.M6E_FSLW_TM_CODE) != 0 ? mmuUserCodeTransparent : mmuUserDataTransparent)[M68kException.m6eAddress >>> 24] != 0) {  //透過変換
  5351:             M68kException.m6eFSLW |= M68kException.M6E_FSLW_TRANSPARENT;
  5352:           }
  5353:         }
  5354:         if (M68kException.M6E_DEBUG_ERROR) {
  5355:           System.out.println (M68kException.m6eToString6 ());  //srを表示するのでsrを更新する前に呼び出すこと
  5356:         }
  5357:         try {
  5358:           int save_sr = XEiJ.regSRT1 | XEiJ.regSRS | XEiJ.regSRM | XEiJ.regSRI | XEiJ.regCCR;
  5359:           XEiJ.regSRT1 = XEiJ.regSRT0 = 0;  //srのTビットを消す
  5360:           int sp;
  5361:           if (XEiJ.regSRS != 0) {  //スーパーバイザモード
  5362:             sp = XEiJ.regRn[15];
  5363:           } else {  //ユーザモード
  5364:             XEiJ.regSRS = XEiJ.REG_SR_S;  //スーパーバイザモードへ移行する
  5365:             XEiJ.mpuUSP = XEiJ.regRn[15];  //USPを保存
  5366:             sp = XEiJ.mpuISP;  //SSPを復元
  5367:             if (DataBreakPoint.DBP_ON) {
  5368:               DataBreakPoint.dbpMemoryMap = DataBreakPoint.dbpSuperMap;  //スーパーバイザメモリマップに切り替える
  5369:             } else {
  5370:               XEiJ.busMemoryMap = XEiJ.busSuperMap;  //スーパーバイザメモリマップに切り替える
  5371:             }
  5372:             if (InstructionBreakPoint.IBP_ON) {
  5373:               InstructionBreakPoint.ibpOp1MemoryMap = InstructionBreakPoint.ibpOp1SuperMap;
  5374:             }
  5375:           }
  5376:           //以下はスーパーバイザモード
  5377:           XEiJ.mpuClockTime += XEiJ.mpuModifiedUnit * 19;
  5378:           //  同じオフセットで異なるフォーマットになるものはここでは処理できない
  5379:           if (M68kException.m6eNumber == M68kException.M6E_ACCESS_FAULT) {
  5380:             //ホストファイルシステムのデバイスコマンドを強制終了させる
  5381:             HFS.hfsState = HFS.HFS_STATE_IDLE;
  5382:             //FORMAT $4の例外スタックフレームを作る
  5383:             XEiJ.regRn[15] = sp -= 16;
  5384:             mmuWriteLongData (sp + 12, M68kException.m6eFSLW, 1);  //15-12:フォルトステータスロングワード(FSLW)
  5385:             mmuWriteLongData (sp + 8, M68kException.m6eAddress, 1);  //11-8:フォルトアドレス
  5386:             mmuWriteWordData (sp + 6, 0x4000 | M68kException.M6E_ACCESS_FAULT << 2, 1);  //7-6:フォーマットとベクタオフセット
  5387:             //                   111111111122222222223333333333444444444455555555556666
  5388:             //         0123456789012345678901234567890123456789012345678901234567890123
  5389:           } else if (0b0001011101000000000000000000000000000000000000000000000000000000L << M68kException.m6eNumber < 0L) {
  5390:             //FORMAT $2の例外スタックフレームを作る
  5391:             XEiJ.regRn[15] = sp -= 12;
  5392:             mmuWriteLongData (sp + 8, M68kException.m6eAddress, 1);  //11-8:命令アドレス
  5393:             mmuWriteWordData (sp + 6, 0x2000 | M68kException.m6eNumber << 2, 1);  //7-6:フォーマットとベクタオフセット
  5394:           } else {
  5395:             //FORMAT $0の例外スタックフレームを作る
  5396:             XEiJ.regRn[15] = sp -= 8;
  5397:             mmuWriteWordData (sp + 6, M68kException.m6eNumber << 2, 1);  //7-6:フォーマットとベクタオフセット
  5398:           }
  5399:           mmuWriteLongData (sp + 2, XEiJ.regPC, 1);  //5-2:プログラムカウンタ
  5400:           mmuWriteWordData (sp, save_sr, 1);  //1-0:ステータスレジスタ
  5401:           irpSetPC (mmuReadLongFour (XEiJ.mpuVBR + (M68kException.m6eNumber << 2), 1));  //例外ベクタを取り出してジャンプする
  5402:           if (XEiJ.dbgStopOnError) {  //エラーで停止する場合
  5403:             if (XEiJ.dbgDoStopOnError ()) {
  5404:               break errorLoop;
  5405:             }
  5406:           }
  5407:         } catch (M68kException ee) {  //ダブルバスフォルト
  5408:           XEiJ.dbgDoubleBusFault ();
  5409:           break errorLoop;
  5410:         }
  5411:       }  //catch M68kException
  5412:     }  //例外ループ
  5413: 
  5414:     //  通常
  5415:     //    pc0  最後に実行した命令
  5416:     //    pc  次に実行する命令
  5417:     //  バスエラー、アドレスエラー、不当命令、特権違反で停止したとき
  5418:     //    pc0  エラーを発生させた命令
  5419:     //    pc  例外処理ルーチンの先頭
  5420:     //  ダブルバスフォルトで停止したとき
  5421:     //    pc0  エラーを発生させた命令
  5422:     //    pc  エラーを発生させた命令
  5423:     //  命令ブレークポイントで停止したとき
  5424:     //    pc0  命令ブレークポイントが設定された、次に実行する命令
  5425:     //    pc  命令ブレークポイントが設定された、次に実行する命令
  5426:     //  データブレークポイントで停止したとき
  5427:     //    pc0  データを書き換えた、最後に実行した命令
  5428:     //    pc  次に実行する命令
  5429: 
  5430:     //分岐ログに停止レコードを記録する
  5431:     if (BranchLog.BLG_ON) {
  5432:       //BranchLog.blgStop ();
  5433:       int i = (char) BranchLog.blgNewestRecord << BranchLog.BLG_RECORD_SHIFT;
  5434:       BranchLog.blgArray[i] = BranchLog.blgHead | BranchLog.blgSuper;
  5435:       BranchLog.blgArray[i + 1] = XEiJ.regPC;  //次に実行する命令
  5436:     }
  5437: 
  5438:     //デバッグウインドウを更新する
  5439:     if (XEiJ.dbgVisibleMask != 0) {  //デバッグ関連ウインドウが表示されている
  5440:       XEiJ.dbgUpdate ();
  5441:     }
  5442: 
  5443:     //コアメーター計測終了
  5444:     long nanoEnd = System.nanoTime ();
  5445:     Indicator.indTotalNano += nanoEnd - nanoStart;
  5446:     if (--Indicator.indCount == 0) {
  5447:       Indicator.indUpdate (nanoEnd);
  5448:     }
  5449: 
  5450:   }  //mpuCore()
  5451: 
  5452: 
  5453: 
  5454:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5455:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5456:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5457:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5458:   //ORI.B #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_000_mmm_rrr-{data}
  5459:   //OR.B #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_000_mmm_rrr-{data}  [ORI.B #<data>,<ea>]
  5460:   //ORI.B #<data>,CCR                               |-|012346|-|*****|*****|          |0000_000_000_111_100-{data}
  5461:   public static void irpOriByte () throws M68kException {
  5462:     if (Profiling.PFF_ON) {
  5463:       Profiling.pffStart[Profiling.PRF.irpOriByte.ordinal ()] = System.nanoTime ();
  5464:     }
  5465:     int ea = XEiJ.regOC & 63;
  5466:     int z = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  5467:     if (ea < XEiJ.EA_AR) {  //ORI.B #<data>,Dr
  5468:       if (XEiJ.DBG_ORI_BYTE_ZERO_D0) {
  5469:         if (z == 0 && ea == 0 && XEiJ.dbgOriByteZeroD0) {  //ORI.B #$00,D0
  5470:           M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  5471:           throw M68kException.m6eSignal;
  5472:         }
  5473:       }
  5474:       XEiJ.mpuCycleCount++;
  5475:       z = XEiJ.regRn[ea] |= 255 & z;  //0拡張してからOR
  5476:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  5477:     } else if (ea == XEiJ.EA_IM) {  //ORI.B #<data>,CCR
  5478:       XEiJ.mpuCycleCount++;
  5479:       XEiJ.regCCR |= XEiJ.REG_CCR_MASK & z;
  5480:     } else {  //ORI.B #<data>,<mem>
  5481:       XEiJ.mpuCycleCount++;
  5482:       int a = efaMltByte (ea);
  5483:       mmuWriteByteData (a, z |= mmuModifyByteSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  5484:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  5485:     }
  5486:     if (Profiling.PFF_ON) {
  5487:       Profiling.pffTotal[Profiling.PRF.irpOriByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpOriByte.ordinal ()];
  5488:       Profiling.pffCount[Profiling.PRF.irpOriByte.ordinal ()]++;
  5489:     }
  5490:   }  //irpOriByte
  5491: 
  5492:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5493:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5494:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5495:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5496:   //ORI.W #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_001_mmm_rrr-{data}
  5497:   //OR.W #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_001_mmm_rrr-{data}  [ORI.W #<data>,<ea>]
  5498:   //ORI.W #<data>,SR                                |-|012346|P|*****|*****|          |0000_000_001_111_100-{data}
  5499:   public static void irpOriWord () throws M68kException {
  5500:     if (Profiling.PFF_ON) {
  5501:       Profiling.pffStart[Profiling.PRF.irpOriWord.ordinal ()] = System.nanoTime ();
  5502:     }
  5503:     int ea = XEiJ.regOC & 63;
  5504:     if (ea < XEiJ.EA_AR) {  //ORI.W #<data>,Dr
  5505:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  5506:       XEiJ.mpuCycleCount++;
  5507:       z = XEiJ.regRn[ea] |= (char) z;  //0拡張してからOR
  5508:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  5509:     } else if (ea == XEiJ.EA_IM) {  //ORI.W #<data>,SR
  5510:       if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  5511:         M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  5512:         throw M68kException.m6eSignal;
  5513:       }
  5514:       //以下はスーパーバイザモード
  5515:       XEiJ.mpuCycleCount += 5;
  5516:       irpSetSR (XEiJ.regSRT1 | XEiJ.regSRS | XEiJ.regSRM | XEiJ.regSRI | XEiJ.regCCR | mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, 1));  //pcws。特権違反チェックが先
  5517:     } else {  //ORI.W #<data>,<mem>
  5518:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  5519:       XEiJ.mpuCycleCount++;
  5520:       int a = efaMltWord (ea);
  5521:       mmuWriteWordData (a, z |= mmuModifyWordSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  5522:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  5523:     }
  5524:     if (Profiling.PFF_ON) {
  5525:       Profiling.pffTotal[Profiling.PRF.irpOriWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpOriWord.ordinal ()];
  5526:       Profiling.pffCount[Profiling.PRF.irpOriWord.ordinal ()]++;
  5527:     }
  5528:   }  //irpOriWord
  5529: 
  5530:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5531:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5532:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5533:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5534:   //ORI.L #<data>,<ea>                              |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_000_010_mmm_rrr-{data}
  5535:   //OR.L #<data>,<ea>                               |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_000_010_mmm_rrr-{data}  [ORI.L #<data>,<ea>]
  5536:   public static void irpOriLong () throws M68kException {
  5537:     if (Profiling.PFF_ON) {
  5538:       Profiling.pffStart[Profiling.PRF.irpOriLong.ordinal ()] = System.nanoTime ();
  5539:     }
  5540:     int ea = XEiJ.regOC & 63;
  5541:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  5542:     int z;
  5543:     if (ea < XEiJ.EA_AR) {  //ORI.L #<data>,Dr
  5544:       XEiJ.mpuCycleCount++;
  5545:       z = XEiJ.regRn[ea] |= y;
  5546:     } else {  //ORI.L #<data>,<mem>
  5547:       XEiJ.mpuCycleCount++;
  5548:       int a = efaMltLong (ea);
  5549:       mmuWriteLongData (a, z = mmuModifyLongData (a, XEiJ.regSRS) | y, XEiJ.regSRS);
  5550:     }
  5551:     XEiJ.regCCR = z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X);  //ccr_tst
  5552:     if (Profiling.PFF_ON) {
  5553:       Profiling.pffTotal[Profiling.PRF.irpOriLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpOriLong.ordinal ()];
  5554:       Profiling.pffCount[Profiling.PRF.irpOriLong.ordinal ()]++;
  5555:     }
  5556:   }  //irpOriLong
  5557: 
  5558:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5559:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5560:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5561:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5562:   //BITREV.L Dr                                     |-|------|-|-----|-----|D         |0000_000_011_000_rrr (ISA_C)
  5563:   //CMP2.B <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_000_011_mmm_rrr-rnnn000000000000
  5564:   //CHK2.B <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_000_011_mmm_rrr-rnnn100000000000
  5565:   //
  5566:   //BITREV.L Dr
  5567:   //  Drのビットの並びを逆順にする。CCRは変化しない
  5568:   //
  5569:   //CHK2.B <ea>,Rn
  5570:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  5571:   //  CHK2.B <ea>,Anは下限と上限をそれぞれロングに符号拡張してロングで比較する
  5572:   //  Rnが下限または上限と等しいときZをセットする
  5573:   //  Rnが範囲外のときCをセットする。このときCHK instruction例外が発生する
  5574:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  5575:   //  CCR
  5576:   //    X  変化しない
  5577:   //    N  変化しない(M68000PRMでは未定義)
  5578:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  5579:   //    V  変化しない(M68000PRMでは未定義)
  5580:   //    C  Rn-LB>UB-LB(符号なし比較)
  5581:   //
  5582:   //CMP2.B <ea>,Rn
  5583:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  5584:   //  CMP2.B <ea>,Anは下限と上限をそれぞれロングに符号拡張してロングで比較する
  5585:   //  Rnが下限または上限と等しいときZをセットする
  5586:   //  Rnが範囲外のときCをセットする
  5587:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  5588:   //  CCR
  5589:   //    X  変化しない
  5590:   //    N  変化しない(M68000PRMでは未定義)
  5591:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  5592:   //    V  変化しない(M68000PRMでは未定義)
  5593:   //    C  Rn-LB>UB-LB(符号なし比較)
  5594:   public static void irpCmp2Chk2Byte () throws M68kException {
  5595:     if (Profiling.PFF_ON) {
  5596:       Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Byte.ordinal ()] = System.nanoTime ();
  5597:     }
  5598:     int ea = XEiJ.regOC & 63;
  5599:     if (ea < XEiJ.EA_AR) {  //BITREV.L Dr
  5600:       XEiJ.mpuCycleCount++;
  5601:       int x = XEiJ.regRn[ea];
  5602:       XEiJ.regRn[ea] = XEiJ.MPU_BITREV_TABLE_0[x & 2047] | XEiJ.MPU_BITREV_TABLE_1[x << 10 >>> 21] | XEiJ.MPU_BITREV_TABLE_2[x >>> 22];
  5603:     } else {  //CMP2/CHK2.B <ea>,Rn
  5604:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5605:       throw M68kException.m6eSignal;
  5606:     }
  5607:     if (Profiling.PFF_ON) {
  5608:       Profiling.pffTotal[Profiling.PRF.irpCmp2Chk2Byte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Byte.ordinal ()];
  5609:       Profiling.pffCount[Profiling.PRF.irpCmp2Chk2Byte.ordinal ()]++;
  5610:     }
  5611:   }  //irpCmp2Chk2Byte
  5612: 
  5613:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5614:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5615:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5616:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5617:   //BTST.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_100_000_rrr
  5618:   //MOVEP.W (d16,Ar),Dq                             |-|01234S|-|-----|-----|          |0000_qqq_100_001_rrr-{data}
  5619:   //BTST.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZPI|0000_qqq_100_mmm_rrr
  5620:   public static void irpBtstReg () throws M68kException {
  5621:     if (Profiling.PFF_ON) {
  5622:       Profiling.pffStart[Profiling.PRF.irpBtstReg.ordinal ()] = System.nanoTime ();
  5623:     }
  5624:     int ea = XEiJ.regOC & 63;
  5625:     int qqq = XEiJ.regOC >> 9;  //qqq
  5626:     if (ea >> 3 == XEiJ.MMM_AR) {  //MOVEP.W (d16,Ar),Dq
  5627:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5628:       throw M68kException.m6eSignal;
  5629:     } else {  //BTST.L Dq,Dr/<ea>
  5630:       int y = XEiJ.regRn[qqq];
  5631:       if (ea < XEiJ.EA_AR) {  //BTST.L Dq,Dr
  5632:         XEiJ.mpuCycleCount++;
  5633:         XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (~XEiJ.regRn[ea] >>> y & 1) << 2;  //ccr_btst。intのシフトは5bitでマスクされるので&31を省略
  5634:       } else {  //BTST.B Dq,<ea>
  5635:         XEiJ.mpuCycleCount++;
  5636:         XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (~(ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS)) >>> (y & 7) & 1) << 2;  //ccr_btst。pcbs。イミディエイトを分離
  5637:       }
  5638:     }
  5639:     if (Profiling.PFF_ON) {
  5640:       Profiling.pffTotal[Profiling.PRF.irpBtstReg.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBtstReg.ordinal ()];
  5641:       Profiling.pffCount[Profiling.PRF.irpBtstReg.ordinal ()]++;
  5642:     }
  5643:   }  //irpBtstReg
  5644: 
  5645:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5646:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5647:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5648:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5649:   //BCHG.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_101_000_rrr
  5650:   //MOVEP.L (d16,Ar),Dq                             |-|01234S|-|-----|-----|          |0000_qqq_101_001_rrr-{data}
  5651:   //BCHG.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_101_mmm_rrr
  5652:   public static void irpBchgReg () throws M68kException {
  5653:     if (Profiling.PFF_ON) {
  5654:       Profiling.pffStart[Profiling.PRF.irpBchgReg.ordinal ()] = System.nanoTime ();
  5655:     }
  5656:     int ea = XEiJ.regOC & 63;
  5657:     int qqq = XEiJ.regOC >> 9;  //qqq
  5658:     if (ea >> 3 == XEiJ.MMM_AR) {  //MOVEP.L (d16,Ar),Dq
  5659:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5660:       throw M68kException.m6eSignal;
  5661:     } else {  //BCHG.L Dq,Dr/<ea>
  5662:       int x;
  5663:       int y = XEiJ.regRn[qqq];
  5664:       if (ea < XEiJ.EA_AR) {  //BCHG.L Dq,Dr
  5665:         XEiJ.mpuCycleCount++;
  5666:         XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) ^ (y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  5667:       } else {  //BCHG.B Dq,<ea>
  5668:         XEiJ.mpuCycleCount++;
  5669:         int a = efaMltByte (ea);
  5670:         mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) ^ (y = 1 << (y & 7)), XEiJ.regSRS);
  5671:       }
  5672:       XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  5673:     }
  5674:     if (Profiling.PFF_ON) {
  5675:       Profiling.pffTotal[Profiling.PRF.irpBchgReg.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBchgReg.ordinal ()];
  5676:       Profiling.pffCount[Profiling.PRF.irpBchgReg.ordinal ()]++;
  5677:     }
  5678:   }  //irpBchgReg
  5679: 
  5680:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5681:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5682:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5683:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5684:   //BCLR.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_110_000_rrr
  5685:   //MOVEP.W Dq,(d16,Ar)                             |-|01234S|-|-----|-----|          |0000_qqq_110_001_rrr-{data}
  5686:   //BCLR.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_110_mmm_rrr
  5687:   public static void irpBclrReg () throws M68kException {
  5688:     if (Profiling.PFF_ON) {
  5689:       Profiling.pffStart[Profiling.PRF.irpBclrReg.ordinal ()] = System.nanoTime ();
  5690:     }
  5691:     int ea = XEiJ.regOC & 63;
  5692:     int y = XEiJ.regRn[XEiJ.regOC >> 9];  //qqq
  5693:     if (ea >> 3 == XEiJ.MMM_AR) {  //MOVEP.W Dq,(d16,Ar)
  5694:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5695:       throw M68kException.m6eSignal;
  5696:     } else {  //BCLR.L Dq,Dr/<ea>
  5697:       int x;
  5698:       if (ea < XEiJ.EA_AR) {  //BCLR.L Dq,Dr
  5699:         XEiJ.mpuCycleCount++;
  5700:         XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) & ~(y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  5701:       } else {  //BCLR.B Dq,<ea>
  5702:         XEiJ.mpuCycleCount++;
  5703:         int a = efaMltByte (ea);
  5704:         mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) & ~(y = 1 << (y & 7)), XEiJ.regSRS);
  5705:       }
  5706:       XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  5707:     }
  5708:     if (Profiling.PFF_ON) {
  5709:       Profiling.pffTotal[Profiling.PRF.irpBclrReg.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBclrReg.ordinal ()];
  5710:       Profiling.pffCount[Profiling.PRF.irpBclrReg.ordinal ()]++;
  5711:     }
  5712:   }  //irpBclrReg
  5713: 
  5714:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5715:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5716:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5717:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5718:   //BSET.L Dq,Dr                                    |-|012346|-|--U--|--*--|D         |0000_qqq_111_000_rrr
  5719:   //MOVEP.L Dq,(d16,Ar)                             |-|01234S|-|-----|-----|          |0000_qqq_111_001_rrr-{data}
  5720:   //BSET.B Dq,<ea>                                  |-|012346|-|--U--|--*--|  M+-WXZ  |0000_qqq_111_mmm_rrr
  5721:   public static void irpBsetReg () throws M68kException {
  5722:     if (Profiling.PFF_ON) {
  5723:       Profiling.pffStart[Profiling.PRF.irpBsetReg.ordinal ()] = System.nanoTime ();
  5724:     }
  5725:     int ea = XEiJ.regOC & 63;
  5726:     int y = XEiJ.regRn[XEiJ.regOC >> 9];  //qqq
  5727:     if (ea >> 3 == XEiJ.MMM_AR) {  //MOVEP.L Dq,(d16,Ar)
  5728:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5729:       throw M68kException.m6eSignal;
  5730:     } else {  //BSET.L Dq,Dr/<ea>
  5731:       int x;
  5732:       if (ea < XEiJ.EA_AR) {  //BSET.L Dq,Dr
  5733:         XEiJ.mpuCycleCount++;
  5734:         XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) | (y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  5735:       } else {  //BSET.B Dq,<ea>
  5736:         XEiJ.mpuCycleCount++;
  5737:         int a = efaMltByte (ea);
  5738:         mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) | (y = 1 << (y & 7)), XEiJ.regSRS);
  5739:       }
  5740:       XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  5741:     }
  5742:     if (Profiling.PFF_ON) {
  5743:       Profiling.pffTotal[Profiling.PRF.irpBsetReg.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBsetReg.ordinal ()];
  5744:       Profiling.pffCount[Profiling.PRF.irpBsetReg.ordinal ()]++;
  5745:     }
  5746:   }  //irpBsetReg
  5747: 
  5748:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5749:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5750:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5751:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5752:   //ANDI.B #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_000_mmm_rrr-{data}
  5753:   //AND.B #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_000_mmm_rrr-{data}  [ANDI.B #<data>,<ea>]
  5754:   //ANDI.B #<data>,CCR                              |-|012346|-|*****|*****|          |0000_001_000_111_100-{data}
  5755:   public static void irpAndiByte () throws M68kException {
  5756:     if (Profiling.PFF_ON) {
  5757:       Profiling.pffStart[Profiling.PRF.irpAndiByte.ordinal ()] = System.nanoTime ();
  5758:     }
  5759:     int ea = XEiJ.regOC & 63;
  5760:     int z = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  5761:     if (ea < XEiJ.EA_AR) {  //ANDI.B #<data>,Dr
  5762:       XEiJ.mpuCycleCount++;
  5763:       z = XEiJ.regRn[ea] &= ~255 | z;  //1拡張してからAND
  5764:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  5765:     } else if (ea == XEiJ.EA_IM) {  //ANDI.B #<data>,CCR
  5766:       XEiJ.mpuCycleCount++;
  5767:       XEiJ.regCCR &= z;
  5768:     } else {  //ANDI.B #<data>,<mem>
  5769:       XEiJ.mpuCycleCount++;
  5770:       int a = efaMltByte (ea);
  5771:       mmuWriteByteData (a, z &= mmuModifyByteSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  5772:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  5773:     }
  5774:     if (Profiling.PFF_ON) {
  5775:       Profiling.pffTotal[Profiling.PRF.irpAndiByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAndiByte.ordinal ()];
  5776:       Profiling.pffCount[Profiling.PRF.irpAndiByte.ordinal ()]++;
  5777:     }
  5778:   }  //irpAndiByte
  5779: 
  5780:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5781:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5782:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5783:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5784:   //ANDI.W #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_001_mmm_rrr-{data}
  5785:   //AND.W #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_001_mmm_rrr-{data}  [ANDI.W #<data>,<ea>]
  5786:   //ANDI.W #<data>,SR                               |-|012346|P|*****|*****|          |0000_001_001_111_100-{data}
  5787:   public static void irpAndiWord () throws M68kException {
  5788:     if (Profiling.PFF_ON) {
  5789:       Profiling.pffStart[Profiling.PRF.irpAndiWord.ordinal ()] = System.nanoTime ();
  5790:     }
  5791:     int ea = XEiJ.regOC & 63;
  5792:     if (ea < XEiJ.EA_AR) {  //ANDI.W #<data>,Dr
  5793:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  5794:       XEiJ.mpuCycleCount++;
  5795:       z = XEiJ.regRn[ea] &= ~65535 | z;  //1拡張してからAND
  5796:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  5797:     } else if (ea == XEiJ.EA_IM) {  //ANDI.W #<data>,SR
  5798:       if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  5799:         M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  5800:         throw M68kException.m6eSignal;
  5801:       }
  5802:       //以下はスーパーバイザモード
  5803:       XEiJ.mpuCycleCount += 12;
  5804:       irpSetSR ((XEiJ.regSRT1 | XEiJ.regSRS | XEiJ.regSRM | XEiJ.regSRI | XEiJ.regCCR) & mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, 1));  //pcws。特権違反チェックが先
  5805:     } else {  //ANDI.W #<data>,<mem>
  5806:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  5807:       XEiJ.mpuCycleCount++;
  5808:       int a = efaMltWord (ea);
  5809:       mmuWriteWordData (a, z &= mmuModifyWordSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  5810:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  5811:     }
  5812:     if (Profiling.PFF_ON) {
  5813:       Profiling.pffTotal[Profiling.PRF.irpAndiWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAndiWord.ordinal ()];
  5814:       Profiling.pffCount[Profiling.PRF.irpAndiWord.ordinal ()]++;
  5815:     }
  5816:   }  //irpAndiWord
  5817: 
  5818:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5819:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5820:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5821:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5822:   //ANDI.L #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_001_010_mmm_rrr-{data}
  5823:   //AND.L #<data>,<ea>                              |A|012346|-|-UUUU|-**00|  M+-WXZ  |0000_001_010_mmm_rrr-{data}  [ANDI.L #<data>,<ea>]
  5824:   public static void irpAndiLong () throws M68kException {
  5825:     if (Profiling.PFF_ON) {
  5826:       Profiling.pffStart[Profiling.PRF.irpAndiLong.ordinal ()] = System.nanoTime ();
  5827:     }
  5828:     int ea = XEiJ.regOC & 63;
  5829:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  5830:     int z;
  5831:     if (ea < XEiJ.EA_AR) {  //ANDI.L #<data>,Dr
  5832:       XEiJ.mpuCycleCount++;
  5833:       z = XEiJ.regRn[ea] &= y;
  5834:     } else {  //ANDI.L #<data>,<mem>
  5835:       XEiJ.mpuCycleCount++;
  5836:       int a = efaMltLong (ea);
  5837:       mmuWriteLongData (a, z = mmuModifyLongData (a, XEiJ.regSRS) & y, XEiJ.regSRS);
  5838:     }
  5839:     XEiJ.regCCR = z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X);  //ccr_tst
  5840:     if (Profiling.PFF_ON) {
  5841:       Profiling.pffTotal[Profiling.PRF.irpAndiLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAndiLong.ordinal ()];
  5842:       Profiling.pffCount[Profiling.PRF.irpAndiLong.ordinal ()]++;
  5843:     }
  5844:   }  //irpAndiLong
  5845: 
  5846:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5847:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5848:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5849:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5850:   //BYTEREV.L Dr                                    |-|------|-|-----|-----|D         |0000_001_011_000_rrr (ISA_C)
  5851:   //CMP2.W <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_001_011_mmm_rrr-rnnn000000000000
  5852:   //CHK2.W <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_001_011_mmm_rrr-rnnn100000000000
  5853:   //
  5854:   //BYTEREV.L Dr
  5855:   //  Drのバイトの並びを逆順にする。CCRは変化しない
  5856:   //
  5857:   //CHK2.W <ea>,Rn
  5858:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  5859:   //  CHK2.W <ea>,Anは下限と上限をそれぞれロングに符号拡張してロングで比較する
  5860:   //  Rnが下限または上限と等しいときZをセットする
  5861:   //  Rnが範囲外のときCをセットする。このときCHK instruction例外が発生する
  5862:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  5863:   //  CCR
  5864:   //    X  変化しない
  5865:   //    N  変化しない(M68000PRMでは未定義)
  5866:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  5867:   //    V  変化しない(M68000PRMでは未定義)
  5868:   //    C  Rn-LB>UB-LB(符号なし比較)
  5869:   //
  5870:   //CMP2.W <ea>,Rn
  5871:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  5872:   //  CMP2.W <ea>,Anは下限と上限をそれぞれロングに符号拡張してロングで比較する
  5873:   //  Rnが下限または上限と等しいときZをセットする
  5874:   //  Rnが範囲外のときCをセットする
  5875:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  5876:   //  CCR
  5877:   //    X  変化しない
  5878:   //    N  変化しない(M68000PRMでは未定義)
  5879:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  5880:   //    V  変化しない(M68000PRMでは未定義)
  5881:   //    C  Rn-LB>UB-LB(符号なし比較)
  5882:   public static void irpCmp2Chk2Word () throws M68kException {
  5883:     if (Profiling.PFF_ON) {
  5884:       Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Word.ordinal ()] = System.nanoTime ();
  5885:     }
  5886:     int ea = XEiJ.regOC & 63;
  5887:     if (ea < XEiJ.EA_AR) {  //BYTEREV.L Dr
  5888:       XEiJ.mpuCycleCount++;
  5889:       XEiJ.regRn[ea] = Integer.reverseBytes (XEiJ.regRn[ea]);
  5890:     } else {  //CMP2/CHK2.W <ea>,Rn
  5891:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  5892:       throw M68kException.m6eSignal;
  5893:     }
  5894:     if (Profiling.PFF_ON) {
  5895:       Profiling.pffTotal[Profiling.PRF.irpCmp2Chk2Word.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Word.ordinal ()];
  5896:       Profiling.pffCount[Profiling.PRF.irpCmp2Chk2Word.ordinal ()]++;
  5897:     }
  5898:   }  //irpCmp2Chk2Word
  5899: 
  5900:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5901:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5902:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5903:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5904:   //SUBI.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_000_mmm_rrr-{data}
  5905:   //SUB.B #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_000_mmm_rrr-{data}  [SUBI.B #<data>,<ea>]
  5906:   public static void irpSubiByte () throws M68kException {
  5907:     if (Profiling.PFF_ON) {
  5908:       Profiling.pffStart[Profiling.PRF.irpSubiByte.ordinal ()] = System.nanoTime ();
  5909:     }
  5910:     int ea = XEiJ.regOC & 63;
  5911:     int x;
  5912:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  5913:     int z;
  5914:     if (ea < XEiJ.EA_AR) {  //SUBI.B #<data>,Dr
  5915:       XEiJ.mpuCycleCount++;
  5916:       z = (byte) (XEiJ.regRn[ea] = ~0xff & (x = XEiJ.regRn[ea]) | 0xff & (x = (byte) x) - y);
  5917:     } else {  //SUBI.B #<data>,<mem>
  5918:       XEiJ.mpuCycleCount++;
  5919:       int a = efaMltByte (ea);
  5920:       mmuWriteByteData (a, z = (byte) ((x = mmuModifyByteSignData (a, XEiJ.regSRS)) - y), XEiJ.regSRS);
  5921:     }
  5922:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  5923:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  5924:            (x & (y ^ z) ^ (y | z)) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_sub
  5925:     if (Profiling.PFF_ON) {
  5926:       Profiling.pffTotal[Profiling.PRF.irpSubiByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpSubiByte.ordinal ()];
  5927:       Profiling.pffCount[Profiling.PRF.irpSubiByte.ordinal ()]++;
  5928:     }
  5929:   }  //irpSubiByte
  5930: 
  5931:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5932:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5933:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5934:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5935:   //SUBI.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_001_mmm_rrr-{data}
  5936:   //SUB.W #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_001_mmm_rrr-{data}  [SUBI.W #<data>,<ea>]
  5937:   public static void irpSubiWord () throws M68kException {
  5938:     if (Profiling.PFF_ON) {
  5939:       Profiling.pffStart[Profiling.PRF.irpSubiWord.ordinal ()] = System.nanoTime ();
  5940:     }
  5941:     int ea = XEiJ.regOC & 63;
  5942:     int x;
  5943:     int y = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  5944:     int z;
  5945:     if (ea < XEiJ.EA_AR) {  //SUBI.W #<data>,Dr
  5946:       XEiJ.mpuCycleCount++;
  5947:       z = (short) (XEiJ.regRn[ea] = ~0xffff & (x = XEiJ.regRn[ea]) | (char) ((x = (short) x) - y));
  5948:     } else {  //SUBI.W #<data>,<mem>
  5949:       XEiJ.mpuCycleCount++;
  5950:       int a = efaMltWord (ea);
  5951:       mmuWriteWordData (a, z = (short) ((x = mmuModifyWordSignData (a, XEiJ.regSRS)) - y), XEiJ.regSRS);
  5952:     }
  5953:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  5954:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  5955:            (x & (y ^ z) ^ (y | z)) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_sub
  5956:     if (Profiling.PFF_ON) {
  5957:       Profiling.pffTotal[Profiling.PRF.irpSubiWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpSubiWord.ordinal ()];
  5958:       Profiling.pffCount[Profiling.PRF.irpSubiWord.ordinal ()]++;
  5959:     }
  5960:   }  //irpSubiWord
  5961: 
  5962:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5963:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5964:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5965:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5966:   //SUBI.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_010_010_mmm_rrr-{data}
  5967:   //SUB.L #<data>,<ea>                              |A|012346|-|UUUUU|*****|  M+-WXZ  |0000_010_010_mmm_rrr-{data}  [SUBI.L #<data>,<ea>]
  5968:   public static void irpSubiLong () throws M68kException {
  5969:     if (Profiling.PFF_ON) {
  5970:       Profiling.pffStart[Profiling.PRF.irpSubiLong.ordinal ()] = System.nanoTime ();
  5971:     }
  5972:     int ea = XEiJ.regOC & 63;
  5973:     int x;
  5974:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  5975:     int z;
  5976:     if (ea < XEiJ.EA_AR) {  //SUBI.L #<data>,Dr
  5977:       XEiJ.mpuCycleCount++;
  5978:       XEiJ.regRn[ea] = z = (x = XEiJ.regRn[ea]) - y;
  5979:     } else {  //SUBI.L #<data>,<mem>
  5980:       XEiJ.mpuCycleCount++;
  5981:       int a = efaMltLong (ea);
  5982:       mmuWriteLongData (a, z = (x = mmuModifyLongData (a, XEiJ.regSRS)) - y, XEiJ.regSRS);
  5983:     }
  5984:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  5985:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  5986:            (x & (y ^ z) ^ (y | z)) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_sub
  5987:     if (Profiling.PFF_ON) {
  5988:       Profiling.pffTotal[Profiling.PRF.irpSubiLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpSubiLong.ordinal ()];
  5989:       Profiling.pffCount[Profiling.PRF.irpSubiLong.ordinal ()]++;
  5990:     }
  5991:   }  //irpSubiLong
  5992: 
  5993:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5994:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  5995:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  5996:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  5997:   //FF1.L Dr                                        |-|------|-|-UUUU|-**00|D         |0000_010_011_000_rrr (ISA_C)
  5998:   //CMP2.L <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_010_011_mmm_rrr-rnnn000000000000
  5999:   //CHK2.L <ea>,Rn                                  |-|--234S|-|-UUUU|-U*U*|  M  WXZP |0000_010_011_mmm_rrr-rnnn100000000000
  6000:   //
  6001:   //CHK2.L <ea>,Rn
  6002:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  6003:   //  Rnが下限または上限と等しいときZをセットする
  6004:   //  Rnが範囲外のときCをセットする。このときCHK instruction例外が発生する
  6005:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  6006:   //  CCR
  6007:   //    X  変化しない
  6008:   //    N  変化しない(M68000PRMでは未定義)
  6009:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  6010:   //    V  変化しない(M68000PRMでは未定義)
  6011:   //    C  Rn-LB>UB-LB(符号なし比較)
  6012:   //
  6013:   //CMP2.L <ea>,Rn
  6014:   //  <ea>から下限と上限をリードしてRnが範囲内か調べる
  6015:   //  Rnが下限または上限と等しいときZをセットする
  6016:   //  Rnが範囲外のときCをセットする
  6017:   //  060ISPのソースは注釈に誤りが多いので注釈ではなくコードを参考にする
  6018:   //  CCR
  6019:   //    X  変化しない
  6020:   //    N  変化しない(M68000PRMでは未定義)
  6021:   //    Z  Rn-LB==0||Rn-LB==UB-LB
  6022:   //    V  変化しない(M68000PRMでは未定義)
  6023:   //    C  Rn-LB>UB-LB(符号なし比較)
  6024:   //
  6025:   //FF1.L Dr
  6026:   //  Drの最上位の1のbit31からのオフセットをDrに格納する
  6027:   //  Drが0のときは32になる
  6028:   public static void irpCmp2Chk2Long () throws M68kException {
  6029:     if (Profiling.PFF_ON) {
  6030:       Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Long.ordinal ()] = System.nanoTime ();
  6031:     }
  6032:     int ea = XEiJ.regOC & 63;
  6033:     if (ea < XEiJ.EA_AR) {  //FF1.L Dr
  6034:       XEiJ.mpuCycleCount++;
  6035:       int z = XEiJ.regRn[ea];
  6036:       XEiJ.regRn[ea] = Integer.numberOfLeadingZeros (z);
  6037:       XEiJ.regCCR = z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X);  //ccr_tst
  6038:     } else {  //CMP2/CHK2.L <ea>,Rn
  6039:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  6040:       throw M68kException.m6eSignal;
  6041:     }
  6042:     if (Profiling.PFF_ON) {
  6043:       Profiling.pffTotal[Profiling.PRF.irpCmp2Chk2Long.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmp2Chk2Long.ordinal ()];
  6044:       Profiling.pffCount[Profiling.PRF.irpCmp2Chk2Long.ordinal ()]++;
  6045:     }
  6046:   }  //irpCmp2Chk2Long
  6047: 
  6048:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6049:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6050:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6051:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6052:   //ADDI.B #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_000_mmm_rrr-{data}
  6053:   public static void irpAddiByte () throws M68kException {
  6054:     if (Profiling.PFF_ON) {
  6055:       Profiling.pffStart[Profiling.PRF.irpAddiByte.ordinal ()] = System.nanoTime ();
  6056:     }
  6057:     int ea = XEiJ.regOC & 63;
  6058:     int x;
  6059:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6060:     int z;
  6061:     if (ea < XEiJ.EA_AR) {  //ADDI.B #<data>,Dr
  6062:       XEiJ.mpuCycleCount++;
  6063:       z = (byte) (XEiJ.regRn[ea] = ~0xff & (x = XEiJ.regRn[ea]) | 0xff & (x = (byte) x) + y);
  6064:     } else {  //ADDI.B #<data>,<mem>
  6065:       XEiJ.mpuCycleCount++;
  6066:       int a = efaMltByte (ea);
  6067:       mmuWriteByteData (a, z = (byte) ((x = mmuModifyByteSignData (a, XEiJ.regSRS)) + y), XEiJ.regSRS);
  6068:     }
  6069:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  6070:            ((x ^ z) & (y ^ z)) >>> 31 << 1 |
  6071:            ((x | y) ^ (x ^ y) & z) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_add
  6072:     if (Profiling.PFF_ON) {
  6073:       Profiling.pffTotal[Profiling.PRF.irpAddiByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAddiByte.ordinal ()];
  6074:       Profiling.pffCount[Profiling.PRF.irpAddiByte.ordinal ()]++;
  6075:     }
  6076:   }  //irpAddiByte
  6077: 
  6078:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6079:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6080:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6081:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6082:   //ADDI.W #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_001_mmm_rrr-{data}
  6083:   public static void irpAddiWord () throws M68kException {
  6084:     if (Profiling.PFF_ON) {
  6085:       Profiling.pffStart[Profiling.PRF.irpAddiWord.ordinal ()] = System.nanoTime ();
  6086:     }
  6087:     int ea = XEiJ.regOC & 63;
  6088:     int x;
  6089:     int y = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  6090:     int z;
  6091:     if (ea < XEiJ.EA_AR) {  //ADDI.W #<data>,Dr
  6092:       XEiJ.mpuCycleCount++;
  6093:       z = (short) (XEiJ.regRn[ea] = ~0xffff & (x = XEiJ.regRn[ea]) | (char) ((x = (short) x) + y));
  6094:     } else {  //ADDI.W #<data>,<mem>
  6095:       XEiJ.mpuCycleCount++;
  6096:       int a = efaMltWord (ea);
  6097:       mmuWriteWordData (a, z = (short) ((x = mmuModifyWordSignData (a, XEiJ.regSRS)) + y), XEiJ.regSRS);
  6098:     }
  6099:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  6100:            ((x ^ z) & (y ^ z)) >>> 31 << 1 |
  6101:            ((x | y) ^ (x ^ y) & z) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_add
  6102:     if (Profiling.PFF_ON) {
  6103:       Profiling.pffTotal[Profiling.PRF.irpAddiWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAddiWord.ordinal ()];
  6104:       Profiling.pffCount[Profiling.PRF.irpAddiWord.ordinal ()]++;
  6105:     }
  6106:   }  //irpAddiWord
  6107: 
  6108:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6109:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6110:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6111:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6112:   //ADDI.L #<data>,<ea>                             |-|012346|-|UUUUU|*****|D M+-WXZ  |0000_011_010_mmm_rrr-{data}
  6113:   public static void irpAddiLong () throws M68kException {
  6114:     if (Profiling.PFF_ON) {
  6115:       Profiling.pffStart[Profiling.PRF.irpAddiLong.ordinal ()] = System.nanoTime ();
  6116:     }
  6117:     int ea = XEiJ.regOC & 63;
  6118:     int x;
  6119:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  6120:     int z;
  6121:     if (ea < XEiJ.EA_AR) {  //ADDI.L #<data>,Dr
  6122:       XEiJ.mpuCycleCount++;
  6123:       XEiJ.regRn[ea] = z = (x = XEiJ.regRn[ea]) + y;
  6124:     } else {  //ADDI.L #<data>,<mem>
  6125:       XEiJ.mpuCycleCount++;
  6126:       int a = efaMltLong (ea);
  6127:       mmuWriteLongData (a, z = (x = mmuModifyLongData (a, XEiJ.regSRS)) + y, XEiJ.regSRS);
  6128:     }
  6129:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  6130:            ((x ^ z) & (y ^ z)) >>> 31 << 1 |
  6131:            ((x | y) ^ (x ^ y) & z) >> 31 & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_C));  //ccr_add
  6132:     if (Profiling.PFF_ON) {
  6133:       Profiling.pffTotal[Profiling.PRF.irpAddiLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpAddiLong.ordinal ()];
  6134:       Profiling.pffCount[Profiling.PRF.irpAddiLong.ordinal ()]++;
  6135:     }
  6136:   }  //irpAddiLong
  6137: 
  6138:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6139:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6140:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6141:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6142:   //BTST.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_000_000_rrr-{data}
  6143:   //BTST.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZP |0000_100_000_mmm_rrr-{data}
  6144:   public static void irpBtstImm () throws M68kException {
  6145:     if (Profiling.PFF_ON) {
  6146:       Profiling.pffStart[Profiling.PRF.irpBtstImm.ordinal ()] = System.nanoTime ();
  6147:     }
  6148:     int ea = XEiJ.regOC & 63;
  6149:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6150:     if (ea < XEiJ.EA_AR) {  //BTST.L #<data>,Dr
  6151:       XEiJ.mpuCycleCount++;
  6152:       XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (~XEiJ.regRn[ea] >>> y & 1) << 2;  //ccr_btst。intのシフトは5bitでマスクされるので&31を省略
  6153:     } else {  //BTST.B #<data>,<ea>
  6154:       XEiJ.mpuCycleCount++;
  6155:       XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (~mmuReadByteSignData (efaMemByte (ea), XEiJ.regSRS) >>> (y & 7) & 1) << 2;  //ccr_btst
  6156:     }
  6157:     if (Profiling.PFF_ON) {
  6158:       Profiling.pffTotal[Profiling.PRF.irpBtstImm.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBtstImm.ordinal ()];
  6159:       Profiling.pffCount[Profiling.PRF.irpBtstImm.ordinal ()]++;
  6160:     }
  6161:   }  //irpBtstImm
  6162: 
  6163:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6164:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6165:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6166:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6167:   //BCHG.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_001_000_rrr-{data}
  6168:   //BCHG.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_001_mmm_rrr-{data}
  6169:   public static void irpBchgImm () throws M68kException {
  6170:     if (Profiling.PFF_ON) {
  6171:       Profiling.pffStart[Profiling.PRF.irpBchgImm.ordinal ()] = System.nanoTime ();
  6172:     }
  6173:     int ea = XEiJ.regOC & 63;
  6174:     int x;
  6175:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6176:     if (ea < XEiJ.EA_AR) {  //BCHG.L #<data>,Dr
  6177:       XEiJ.mpuCycleCount++;
  6178:       XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) ^ (y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  6179:     } else {  //BCHG.B #<data>,<ea>
  6180:       XEiJ.mpuCycleCount++;
  6181:       int a = efaMltByte (ea);
  6182:       mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) ^ (y = 1 << (y & 7)), XEiJ.regSRS);
  6183:     }
  6184:     XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  6185:     if (Profiling.PFF_ON) {
  6186:       Profiling.pffTotal[Profiling.PRF.irpBchgImm.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBchgImm.ordinal ()];
  6187:       Profiling.pffCount[Profiling.PRF.irpBchgImm.ordinal ()]++;
  6188:     }
  6189:   }  //irpBchgImm
  6190: 
  6191:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6192:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6193:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6194:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6195:   //BCLR.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_010_000_rrr-{data}
  6196:   //BCLR.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_010_mmm_rrr-{data}
  6197:   public static void irpBclrImm () throws M68kException {
  6198:     if (Profiling.PFF_ON) {
  6199:       Profiling.pffStart[Profiling.PRF.irpBclrImm.ordinal ()] = System.nanoTime ();
  6200:     }
  6201:     int ea = XEiJ.regOC & 63;
  6202:     int x;
  6203:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6204:     if (ea < XEiJ.EA_AR) {  //BCLR.L #<data>,Dr
  6205:       XEiJ.mpuCycleCount++;
  6206:       XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) & ~(y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  6207:     } else {  //BCLR.B #<data>,<ea>
  6208:       XEiJ.mpuCycleCount++;
  6209:       int a = efaMltByte (ea);
  6210:       mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) & ~(y = 1 << (y & 7)), XEiJ.regSRS);
  6211:     }
  6212:     XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  6213:     if (Profiling.PFF_ON) {
  6214:       Profiling.pffTotal[Profiling.PRF.irpBclrImm.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBclrImm.ordinal ()];
  6215:       Profiling.pffCount[Profiling.PRF.irpBclrImm.ordinal ()]++;
  6216:     }
  6217:   }  //irpBclrImm
  6218: 
  6219:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6220:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6221:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6222:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6223:   //BSET.L #<data>,Dr                               |-|012346|-|--U--|--*--|D         |0000_100_011_000_rrr-{data}
  6224:   //BSET.B #<data>,<ea>                             |-|012346|-|--U--|--*--|  M+-WXZ  |0000_100_011_mmm_rrr-{data}
  6225:   public static void irpBsetImm () throws M68kException {
  6226:     if (Profiling.PFF_ON) {
  6227:       Profiling.pffStart[Profiling.PRF.irpBsetImm.ordinal ()] = System.nanoTime ();
  6228:     }
  6229:     int ea = XEiJ.regOC & 63;
  6230:     int x;
  6231:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6232:     if (ea < XEiJ.EA_AR) {  //BSET.L #<data>,Dr
  6233:       XEiJ.mpuCycleCount++;
  6234:       XEiJ.regRn[ea] = (x = XEiJ.regRn[ea]) | (y = 1 << y);  //intのシフトは5bitでマスクされるので1<<(y&0x1f)の&0x1fを省略
  6235:     } else {  //BSET.B #<data>,<ea>
  6236:       XEiJ.mpuCycleCount++;
  6237:       int a = efaMltByte (ea);
  6238:       mmuWriteByteData (a, (x = mmuModifyByteSignData (a, XEiJ.regSRS)) | (y = 1 << (y & 7)), XEiJ.regSRS);
  6239:     }
  6240:     XEiJ.regCCR = XEiJ.regCCR & (XEiJ.REG_CCR_X | XEiJ.REG_CCR_N | XEiJ.REG_CCR_V | XEiJ.REG_CCR_C) | (x & y) - 1 >>> 31 << 2;  //ccr_btst
  6241:     if (Profiling.PFF_ON) {
  6242:       Profiling.pffTotal[Profiling.PRF.irpBsetImm.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpBsetImm.ordinal ()];
  6243:       Profiling.pffCount[Profiling.PRF.irpBsetImm.ordinal ()]++;
  6244:     }
  6245:   }  //irpBsetImm
  6246: 
  6247:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6248:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6249:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6250:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6251:   //EORI.B #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_000_mmm_rrr-{data}
  6252:   //EOR.B #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_000_mmm_rrr-{data}  [EORI.B #<data>,<ea>]
  6253:   //EORI.B #<data>,CCR                              |-|012346|-|*****|*****|          |0000_101_000_111_100-{data}
  6254:   public static void irpEoriByte () throws M68kException {
  6255:     if (Profiling.PFF_ON) {
  6256:       Profiling.pffStart[Profiling.PRF.irpEoriByte.ordinal ()] = System.nanoTime ();
  6257:     }
  6258:     int ea = XEiJ.regOC & 63;
  6259:     int z = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6260:     if (ea < XEiJ.EA_AR) {  //EORI.B #<data>,Dr
  6261:       XEiJ.mpuCycleCount++;
  6262:       z = XEiJ.regRn[ea] ^= 255 & z;  //0拡張してからEOR
  6263:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  6264:     } else if (ea == XEiJ.EA_IM) {  //EORI.B #<data>,CCR
  6265:       XEiJ.mpuCycleCount++;
  6266:       XEiJ.regCCR ^= XEiJ.REG_CCR_MASK & z;
  6267:     } else {  //EORI.B #<data>,<mem>
  6268:       XEiJ.mpuCycleCount++;
  6269:       int a = efaMltByte (ea);
  6270:       mmuWriteByteData (a, z ^= mmuModifyByteSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  6271:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  6272:     }
  6273:     if (Profiling.PFF_ON) {
  6274:       Profiling.pffTotal[Profiling.PRF.irpEoriByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpEoriByte.ordinal ()];
  6275:       Profiling.pffCount[Profiling.PRF.irpEoriByte.ordinal ()]++;
  6276:     }
  6277:   }  //irpEoriByte
  6278: 
  6279:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6280:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6281:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6282:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6283:   //EORI.W #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_001_mmm_rrr-{data}
  6284:   //EOR.W #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_001_mmm_rrr-{data}  [EORI.W #<data>,<ea>]
  6285:   //EORI.W #<data>,SR                               |-|012346|P|*****|*****|          |0000_101_001_111_100-{data}
  6286:   public static void irpEoriWord () throws M68kException {
  6287:     if (Profiling.PFF_ON) {
  6288:       Profiling.pffStart[Profiling.PRF.irpEoriWord.ordinal ()] = System.nanoTime ();
  6289:     }
  6290:     int ea = XEiJ.regOC & 63;
  6291:     if (ea < XEiJ.EA_AR) {  //EORI.W #<data>,Dr
  6292:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  6293:       XEiJ.mpuCycleCount++;
  6294:       z = XEiJ.regRn[ea] ^= (char) z;  //0拡張してからEOR
  6295:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  6296:     } else if (ea == XEiJ.EA_IM) {  //EORI.W #<data>,SR
  6297:       if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  6298:         M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  6299:         throw M68kException.m6eSignal;
  6300:       }
  6301:       //以下はスーパーバイザモード
  6302:       XEiJ.mpuCycleCount += 12;
  6303:       irpSetSR ((XEiJ.regSRT1 | XEiJ.regSRS | XEiJ.regSRM | XEiJ.regSRI | XEiJ.regCCR) ^ mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, 1));  //pcws。特権違反チェックが先
  6304:     } else {  //EORI.W #<data>,<mem>
  6305:       int z = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  6306:       XEiJ.mpuCycleCount++;
  6307:       int a = efaMltWord (ea);
  6308:       mmuWriteWordData (a, z ^= mmuModifyWordSignData (a, XEiJ.regSRS), XEiJ.regSRS);
  6309:       XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | (char) z - 1 >> 31 & XEiJ.REG_CCR_Z | ((short) z < 0 ? XEiJ.REG_CCR_N : 0);  //ccr_tst_word
  6310:     }
  6311:     if (Profiling.PFF_ON) {
  6312:       Profiling.pffTotal[Profiling.PRF.irpEoriWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpEoriWord.ordinal ()];
  6313:       Profiling.pffCount[Profiling.PRF.irpEoriWord.ordinal ()]++;
  6314:     }
  6315:   }  //irpEoriWord
  6316: 
  6317:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6318:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6319:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6320:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6321:   //EORI.L #<data>,<ea>                             |-|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_010_mmm_rrr-{data}
  6322:   //EOR.L #<data>,<ea>                              |A|012346|-|-UUUU|-**00|D M+-WXZ  |0000_101_010_mmm_rrr-{data}  [EORI.L #<data>,<ea>]
  6323:   public static void irpEoriLong () throws M68kException {
  6324:     if (Profiling.PFF_ON) {
  6325:       Profiling.pffStart[Profiling.PRF.irpEoriLong.ordinal ()] = System.nanoTime ();
  6326:     }
  6327:     int ea = XEiJ.regOC & 63;
  6328:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  6329:     int z;
  6330:     if (ea < XEiJ.EA_AR) {  //EORI.L #<data>,Dr
  6331:       XEiJ.mpuCycleCount++;
  6332:       z = XEiJ.regRn[ea] ^= y;
  6333:     } else {  //EORI.L #<data>,<mem>
  6334:       XEiJ.mpuCycleCount++;
  6335:       int a = efaMltLong (ea);
  6336:       mmuWriteLongData (a, z = mmuModifyLongData (a, XEiJ.regSRS) ^ y, XEiJ.regSRS);
  6337:     }
  6338:     XEiJ.regCCR = z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X);  //ccr_tst
  6339:     if (Profiling.PFF_ON) {
  6340:       Profiling.pffTotal[Profiling.PRF.irpEoriLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpEoriLong.ordinal ()];
  6341:       Profiling.pffCount[Profiling.PRF.irpEoriLong.ordinal ()]++;
  6342:     }
  6343:   }  //irpEoriLong
  6344: 
  6345:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6346:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6347:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6348:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6349:   //CAS.B Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_101_011_mmm_rrr-0000000uuu000ccc
  6350:   public static void irpCasByte () throws M68kException {
  6351:     if (Profiling.PFF_ON) {
  6352:       Profiling.pffStart[Profiling.PRF.irpCasByte.ordinal ()] = System.nanoTime ();
  6353:     }
  6354:     int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz。拡張ワード
  6355:     if ((w & ~0b0000_000_111_000_111) != 0) {
  6356:       M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  6357:       throw M68kException.m6eSignal;
  6358:     }
  6359:     int c = w & 7;
  6360:     int y = (byte) XEiJ.regRn[c];  //y=Dc
  6361:     int a = efaMltByte (XEiJ.regOC & 63);
  6362:     int x = mmuReadByteSignData (a, XEiJ.regSRS);  //x=<ea>
  6363:     int z = (byte) (x - y);  //z=<ea>-Dc
  6364:     XEiJ.regCCR = (XEiJ.regCCR & XEiJ.REG_CCR_X |
  6365:                    (z < 0 ? XEiJ.REG_CCR_N : 0) |
  6366:                    (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  6367:                    ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  6368:                    (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  6369:     if (z == 0) {  //<ea>==Dc
  6370:       XEiJ.mpuCycleCount += 19;
  6371:       mmuWriteByteData (a, XEiJ.regRn[w >> 6], XEiJ.regSRS);  //Du→<ea>
  6372:     } else {  //<ea>!=Dc
  6373:       XEiJ.mpuCycleCount += 19;
  6374:       XEiJ.regRn[c] = ~0xff & XEiJ.regRn[c] | 0xff & x;  //<ea>→Dc
  6375:     }
  6376:     if (Profiling.PFF_ON) {
  6377:       Profiling.pffTotal[Profiling.PRF.irpCasByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCasByte.ordinal ()];
  6378:       Profiling.pffCount[Profiling.PRF.irpCasByte.ordinal ()]++;
  6379:     }
  6380:   }  //irpCasByte
  6381: 
  6382:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6383:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6384:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6385:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6386:   //CMPI.B #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_000_mmm_rrr-{data}
  6387:   //CMP.B #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_000_mmm_rrr-{data}  [CMPI.B #<data>,<ea>]
  6388:   public static void irpCmpiByte () throws M68kException {
  6389:     if (Profiling.PFF_ON) {
  6390:       Profiling.pffStart[Profiling.PRF.irpCmpiByte.ordinal ()] = System.nanoTime ();
  6391:     }
  6392:     XEiJ.mpuCycleCount++;
  6393:     int ea = XEiJ.regOC & 63;
  6394:     int x;
  6395:     int y = mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS);  //pcbs
  6396:     int z = (byte) ((x = ea < XEiJ.EA_AR ? (byte) XEiJ.regRn[ea] : mmuReadByteSignData (efaMemByte (ea), XEiJ.regSRS)) - y);  //アドレッシングモードに注意
  6397:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X) |
  6398:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  6399:            (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  6400:     if (Profiling.PFF_ON) {
  6401:       Profiling.pffTotal[Profiling.PRF.irpCmpiByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmpiByte.ordinal ()];
  6402:       Profiling.pffCount[Profiling.PRF.irpCmpiByte.ordinal ()]++;
  6403:     }
  6404:   }  //irpCmpiByte
  6405: 
  6406:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6407:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6408:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6409:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6410:   //CMPI.W #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_001_mmm_rrr-{data}
  6411:   //CMP.W #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_001_mmm_rrr-{data}  [CMPI.W #<data>,<ea>]
  6412:   public static void irpCmpiWord () throws M68kException {
  6413:     if (Profiling.PFF_ON) {
  6414:       Profiling.pffStart[Profiling.PRF.irpCmpiWord.ordinal ()] = System.nanoTime ();
  6415:     }
  6416:     XEiJ.mpuCycleCount++;
  6417:     int ea = XEiJ.regOC & 63;
  6418:     int x;
  6419:     int y = mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcws
  6420:     int z = (short) ((x = ea < XEiJ.EA_AR ? (short) XEiJ.regRn[ea] : mmuReadWordSignData (efaMemWord (ea), XEiJ.regSRS)) - y);  //アドレッシングモードに注意
  6421:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X) |
  6422:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  6423:            (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  6424:     if (Profiling.PFF_ON) {
  6425:       Profiling.pffTotal[Profiling.PRF.irpCmpiWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmpiWord.ordinal ()];
  6426:       Profiling.pffCount[Profiling.PRF.irpCmpiWord.ordinal ()]++;
  6427:     }
  6428:   }  //irpCmpiWord
  6429: 
  6430:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6431:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6432:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6433:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6434:   //CMPI.L #<data>,<ea>                             |-|--2346|-|-UUUU|-****|D M+-WXZP |0000_110_010_mmm_rrr-{data}
  6435:   //CMP.L #<data>,<ea>                              |A|--2346|-|-UUUU|-****|  M+-WXZP |0000_110_010_mmm_rrr-{data}  [CMPI.L #<data>,<ea>]
  6436:   public static void irpCmpiLong () throws M68kException {
  6437:     if (Profiling.PFF_ON) {
  6438:       Profiling.pffStart[Profiling.PRF.irpCmpiLong.ordinal ()] = System.nanoTime ();
  6439:     }
  6440:     int ea = XEiJ.regOC & 63;
  6441:     int x;
  6442:     int y = mmuReadLongExword ((XEiJ.regPC += 4) - 4, XEiJ.regSRS);  //pcls
  6443:     int z;
  6444:     if (ea < XEiJ.EA_AR) {  //CMPI.L #<data>,Dr
  6445:       XEiJ.mpuCycleCount++;
  6446:       z = (x = XEiJ.regRn[ea]) - y;
  6447:     } else {  //CMPI.L #<data>,<mem>
  6448:       XEiJ.mpuCycleCount++;
  6449:       z = (x = mmuReadLongData (efaMemLong (ea), XEiJ.regSRS)) - y;  //アドレッシングモードに注意
  6450:     }
  6451:     XEiJ.regCCR = (z >> 28 & XEiJ.REG_CCR_N | (z == 0 ? XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.REG_CCR_Z : XEiJ.regCCR & XEiJ.REG_CCR_X) |
  6452:            ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  6453:            (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  6454:     if (Profiling.PFF_ON) {
  6455:       Profiling.pffTotal[Profiling.PRF.irpCmpiLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCmpiLong.ordinal ()];
  6456:       Profiling.pffCount[Profiling.PRF.irpCmpiLong.ordinal ()]++;
  6457:     }
  6458:   }  //irpCmpiLong
  6459: 
  6460:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6461:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6462:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6463:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6464:   //CAS.W Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_110_011_mmm_rrr-0000000uuu000ccc        (68060 software emulate misaligned <ea>)
  6465:   //CAS2.W Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)              |-|--234S|-|-UUUU|-****|          |0000_110_011_111_100-rnnn000uuu000ccc(1)-rnnn_000_uuu_000_ccc(2)
  6466:   public static void irpCasWord () throws M68kException {
  6467:     if (Profiling.PFF_ON) {
  6468:       Profiling.pffStart[Profiling.PRF.irpCasWord.ordinal ()] = System.nanoTime ();
  6469:     }
  6470:     int ea = XEiJ.regOC & 63;
  6471:     if (ea == XEiJ.EA_IM) {  //CAS2.W Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)
  6472:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  6473:       throw M68kException.m6eSignal;
  6474:     } else {  //CAS.W Dc,Du,<ea>
  6475:       int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz
  6476:       if ((w & ~0b0000_000_111_000_111) != 0) {
  6477:         M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  6478:         throw M68kException.m6eSignal;
  6479:       }
  6480:       int a = efaMltWord (ea);  //a=ea
  6481:       if ((a & 1) != 0) {  //misaligned <ea>
  6482:         M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  6483:         throw M68kException.m6eSignal;
  6484:       }
  6485:       int c = w & 7;
  6486:       int y = (short) XEiJ.regRn[c];  //y=Dc
  6487:       int x = mmuReadWordSignData (a, XEiJ.regSRS);  //x=<ea>
  6488:       int z = (short) (x - y);  //z=<ea>-Dc
  6489:       XEiJ.regCCR = (XEiJ.regCCR & XEiJ.REG_CCR_X |
  6490:                      (z < 0 ? XEiJ.REG_CCR_N : 0) |
  6491:                      (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  6492:                      ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  6493:                      (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  6494:       if (z == 0) {  //<ea>==Dc
  6495:         XEiJ.mpuCycleCount += 19;
  6496:         mmuWriteWordData (a, XEiJ.regRn[w >> 6], XEiJ.regSRS);  //Du→<ea>
  6497:       } else {  //<ea>!=Dc
  6498:         XEiJ.mpuCycleCount += 19;
  6499:         XEiJ.regRn[c] = ~0xffff & XEiJ.regRn[c] | (char) x;  //<ea>→Dc
  6500:       }
  6501:     }
  6502:     if (Profiling.PFF_ON) {
  6503:       Profiling.pffTotal[Profiling.PRF.irpCasWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCasWord.ordinal ()];
  6504:       Profiling.pffCount[Profiling.PRF.irpCasWord.ordinal ()]++;
  6505:     }
  6506:   }  //irpCasWord
  6507: 
  6508:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6509:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6510:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6511:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6512:   //MOVES.B <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_000_mmm_rrr-rnnn000000000000
  6513:   //MOVES.B Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_000_mmm_rrr-rnnn100000000000
  6514:   //
  6515:   //MOVES.B <ea>,Rn
  6516:   //  MOVES.B <ea>,DnはDnの最下位バイトだけ更新する
  6517:   //  MOVES.B <ea>,Anはバイトデータをロングに符号拡張してAnの全体を更新する
  6518:   //  SFC=1,2,5,6はアドレス変換あり、SFC=0,3,4はアドレス変換なし、
  6519:   //  SFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6520:   //
  6521:   //MOVES.B Rn,<ea>
  6522:   //  DFC=1,2,5,6はアドレス変換あり、DFC=0,3,4はアドレス変換なし、
  6523:   //  DFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6524:   public static void irpMovesByte () throws M68kException {
  6525:     if (Profiling.PFF_ON) {
  6526:       Profiling.pffStart[Profiling.PRF.irpMovesByte.ordinal ()] = System.nanoTime ();
  6527:     }
  6528:     int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz
  6529:     if (w << -11 != 0) {
  6530:       M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  6531:       throw M68kException.m6eSignal;
  6532:     }
  6533:     if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  6534:       M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  6535:       throw M68kException.m6eSignal;
  6536:     }
  6537:     //以下はスーパーバイザモード
  6538:     XEiJ.mpuCycleCount++;
  6539:     int a = efaMltByte (XEiJ.regOC & 63);
  6540:     int n = w >>> 12;  //n
  6541:     if (w << 31 - 11 >= 0) {  //MOVES.B <ea>,Rn。リード
  6542:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuSFC) < 0;
  6543:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuSFC) < 0;
  6544:       MemoryMappedDevice[] mm = (DataBreakPoint.DBP_ON ?
  6545:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6546:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6547:       int z;
  6548:       //    01234567
  6549:       if (0b01100110 << 24 << XEiJ.mpuSFC < 0) {  //SFC=1,2,5,6。アドレス変換あり
  6550:         M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuSFC << 16;
  6551:         int pa = (supervisor ?
  6552:                   instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6553:                   instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6554:         //z = XEiJ.busRbz (pa);
  6555:         z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRbz (pa);
  6556:       } else if (XEiJ.mpuSFC != 7) {  //SFC=0,3,4。アドレス変換なし
  6557:         M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuSFC << 16;
  6558:         //z = XEiJ.busRbz (a);
  6559:         z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRbz (a);
  6560:       } else {  //SFC=7。CPU空間
  6561:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6562:           z = XEiJ.fpuMotherboardCoprocessor.cirReadByteZero (a);
  6563:         } else {
  6564:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuSFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_READ;
  6565:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6566:           M68kException.m6eAddress = a;
  6567:           M68kException.m6eDirection = XEiJ.MPU_WR_READ;
  6568:           M68kException.m6eSize = XEiJ.MPU_SS_BYTE;
  6569:           throw M68kException.m6eSignal;
  6570:         }
  6571:       }
  6572:       if (n < 8) {  //MOVES.B <ea>,Dn
  6573:         XEiJ.regRn[n] = XEiJ.regRn[n] & ~255 | z;
  6574:       } else {  //MOVES.B <ea>,An
  6575:         XEiJ.regRn[n] = (byte) z;
  6576:       }
  6577:       if (MMU_DEBUG_COMMAND) {
  6578:         System.out.printf ("%08x movesReadByte(%d,0x%08x)=0x%02x\n", XEiJ.regPC0, XEiJ.mpuSFC, a, XEiJ.regRn[n] & 255);
  6579:       }
  6580:     } else {  //MOVES.B Rn,<ea>。ライト
  6581:       if (MMU_DEBUG_COMMAND) {
  6582:         System.out.printf ("%08x movesWriteByte(%d,0x%08x,0x%02x)\n", XEiJ.regPC0, XEiJ.mpuDFC, a, XEiJ.regRn[n] & 255);
  6583:       }
  6584:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuDFC) < 0;
  6585:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuDFC) < 0;
  6586:       MemoryMappedDevice mm[] = (DataBreakPoint.DBP_ON ?
  6587:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6588:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6589:       int z = XEiJ.regRn[n];
  6590:       //    01234567
  6591:       if (0b01100110 << 24 << XEiJ.mpuDFC < 0) {  //DFC=1,2,5,6。アドレス変換あり
  6592:         M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuDFC << 16;
  6593:         int pa = (supervisor ?
  6594:                   instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6595:                   instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6596:         //XEiJ.busWb (pa, z);
  6597:         mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWb (pa, z);
  6598:       } else if (XEiJ.mpuDFC != 7) {  //DFC=0,3,4。アドレス変換なし
  6599:         M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuDFC << 16;
  6600:         //XEiJ.busWb (a, z);
  6601:         mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWb (a, z);
  6602:       } else {  //DFC=7。CPU空間
  6603:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6604:           XEiJ.fpuMotherboardCoprocessor.cirWriteByte (a, z);
  6605:         } else {
  6606:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_BYTE | XEiJ.mpuDFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_WRITE;
  6607:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6608:           M68kException.m6eAddress = a;
  6609:           M68kException.m6eDirection = XEiJ.MPU_WR_WRITE;
  6610:           M68kException.m6eSize = XEiJ.MPU_SS_BYTE;
  6611:           throw M68kException.m6eSignal;
  6612:         }
  6613:       }
  6614:     }
  6615:     if (Profiling.PFF_ON) {
  6616:       Profiling.pffTotal[Profiling.PRF.irpMovesByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMovesByte.ordinal ()];
  6617:       Profiling.pffCount[Profiling.PRF.irpMovesByte.ordinal ()]++;
  6618:     }
  6619:   }  //irpMovesByte
  6620: 
  6621:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6622:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6623:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6624:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6625:   //MOVES.W <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_001_mmm_rrr-rnnn000000000000
  6626:   //MOVES.W Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_001_mmm_rrr-rnnn100000000000
  6627:   //
  6628:   //MOVES.W <ea>,Rn
  6629:   //  MOVES.W <ea>,DnはDnの下位ワードだけ更新する
  6630:   //  MOVES.W <ea>,Anはワードデータをロングに符号拡張してAnの全体を更新する
  6631:   //  SFC=1,2,5,6はアドレス変換あり、SFC=0,3,4はアドレス変換なし、
  6632:   //  SFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6633:   //
  6634:   //MOVES.W Rn,<ea>
  6635:   //  DFC=1,2,5,6はアドレス変換あり、DFC=0,3,4はアドレス変換なし、
  6636:   //  DFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6637:   public static void irpMovesWord () throws M68kException {
  6638:     if (Profiling.PFF_ON) {
  6639:       Profiling.pffStart[Profiling.PRF.irpMovesWord.ordinal ()] = System.nanoTime ();
  6640:     }
  6641:     int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz
  6642:     if (w << -11 != 0) {
  6643:       M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  6644:       throw M68kException.m6eSignal;
  6645:     }
  6646:     if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  6647:       M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  6648:       throw M68kException.m6eSignal;
  6649:     }
  6650:     //以下はスーパーバイザモード
  6651:     XEiJ.mpuCycleCount++;
  6652:     int a = efaMltWord (XEiJ.regOC & 63);
  6653:     int n = w >>> 12;  //n
  6654:     if (w << 31 - 11 >= 0) {  //MOVES.W <ea>,Rn。リード
  6655:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuSFC) < 0;
  6656:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuSFC) < 0;
  6657:       MemoryMappedDevice[] mm = (DataBreakPoint.DBP_ON ?
  6658:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6659:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6660:       int z;
  6661:       //    01234567
  6662:       if (0b01100110 << 24 << XEiJ.mpuSFC < 0) {  //SFC=1,2,5,6。アドレス変換あり
  6663:         if ((a & 1) == 0) {  //偶数
  6664:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuSFC << 16;
  6665:           int pa = (supervisor ?
  6666:                     instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6667:                     instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6668:           //z = XEiJ.busRwze (pa);
  6669:           z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRwz (pa);
  6670:         } else {  //奇数
  6671:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuSFC << 16;
  6672:           int pa = (supervisor ?
  6673:                     instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6674:                     instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6675:           //z = XEiJ.busRbz (pa) << 8;
  6676:           z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRbz (pa) << 8;
  6677:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6678:           pa = (supervisor ?
  6679:                 instruction ? mmuTranslateReadSuperCode (a + 1) : mmuTranslateReadSuperData (a + 1) :
  6680:                 instruction ? mmuTranslateReadUserCode (a + 1) : mmuTranslateReadUserData (a + 1));
  6681:           //z |= XEiJ.busRbz (pa);
  6682:           z |= mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRbz (pa);
  6683:         }
  6684:       } else if (XEiJ.mpuSFC != 7) {  //SFC=0,3,4。アドレス変換なし
  6685:         if ((a & 1) == 0) {  //偶数
  6686:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuSFC << 16;
  6687:           //z = XEiJ.busRwze (a);
  6688:           z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRwz (a);
  6689:         } else {  //奇数
  6690:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuSFC << 16;
  6691:           //z = XEiJ.busRbz (a) << 8;
  6692:           z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRbz (a) << 8;
  6693:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6694:           a++;
  6695:           //z |= XEiJ.busRbz (a);
  6696:           z |= mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRbz (a);
  6697:         }
  6698:       } else {  //SFC=7。CPU空間
  6699:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6700:           z = XEiJ.fpuMotherboardCoprocessor.cirReadWordZero (a);
  6701:         } else {
  6702:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuSFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_READ;
  6703:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6704:           M68kException.m6eAddress = a;
  6705:           M68kException.m6eDirection = XEiJ.MPU_WR_READ;
  6706:           M68kException.m6eSize = XEiJ.MPU_SS_WORD;
  6707:           throw M68kException.m6eSignal;
  6708:         }
  6709:       }
  6710:       if (n < 8) {  //MOVES.W <ea>,Dn
  6711:         XEiJ.regRn[n] = XEiJ.regRn[n] & ~65535 | z;
  6712:       } else {  //MOVES.W <ea>,An
  6713:         XEiJ.regRn[n] = (short) z;
  6714:       }
  6715:       if (MMU_DEBUG_COMMAND) {
  6716:         System.out.printf ("%08x movesReadWord(%d,0x%08x)=0x%04x\n", XEiJ.regPC0, XEiJ.mpuSFC, a, XEiJ.regRn[n] & 65535);
  6717:       }
  6718:     } else {  //MOVES.W Rn,<ea>。ライト
  6719:       if (MMU_DEBUG_COMMAND) {
  6720:         System.out.printf ("%08x movesWriteWord(%d,0x%08x,0x%04x)\n", XEiJ.regPC0, XEiJ.mpuDFC, a, XEiJ.regRn[n] & 65535);
  6721:       }
  6722:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuDFC) < 0;
  6723:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuDFC) < 0;
  6724:       MemoryMappedDevice[] mm = (DataBreakPoint.DBP_ON ?
  6725:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6726:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6727:       int z = XEiJ.regRn[n];
  6728:       //    01234567
  6729:       if (0b01100110 << 24 << XEiJ.mpuDFC < 0) {  //DFC=1,2,5,6。アドレス変換あり
  6730:         if ((a & 1) == 0) {  //偶数
  6731:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuDFC << 16;
  6732:           int pa = (supervisor ?
  6733:                     instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6734:                     instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6735:           //XEiJ.busWwe (pa, z);
  6736:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWw (pa, z);
  6737:         } else {  //奇数
  6738:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuDFC << 16;
  6739:           int pa = (supervisor ?
  6740:                     instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6741:                     instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6742:           //XEiJ.busWb (pa, z >> 8);
  6743:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWb (pa, z >> 8);
  6744:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6745:           pa = (supervisor ?
  6746:                 instruction ? mmuTranslateWriteSuperCode (a + 1) : mmuTranslateWriteSuperData (a + 1) :
  6747:                 instruction ? mmuTranslateWriteUserCode (a + 1) : mmuTranslateWriteUserData (a + 1));
  6748:           //XEiJ.busWb (pa, z);
  6749:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWb (pa, z);
  6750:         }
  6751:       } else if (XEiJ.mpuDFC != 7) {  //DFC=0,3,4。アドレス変換なし
  6752:         if ((a & 1) == 0) {  //偶数
  6753:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuDFC << 16;
  6754:           //XEiJ.busWwe (a, z);
  6755:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWw (a, z);
  6756:         } else {  //奇数
  6757:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuDFC << 16;
  6758:           //XEiJ.busWb (a, z >> 8);
  6759:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWb (a, z >> 8);
  6760:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6761:           a++;
  6762:           //XEiJ.busWb (a, z);
  6763:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWb (a, z);
  6764:         }
  6765:       } else {  //DFC=7。CPU空間
  6766:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6767:           XEiJ.fpuMotherboardCoprocessor.cirWriteWord (a, z);
  6768:         } else {
  6769:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_WORD | XEiJ.mpuDFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_WRITE;
  6770:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6771:           M68kException.m6eAddress = a;
  6772:           M68kException.m6eDirection = XEiJ.MPU_WR_WRITE;
  6773:           M68kException.m6eSize = XEiJ.MPU_SS_WORD;
  6774:           throw M68kException.m6eSignal;
  6775:         }
  6776:       }
  6777:     }
  6778:     if (Profiling.PFF_ON) {
  6779:       Profiling.pffTotal[Profiling.PRF.irpMovesWord.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMovesWord.ordinal ()];
  6780:       Profiling.pffCount[Profiling.PRF.irpMovesWord.ordinal ()]++;
  6781:     }
  6782:   }  //irpMovesWord
  6783: 
  6784:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6785:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  6786:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  6787:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  6788:   //MOVES.L <ea>,Rn                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_010_mmm_rrr-rnnn000000000000
  6789:   //MOVES.L Rn,<ea>                                 |-|-12346|P|-----|-----|  M+-WXZ  |0000_111_010_mmm_rrr-rnnn100000000000
  6790:   //
  6791:   //MOVES.L <ea>,Rn
  6792:   //  SFC=1,2,5,6はアドレス変換あり、SFC=0,3,4はアドレス変換なし、
  6793:   //  SFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6794:   //
  6795:   //MOVES.L Rn,<ea>
  6796:   //  DFC=1,2,5,6はアドレス変換あり、DFC=0,3,4はアドレス変換なし、
  6797:   //  DFC=7はCPU空間なのでコプロセッサが割り当てられている領域以外はバスエラーになる
  6798:   public static void irpMovesLong () throws M68kException {
  6799:     if (Profiling.PFF_ON) {
  6800:       Profiling.pffStart[Profiling.PRF.irpMovesLong.ordinal ()] = System.nanoTime ();
  6801:     }
  6802:     int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz
  6803:     if (w << -11 != 0) {
  6804:       M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  6805:       throw M68kException.m6eSignal;
  6806:     }
  6807:     if (XEiJ.regSRS == 0) {  //ユーザモードのとき
  6808:       M68kException.m6eNumber = M68kException.M6E_PRIVILEGE_VIOLATION;
  6809:       throw M68kException.m6eSignal;
  6810:     }
  6811:     //以下はスーパーバイザモード
  6812:     XEiJ.mpuCycleCount++;
  6813:     int a = efaMltLong (XEiJ.regOC & 63);
  6814:     int n = w >>> 12;  //n
  6815:     if (w << 31 - 11 >= 0) {  //MOVES.L <ea>,Rn。リード
  6816:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuSFC) < 0;
  6817:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuSFC) < 0;
  6818:       MemoryMappedDevice[] mm = (DataBreakPoint.DBP_ON ?
  6819:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6820:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6821:       int z;
  6822:       //    01234567
  6823:       if (0b01100110 << 24 << XEiJ.mpuSFC < 0) {  //SFC=1,2,5,6。アドレス変換あり
  6824:         if ((a & 3) == 0) {  //4の倍数
  6825:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6826:           int pa = (supervisor ?
  6827:                     instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6828:                     instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6829:           //z = XEiJ.busRlsf (pa);
  6830:           z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRls (pa);
  6831:         } else if ((a & 1) == 0) {  //4の倍数+2
  6832:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6833:           int pa = (supervisor ?
  6834:                     instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6835:                     instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6836:           //z = XEiJ.busRwse (pa) << 16;
  6837:           z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRws (pa) << 16;
  6838:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6839:           pa = (supervisor ?
  6840:                 instruction ? mmuTranslateReadSuperCode (a + 2) : mmuTranslateReadSuperData (a + 2) :
  6841:                 instruction ? mmuTranslateReadUserCode (a + 2) : mmuTranslateReadUserData (a + 2));
  6842:           //z |= XEiJ.busRwze (pa);
  6843:           z |= mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRwz (pa);
  6844:         } else {  //奇数
  6845:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6846:           int pa = (supervisor ?
  6847:                     instruction ? mmuTranslateReadSuperCode (a) : mmuTranslateReadSuperData (a) :
  6848:                     instruction ? mmuTranslateReadUserCode (a) : mmuTranslateReadUserData (a));
  6849:           //z = XEiJ.busRbs (pa) << 24;
  6850:           z = mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRbs (pa) << 24;
  6851:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6852:           pa = (supervisor ?
  6853:                 instruction ? mmuTranslateReadSuperCode (a + 1) : mmuTranslateReadSuperData (a + 1) :
  6854:                 instruction ? mmuTranslateReadUserCode (a + 1) : mmuTranslateReadUserData (a + 1));
  6855:           //z |= XEiJ.busRwze (pa) << 8;
  6856:           z |= mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRwz (pa) << 8;
  6857:           pa = (supervisor ?
  6858:                 instruction ? mmuTranslateReadSuperCode (a + 3) : mmuTranslateReadSuperData (a + 3) :
  6859:                 instruction ? mmuTranslateReadUserCode (a + 3) : mmuTranslateReadUserData (a + 3));
  6860:           //z |= XEiJ.busRbz (pa);
  6861:           z |= mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdRbz (pa);
  6862:         }
  6863:       } else if (XEiJ.mpuSFC != 7) {  //SFC=0,3,4。アドレス変換なし
  6864:         if ((a & 3) == 0) {  //4の倍数
  6865:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6866:           //z = XEiJ.busRlsf (a);
  6867:           z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRls (a);
  6868:         } else if ((a & 1) == 0) {  //4の倍数+2
  6869:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6870:           //z = XEiJ.busRwse (a) << 16;
  6871:           z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRws (a) << 16;
  6872:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6873:           a += 2;
  6874:           //z |= XEiJ.busRwze (a);
  6875:           z |= mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRwz (a);
  6876:         } else {  //奇数
  6877:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16;
  6878:           //z = XEiJ.busRbs (a) << 24;
  6879:           z = mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRbs (a) << 24;
  6880:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6881:           a++;
  6882:           //z |= XEiJ.busRwze (a) << 8;
  6883:           z |= mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRwz (a) << 8;
  6884:           a += 2;
  6885:           //z |= XEiJ.busRbz (a);
  6886:           z |= mm[a >>> XEiJ.BUS_PAGE_BITS].mmdRbz (a);
  6887:         }
  6888:       } else {  //SFC=7。CPU空間
  6889:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6890:           z = XEiJ.fpuMotherboardCoprocessor.cirReadLong (a);
  6891:         } else {
  6892:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_READ | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuSFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_READ;
  6893:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6894:           M68kException.m6eAddress = a;
  6895:           M68kException.m6eDirection = XEiJ.MPU_WR_READ;
  6896:           M68kException.m6eSize = XEiJ.MPU_SS_LONG;
  6897:           throw M68kException.m6eSignal;
  6898:         }
  6899:       }
  6900:       XEiJ.regRn[n] = z;
  6901:       if (MMU_DEBUG_COMMAND) {
  6902:         System.out.printf ("%08x movesReadLong(%d,0x%08x)=0x%08x\n", XEiJ.regPC0, XEiJ.mpuSFC, a, XEiJ.regRn[n]);
  6903:       }
  6904:     } else {  //MOVES.L Rn,<ea>。ライト
  6905:       if (MMU_DEBUG_COMMAND) {
  6906:         System.out.printf ("%08x movesWriteLong(%d,0x%08x,0x%08x)\n", XEiJ.regPC0, XEiJ.mpuDFC, a, XEiJ.regRn[n]);
  6907:       }
  6908:       boolean supervisor = (0b10011111 << 24 << XEiJ.mpuDFC) < 0;
  6909:       boolean instruction = (0b00101010 << 24 << XEiJ.mpuDFC) < 0;
  6910:       MemoryMappedDevice[] mm = (DataBreakPoint.DBP_ON ?
  6911:                                  supervisor ? DataBreakPoint.dbpSuperMap : DataBreakPoint.dbpUserMap :
  6912:                                  supervisor ? XEiJ.busSuperMap : XEiJ.busUserMap);
  6913:       int z = XEiJ.regRn[n];
  6914:       //    01234567
  6915:       if (0b01100110 << 24 << XEiJ.mpuDFC < 0) {  //DFC=1,2,5,6。アドレス変換あり
  6916:         if ((a & 3) == 0) {  //4の倍数
  6917:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6918:           int pa = (supervisor ?
  6919:                     instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6920:                     instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6921:           //XEiJ.busWlf (pa, z);
  6922:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWl (pa, z);
  6923:         } else if ((a & 1) == 0) {  //4の倍数+2
  6924:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6925:           int pa = (supervisor ?
  6926:                     instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6927:                     instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6928:           //XEiJ.busWwe (pa, z >> 16);
  6929:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWw (pa, z >> 16);
  6930:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6931:           pa = (supervisor ?
  6932:                 instruction ? mmuTranslateWriteSuperCode (a + 2) : mmuTranslateWriteSuperData (a + 2) :
  6933:                 instruction ? mmuTranslateWriteUserCode (a + 2) : mmuTranslateWriteUserData (a + 2));
  6934:           //XEiJ.busWwe (pa, z);
  6935:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWw (pa, z);
  6936:         } else {  //奇数
  6937:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6938:           int pa = (supervisor ?
  6939:                     instruction ? mmuTranslateWriteSuperCode (a) : mmuTranslateWriteSuperData (a) :
  6940:                     instruction ? mmuTranslateWriteUserCode (a) : mmuTranslateWriteUserData (a));
  6941:           //XEiJ.busWb (pa, z >> 24);
  6942:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWb (pa, z >> 24);
  6943:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6944:           pa = (supervisor ?
  6945:                 instruction ? mmuTranslateWriteSuperCode (a + 1) : mmuTranslateWriteSuperData (a + 1) :
  6946:                 instruction ? mmuTranslateWriteUserCode (a + 1) : mmuTranslateWriteUserData (a + 1));
  6947:           //XEiJ.busWwe (pa, z >> 8);
  6948:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWw (pa, z >> 8);
  6949:           pa = (supervisor ?
  6950:                 instruction ? mmuTranslateWriteSuperCode (a + 3) : mmuTranslateWriteSuperData (a + 3) :
  6951:                 instruction ? mmuTranslateWriteUserCode (a + 3) : mmuTranslateWriteUserData (a + 3));
  6952:           //XEiJ.busWb (pa, z);
  6953:           mm[pa >>> XEiJ.BUS_PAGE_BITS].mmdWb (pa, z);
  6954:         }
  6955:       } else if (XEiJ.mpuDFC != 7) {  //DFC=0,3,4。アドレス変換なし
  6956:         if ((a & 3) == 0) {  //4の倍数
  6957:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6958:           //XEiJ.busWlf (a, z);
  6959:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWl (a, z);
  6960:         } else if ((a & 1) == 0) {  //4の倍数+2
  6961:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6962:           //XEiJ.busWwe (a, z >> 16);
  6963:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWw (a, z >> 16);
  6964:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6965:           a += 2;
  6966:           //XEiJ.busWwe (a, z);
  6967:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWw (a, z);
  6968:         } else {  //奇数
  6969:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16;
  6970:           //XEiJ.busWb (a, z >> 24);
  6971:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWb (a, z >> 24);
  6972:           M68kException.m6eFSLW ^= M68kException.M6E_FSLW_IOMA_FIRST ^ M68kException.M6E_FSLW_IOMA_SECOND;
  6973:           a++;
  6974:           //XEiJ.busWwe (a, z >> 8);
  6975:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWw (a, z >> 8);
  6976:           a += 2;
  6977:           //XEiJ.busWb (a, z);
  6978:           mm[a >>> XEiJ.BUS_PAGE_BITS].mmdWb (a, z);
  6979:         }
  6980:       } else {  //DFC=7。CPU空間
  6981:         if (0x00022000 <= a && a <= 0x0002201f) {  //コプロセッサID=1
  6982:           XEiJ.fpuMotherboardCoprocessor.cirWriteLong (a, z);
  6983:         } else {
  6984:           M68kException.m6eFSLW = M68kException.M6E_FSLW_IOMA_FIRST | M68kException.M6E_FSLW_RW_WRITE | M68kException.M6E_FSLW_SIZE_LONG | XEiJ.mpuDFC << 16 | M68kException.M6E_FSLW_BUS_ERROR_ON_WRITE;
  6985:           M68kException.m6eNumber = M68kException.M6E_ACCESS_FAULT;
  6986:           M68kException.m6eAddress = a;
  6987:           M68kException.m6eDirection = XEiJ.MPU_WR_WRITE;
  6988:           M68kException.m6eSize = XEiJ.MPU_SS_LONG;
  6989:           throw M68kException.m6eSignal;
  6990:         }
  6991:       }
  6992:     }
  6993:     if (Profiling.PFF_ON) {
  6994:       Profiling.pffTotal[Profiling.PRF.irpMovesLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMovesLong.ordinal ()];
  6995:       Profiling.pffCount[Profiling.PRF.irpMovesLong.ordinal ()]++;
  6996:     }
  6997:   }  //irpMovesLong
  6998: 
  6999:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7000:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7001:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7002:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7003:   //CAS.L Dc,Du,<ea>                                |-|--2346|-|-UUUU|-****|  M+-WXZ  |0000_111_011_mmm_rrr-0000000uuu000ccc        (68060 software emulate misaligned <ea>)
  7004:   //CAS2.L Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)              |-|--234S|-|-UUUU|-****|          |0000_111_011_111_100-rnnn000uuu000ccc(1)-rnnn_000_uuu_000_ccc(2)
  7005:   public static void irpCasLong () throws M68kException {
  7006:     if (Profiling.PFF_ON) {
  7007:       Profiling.pffStart[Profiling.PRF.irpCasLong.ordinal ()] = System.nanoTime ();
  7008:     }
  7009:     int ea = XEiJ.regOC & 63;
  7010:     if (ea == XEiJ.EA_IM) {  //CAS2.L Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)
  7011:       M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  7012:       throw M68kException.m6eSignal;
  7013:     } else {  //CAS.L Dc,Du,<ea>
  7014:       int w = mmuReadWordZeroExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS);  //pcwz
  7015:       if ((w & ~0b0000_000_111_000_111) != 0) {
  7016:         M68kException.m6eNumber = M68kException.M6E_ILLEGAL_INSTRUCTION;
  7017:         throw M68kException.m6eSignal;
  7018:       }
  7019:       int a = efaMltLong (ea);  //a=ea
  7020:       if ((a & 1) != 0) {  //misaligned <ea>
  7021:         M68kException.m6eNumber = M68kException.M6E_UNIMPLEMENTED_INSTRUCTION;
  7022:         throw M68kException.m6eSignal;
  7023:       }
  7024:       int c = w & 7;
  7025:       int y = XEiJ.regRn[c];  //y=Dc
  7026:       int x = mmuReadLongData (a, XEiJ.regSRS);  //x=<ea>
  7027:       int z = x - y;  //z=<ea>-Dc
  7028:       XEiJ.regCCR = (XEiJ.regCCR & XEiJ.REG_CCR_X |
  7029:                      (z < 0 ? XEiJ.REG_CCR_N : 0) |
  7030:                      (z == 0 ? XEiJ.REG_CCR_Z : 0) |
  7031:                      ((x ^ y) & (x ^ z)) >>> 31 << 1 |
  7032:                      (x & (y ^ z) ^ (y | z)) >>> 31);  //ccr_cmp
  7033:       if (z == 0) {  //<ea>==Dc
  7034:         XEiJ.mpuCycleCount += 19;
  7035:         mmuWriteLongData (a, XEiJ.regRn[w >> 6], XEiJ.regSRS);  //Du→<ea>
  7036:       } else {  //<ea>!=Dc
  7037:         XEiJ.mpuCycleCount += 19;
  7038:         XEiJ.regRn[c] = x;  //<ea>→Dc
  7039:       }
  7040:     }
  7041:     if (Profiling.PFF_ON) {
  7042:       Profiling.pffTotal[Profiling.PRF.irpCasLong.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpCasLong.ordinal ()];
  7043:       Profiling.pffCount[Profiling.PRF.irpCasLong.ordinal ()]++;
  7044:     }
  7045:   }  //irpCasLong
  7046: 
  7047:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7048:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7049:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7050:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7051:   //MOVE.B <ea>,Dq                                  |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_000_mmm_rrr
  7052:   public static void irpMoveToDRByte () throws M68kException {
  7053:     if (Profiling.PFF_ON) {
  7054:       Profiling.pffStart[Profiling.PRF.irpMoveToDRByte.ordinal ()] = System.nanoTime ();
  7055:     }
  7056:     XEiJ.mpuCycleCount++;
  7057:     int ea = XEiJ.regOC & 63;
  7058:     int qqq = XEiJ.regOC >> 9 & 7;
  7059:     int z = ea < XEiJ.EA_AR ? XEiJ.regRn[ea] : ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS);  //pcbs。イミディエイトを分離
  7060:     XEiJ.regRn[qqq] = ~255 & XEiJ.regRn[qqq] | 255 & z;
  7061:     XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  7062:     if (Profiling.PFF_ON) {
  7063:       Profiling.pffTotal[Profiling.PRF.irpMoveToDRByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMoveToDRByte.ordinal ()];
  7064:       Profiling.pffCount[Profiling.PRF.irpMoveToDRByte.ordinal ()]++;
  7065:     }
  7066:   }  //irpMoveToDRByte
  7067: 
  7068:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7069:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7070:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7071:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7072:   //MOVE.B <ea>,(Aq)                                |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_010_mmm_rrr
  7073:   public static void irpMoveToMMByte () throws M68kException {
  7074:     if (Profiling.PFF_ON) {
  7075:       Profiling.pffStart[Profiling.PRF.irpMoveToMMByte.ordinal ()] = System.nanoTime ();
  7076:     }
  7077:     XEiJ.mpuCycleCount++;
  7078:     int ea = XEiJ.regOC & 63;
  7079:     int z = ea < XEiJ.EA_AR ? XEiJ.regRn[ea] : ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS);  //pcbs。イミディエイトを分離。ここでAqが変化する可能性があることに注意
  7080:     mmuWriteByteData (XEiJ.regRn[XEiJ.regOC >> 9], z, XEiJ.regSRS);  //1qqq=aqq
  7081:     XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  7082:     if (Profiling.PFF_ON) {
  7083:       Profiling.pffTotal[Profiling.PRF.irpMoveToMMByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMoveToMMByte.ordinal ()];
  7084:       Profiling.pffCount[Profiling.PRF.irpMoveToMMByte.ordinal ()]++;
  7085:     }
  7086:   }  //irpMoveToMMByte
  7087: 
  7088:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7089:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7090:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7091:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7092:   //MOVE.B <ea>,(Aq)+                               |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_011_mmm_rrr
  7093:   public static void irpMoveToMPByte () throws M68kException {
  7094:     if (Profiling.PFF_ON) {
  7095:       Profiling.pffStart[Profiling.PRF.irpMoveToMPByte.ordinal ()] = System.nanoTime ();
  7096:     }
  7097:     XEiJ.mpuCycleCount++;
  7098:     int ea = XEiJ.regOC & 63;
  7099:     int aqq = XEiJ.regOC >> 9;  //1qqq=aqq
  7100:     int z = ea < XEiJ.EA_AR ? XEiJ.regRn[ea] : ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS);  //pcbs。イミディエイトを分離。ここでAqが変化する可能性があることに注意
  7101:     int a = XEiJ.regRn[aqq];
  7102:     if (aqq < 15) {
  7103:       M68kException.m6eIncremented += 1L << (aqq << 3);  //longのシフトカウントは6bitでマスクされる
  7104:       XEiJ.regRn[aqq] = a + 1;
  7105:     } else {
  7106:       M68kException.m6eIncremented += 2L << (7 << 3);
  7107:       XEiJ.regRn[15] = a + 2;
  7108:     }
  7109:     mmuWriteByteData (a, z, XEiJ.regSRS);
  7110:     XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  7111:     if (Profiling.PFF_ON) {
  7112:       Profiling.pffTotal[Profiling.PRF.irpMoveToMPByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMoveToMPByte.ordinal ()];
  7113:       Profiling.pffCount[Profiling.PRF.irpMoveToMPByte.ordinal ()]++;
  7114:     }
  7115:   }  //irpMoveToMPByte
  7116: 
  7117:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7118:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7119:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7120:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7121:   //MOVE.B <ea>,-(Aq)                               |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_100_mmm_rrr
  7122:   public static void irpMoveToMNByte () throws M68kException {
  7123:     if (Profiling.PFF_ON) {
  7124:       Profiling.pffStart[Profiling.PRF.irpMoveToMNByte.ordinal ()] = System.nanoTime ();
  7125:     }
  7126:     XEiJ.mpuCycleCount++;
  7127:     int ea = XEiJ.regOC & 63;
  7128:     int aqq = XEiJ.regOC >> 9;  //1qqq=aqq
  7129:     int z = ea < XEiJ.EA_AR ? XEiJ.regRn[ea] : ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS);  //pcbs。イミディエイトを分離。ここでAqが変化する可能性があることに注意
  7130:     int a;
  7131:     if (aqq < 15) {
  7132:       M68kException.m6eIncremented -= 1L << (aqq << 3);  //longのシフトカウントは6bitでマスクされる
  7133:       a = --XEiJ.regRn[aqq];
  7134:     } else {
  7135:       M68kException.m6eIncremented -= 2L << (7 << 3);
  7136:       a = XEiJ.regRn[15] -= 2;
  7137:     }
  7138:     mmuWriteByteData (a, z, XEiJ.regSRS);
  7139:     XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  7140:     if (Profiling.PFF_ON) {
  7141:       Profiling.pffTotal[Profiling.PRF.irpMoveToMNByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMoveToMNByte.ordinal ()];
  7142:       Profiling.pffCount[Profiling.PRF.irpMoveToMNByte.ordinal ()]++;
  7143:     }
  7144:   }  //irpMoveToMNByte
  7145: 
  7146:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7147:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7148:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7149:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7150:   //MOVE.B <ea>,(d16,Aq)                            |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_101_mmm_rrr
  7151:   public static void irpMoveToMWByte () throws M68kException {
  7152:     if (Profiling.PFF_ON) {
  7153:       Profiling.pffStart[Profiling.PRF.irpMoveToMWByte.ordinal ()] = System.nanoTime ();
  7154:     }
  7155:     XEiJ.mpuCycleCount++;
  7156:     int ea = XEiJ.regOC & 63;
  7157:     int aqq = XEiJ.regOC >> 9;  //1qqq=aqq
  7158:     int z = ea < XEiJ.EA_AR ? XEiJ.regRn[ea] : ea == XEiJ.EA_IM ? mmuReadByteSignExword ((XEiJ.regPC += 2) - 1, XEiJ.regSRS) : mmuReadByteSignData (efaAnyByte (ea), XEiJ.regSRS);  //pcbs。イミディエイトを分離。ここでAqが変化する可能性があることに注意
  7159:     mmuWriteByteData (XEiJ.regRn[aqq]  //ベースレジスタ
  7160:                       + mmuReadWordSignExword ((XEiJ.regPC += 2) - 2, XEiJ.regSRS),  //pcws。ワードディスプレースメント
  7161:                       z, XEiJ.regSRS);
  7162:     XEiJ.regCCR = XEiJ.regCCR & XEiJ.REG_CCR_X | XEiJ.MPU_TSTB_TABLE[255 & z];  //ccr_tst_byte
  7163:     if (Profiling.PFF_ON) {
  7164:       Profiling.pffTotal[Profiling.PRF.irpMoveToMWByte.ordinal ()] += System.nanoTime () - Profiling.pffStart[Profiling.PRF.irpMoveToMWByte.ordinal ()];
  7165:       Profiling.pffCount[Profiling.PRF.irpMoveToMWByte.ordinal ()]++;
  7166:     }
  7167:   }  //irpMoveToMWByte
  7168: 
  7169:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7170:   //                                                | |  MPU | |CCin |CCout|addressing|     1st opcode         2nd opcode
  7171:   //                           A:alias P:privileged |A|012346|P|XNZVC|XNZVC|DAM+-WXZPI|bbbb_bbb_bbb_bbb_bbb-bbbbbbbbbbbbbbbb
  7172:   //------------------------------------------------+-+------+-+-----+-----+----------+-------------------------------------
  7173:   //MOVE.B <ea>,(d8,Aq,Rn.wl)                       |-|012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_110_mmm_rrr
  7174:   public static void irpMoveToMXByte () throws M68kException {
  7175:     if (Profiling.PFF_ON) {
  7176:       Profiling.pffStart[Profiling.PRF.irpMoveToMXByte.ordinal ()] = System.nanoTime ();
  7177:     }
  7178:     XEiJ.mpuCycleCount++;
  7179:     int