static void PREFIX186(_imul_d8)(void) /* Opcode 0x6b */ { DEF_r16w(dst,src); unsigned src2= (WORD)((INT16)((INT8)FETCH)); ICOUNT -= (ModRM >= 0xc0) ? cycles.imul_rri8 : cycles.imul_rmi8; dst = (INT32)((INT16)src)*(INT32)((INT16)src2); I.CarryVal = I.OverVal = (((INT32)dst) >> 15 != 0) && (((INT32)dst) >> 15 != -1); RegWord(ModRM)=(WORD)dst; }
static void PREFIX186(_imul_d8)(i8086_state *cpustate) /* Opcode 0x6b */ { DEF_r16w(dst,src); unsigned src2= (WORD)((INT16)((INT8)FETCH)); ICOUNT -= (ModRM >= 0xc0) ? timing.imul_rri8 : timing.imul_rmi8; dst = (INT32)((INT16)src)*(INT32)((INT16)src2); cpustate->CarryVal = cpustate->OverVal = (((INT32)dst) >> 15 != 0) && (((INT32)dst) >> 15 != -1); RegWord(ModRM)=(WORD)dst; }