- void *oldcontext = m68ki_cpu_p;\r
- m68k_set_context(&PicoM68kCPU);\r
- m68k_set_irq(irq); // raise irq (gets lowered after taken or must be done in ack)\r
- m68k_set_context(oldcontext);\r
+ case 2:\r
+ if ((*dst & 0xf000) != 0x6000) // not another branch\r
+ return 1;\r
+ break;\r
+ case 4:\r
+ if ( (*dst & 0xfff8) == 0x4a10 || // tst.b ($aX) // there should be no need to wait\r
+ (*dst & 0xfff8) == 0x4a28 || // tst.b ($xxxx,a0) // for byte change anywhere\r
+ (*dst & 0xff3f) == 0x4a38 || // tst.x ($xxxx.w); tas ($xxxx.w)\r
+ (*dst & 0xc1ff) == 0x0038 || // move.x ($xxxx.w), dX\r
+ (*dst & 0xf13f) == 0xb038) // cmp.x ($xxxx.w), dX\r
+ return 1;\r
+ break;\r
+ case 6:\r
+ if ( ((dst[1] & 0xe0) == 0xe0 && ( // RAM and\r
+ *dst == 0x4a39 || // tst.b ($xxxxxxxx)\r
+ *dst == 0x4a79 || // tst.w ($xxxxxxxx)\r
+ *dst == 0x4ab9 || // tst.l ($xxxxxxxx)\r
+ (*dst & 0xc1ff) == 0x0039 || // move.x ($xxxxxxxx), dX\r
+ (*dst & 0xf13f) == 0xb039))||// cmp.x ($xxxxxxxx), dX\r
+ *dst == 0x0838 || // btst $X, ($xxxx.w) [6 byte op]\r
+ (*dst & 0xffbf) == 0x0c38) // cmpi.{b,w} $X, ($xxxx.w)\r
+ return 1;\r
+ break;\r
+ case 8:\r
+ if ( ((dst[2] & 0xe0) == 0xe0 && ( // RAM and\r
+ *dst == 0x0839 || // btst $X, ($xxxxxxxx.w) [8 byte op]\r
+ (*dst & 0xffbf) == 0x0c39))||// cmpi.{b,w} $X, ($xxxxxxxx)\r
+ *dst == 0x0cb8) // cmpi.l $X, ($xxxx.w)\r
+ return 1;\r
+ break;\r
+ case 12:\r
+ if ((*dst & 0xf1f8) == 0x3010 && // move.w (aX), dX\r
+ (dst[1]&0xf100) == 0x0000 && // arithmetic\r
+ (dst[3]&0xf100) == 0x0000) // arithmetic\r
+ return 1;\r
+ break;\r