BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SETNB_EbM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit8u result_8 = !getB_CF(); write_virtual_byte(i->seg(), eaddr, result_8); BX_NEXT_INSTR(i); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_EwIwR(bxInstruction_c *i) { bx_bool temp_CF = getB_CF(); Bit16u op1_16, op2_16 = i->Iw(), sum_16; op1_16 = BX_READ_16BIT_REG(i->rm()); sum_16 = op1_16 + op2_16 + temp_CF; BX_WRITE_16BIT_REG(i->rm(), sum_16); SET_FLAGS_OSZAPC_16(op1_16, op2_16, sum_16, BX_LF_INSTR_ADD_ADC16(temp_CF)); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_EwIwR(bxInstruction_c *i) { bx_bool temp_CF = getB_CF(); Bit16u op1_16, op2_16 = i->Iw(), diff_16; op1_16 = BX_READ_16BIT_REG(i->rm()); diff_16 = op1_16 - (op2_16 + temp_CF); BX_WRITE_16BIT_REG(i->rm(), diff_16); SET_FLAGS_OSZAPC_16(op1_16, op2_16, diff_16, BX_LF_INSTR_SUB_SBB16(temp_CF)); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_ALIb(bxInstruction_c *i) { Bit32u op1 = AL; Bit32u op2 = i->Ib(); Bit32u sum = op1 + op2 + getB_CF(); AL = sum; SET_FLAGS_OSZAPC_ADD_8(op1, op2, sum); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_EbIbR(bxInstruction_c *i) { Bit32u op1_8 = BX_READ_8BIT_REGx(i->rm(), i->extend8bitL()); Bit32u op2_8 = i->Ib(); Bit32u diff_8 = op1_8 - (op2_8 + getB_CF()); BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), diff_8); SET_FLAGS_OSZAPC_SUB_8(op1_8, op2_8, diff_8); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_AXIw(bxInstruction_c *i) { Bit32u op1_16 = AX; Bit32u op2_16 = i->Iw(); Bit32u diff_16 = op1_16 - (op2_16 + getB_CF()); AX = diff_16; SET_FLAGS_OSZAPC_SUB_16(op1_16, op2_16, diff_16); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_AXIw(bxInstruction_c *i) { Bit32u op1_16 = AX; Bit32u op2_16 = i->Iw(); Bit32u sum_16 = op1_16 + op2_16 + getB_CF(); AX = sum_16; SET_FLAGS_OSZAPC_ADD_16(op1_16, op2_16, sum_16); BX_NEXT_INSTR(i); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_AXIw(bxInstruction_c *i) { bx_bool temp_CF = getB_CF(); Bit16u op1_16, op2_16, diff_16; op1_16 = AX; op2_16 = i->Iw(); diff_16 = op1_16 - (op2_16 + temp_CF); AX = diff_16; SET_FLAGS_OSZAPC_16(op1_16, op2_16, diff_16, BX_LF_INSTR_SUB_SBB16(temp_CF)); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_GwEwR(bxInstruction_c *i) { Bit32u op1_16 = BX_READ_16BIT_REG(i->nnn()); Bit32u op2_16 = BX_READ_16BIT_REG(i->rm()); Bit32u sum_16 = op1_16 + op2_16 + getB_CF(); BX_WRITE_16BIT_REG(i->nnn(), sum_16); SET_FLAGS_OSZAPC_ADD_16(op1_16, op2_16, sum_16); BX_NEXT_INSTR(i); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_AXIw(bxInstruction_c *i) { Bit16u op1_16, op2_16, sum_16; bx_bool temp_CF = getB_CF(); op1_16 = AX; op2_16 = i->Iw(); sum_16 = op1_16 + op2_16 + temp_CF; AX = sum_16; SET_FLAGS_OSZAPC_16(op1_16, op2_16, sum_16, BX_LF_INSTR_ADD_ADC16(temp_CF)); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_GbEbR(bxInstruction_c *i) { Bit32u op1 = BX_READ_8BIT_REGx(i->nnn(), i->extend8bitL()); Bit32u op2 = BX_READ_8BIT_REGx(i->rm(), i->extend8bitL()); Bit32u sum = op1 + op2 + getB_CF(); BX_WRITE_8BIT_REGx(i->nnn(), i->extend8bitL(), sum); SET_FLAGS_OSZAPC_ADD_8(op1, op2, sum); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_EwIwR(bxInstruction_c *i) { Bit32u op1_16 = BX_READ_16BIT_REG(i->rm()); Bit32u op2_16 = i->Iw(); Bit32u diff_16 = op1_16 - (op2_16 + getB_CF()); BX_WRITE_16BIT_REG(i->rm(), diff_16); SET_FLAGS_OSZAPC_SUB_16(op1_16, op2_16, diff_16); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_ALIb(bxInstruction_c *i) { Bit32u op1_8 = AL; Bit32u op2_8 = i->Ib(); Bit32u diff_8 = op1_8 - (op2_8 + getB_CF()); AL = diff_8; SET_FLAGS_OSZAPC_SUB_8(op1_8, op2_8, diff_8); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_EbIbM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit32u op1_8 = read_RMW_virtual_byte(i->seg(), eaddr); Bit32u op2_8 = i->Ib(); Bit32u diff_8 = op1_8 - (op2_8 + getB_CF()); write_RMW_virtual_byte(diff_8); SET_FLAGS_OSZAPC_SUB_8(op1_8, op2_8, diff_8); BX_NEXT_INSTR(i); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_EwIwM(bxInstruction_c *i) { bx_bool temp_CF = getB_CF(); Bit16u op1_16, op2_16 = i->Iw(), sum_16; BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); op1_16 = read_RMW_virtual_word(i->seg(), RMAddr(i)); sum_16 = op1_16 + op2_16 + temp_CF; write_RMW_virtual_word(sum_16); SET_FLAGS_OSZAPC_16(op1_16, op2_16, sum_16, BX_LF_INSTR_ADD_ADC16(temp_CF)); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_EbGbM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit32u op1 = read_RMW_virtual_byte(i->seg(), eaddr); Bit32u op2 = BX_READ_8BIT_REGx(i->nnn(), i->extend8bitL()); Bit32u sum = op1 + op2 + getB_CF(); write_RMW_virtual_byte(sum); SET_FLAGS_OSZAPC_ADD_8(op1, op2, sum); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::ADC_EwGwM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit32u op1_16 = read_RMW_virtual_word(i->seg(), eaddr); Bit32u op2_16 = BX_READ_16BIT_REG(i->nnn()); Bit32u sum_16 = op1_16 + op2_16 + getB_CF(); write_RMW_virtual_word(sum_16); SET_FLAGS_OSZAPC_ADD_16(op1_16, op2_16, sum_16); BX_NEXT_INSTR(i); }
void BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_GwEwM(bxInstruction_c *i) { Bit16u op1_16, op2_16, diff_16; bx_bool temp_CF = getB_CF(); BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); op1_16 = BX_READ_16BIT_REG(i->nnn()); op2_16 = read_virtual_word(i->seg(), RMAddr(i)); diff_16 = op1_16 - (op2_16 + temp_CF); BX_WRITE_16BIT_REG(i->nnn(), diff_16); SET_FLAGS_OSZAPC_16(op1_16, op2_16, diff_16, BX_LF_INSTR_SUB_SBB16(temp_CF)); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SBB_EwIwM(bxInstruction_c *i) { bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i)); Bit32u op1_16 = read_RMW_virtual_word(i->seg(), eaddr); Bit32u op2_16 = i->Iw(); Bit32u diff_16 = op1_16 - (op2_16 + getB_CF()); write_RMW_virtual_word(diff_16); SET_FLAGS_OSZAPC_SUB_16(op1_16, op2_16, diff_16); BX_NEXT_INSTR(i); }
BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::SETNB_EbR(bxInstruction_c *i) { BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), !getB_CF()); BX_NEXT_INSTR(i); }