Home | History | Annotate | Download | only in x86emu

Lines Matching refs:x86

3 *						Realmode X86 Emulator Library
36 * and emulation of all the x86 processor instructions.
88 if (M.x86.R_SP != 0) {
89 DECODE_PRINTF("ILLEGAL X86 OPCODE\n");
91 DB( printk("%04x:%04x: %02X ILLEGAL X86 OPCODE!\n",
92 M.x86.R_CS, M.x86.R_IP-1,op1));
179 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
206 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
233 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
260 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
354 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
379 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
404 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
429 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
467 M.x86.R_AL = add_byte(M.x86.R_AL, srcval);
481 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
490 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
491 M.x86.R_EAX = add_long(M.x86.R_EAX, srcval);
493 M.x86.R_AX = add_word(M.x86.R_AX, (u16)srcval);
508 push_word(M.x86.R_ES);
522 M.x86.R_ES = pop_word();
599 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
626 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
653 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
680 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
774 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
799 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
824 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
849 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
887 M.x86.R_AL = or_byte(M.x86.R_AL, srcval);
901 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
910 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
911 M.x86.R_EAX = or_long(M.x86.R_EAX, srcval);
913 M.x86.R_AX = or_word(M.x86.R_AX, (u16)srcval);
928 push_word(M.x86.R_CS);
939 u8 op2 = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
1016 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1043 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1070 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1097 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1191 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1216 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1241 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1266 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1304 M.x86.R_AL = adc_byte(M.x86.R_AL, srcval);
1318 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1327 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1328 M.x86.R_EAX = adc_long(M.x86.R_EAX, srcval);
1330 M.x86.R_AX = adc_word(M.x86.R_AX, (u16)srcval);
1345 push_word(M.x86.R_SS);
1359 M.x86.R_SS = pop_word();
1436 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1463 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1490 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1517 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1611 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1636 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1661 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1686 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1724 M.x86.R_AL = sbb_byte(M.x86.R_AL, srcval);
1738 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1747 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1748 M.x86.R_EAX = sbb_long(M.x86.R_EAX, srcval);
1750 M.x86.R_AX = sbb_word(M.x86.R_AX, (u16)srcval);
1765 push_word(M.x86.R_DS);
1779 M.x86.R_DS = pop_word();
1860 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1887 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1914 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1941 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2035 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2060 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2086 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2111 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2149 M.x86.R_AL = and_byte(M.x86.R_AL, srcval);
2163 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2172 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2173 M.x86.R_EAX = and_long(M.x86.R_EAX, srcval);
2175 M.x86.R_AX = and_word(M.x86.R_AX, (u16)srcval);
2190 M.x86.mode |= SYSMODE_SEGOVR_ES;
2207 M.x86.R_AL = daa_byte(M.x86.R_AL);
2284 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2311 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2338 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2365 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2459 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2484 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2509 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2534 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2572 M.x86.R_AL = sub_byte(M.x86.R_AL, srcval);
2586 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2595 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2596 M.x86.R_EAX = sub_long(M.x86.R_EAX, srcval);
2598 M.x86.R_AX = sub_word(M.x86.R_AX, (u16)srcval);
2613 M.x86.mode |= SYSMODE_SEGOVR_CS;
2627 M.x86.R_AL = das_byte(M.x86.R_AL);
2704 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2731 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2758 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2785 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2879 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2904 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2929 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2954 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2992 M.x86.R_AL = xor_byte(M.x86.R_AL, srcval);
3006 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3015 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3016 M.x86.R_EAX = xor_long(M.x86.R_EAX, srcval);
3018 M.x86.R_AX = xor_word(M.x86.R_AX, (u16)srcval);
3033 M.x86.mode |= SYSMODE_SEGOVR_SS;
3047 M.x86.R_AX = aaa_word(M.x86.R_AX);
3121 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3146 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3171 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3196 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3290 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3315 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3340 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3365 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3403 cmp_byte(M.x86.R_AL, srcval);
3417 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3426 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3427 cmp_long(M.x86.R_EAX, srcval);
3429 cmp_word(M.x86.R_AX, (u16)srcval);
3444 M.x86.mode |= SYSMODE_SEGOVR_DS;
3458 M.x86.R_AX = aas_word(M.x86.R_AX);
3470 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3476 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3477 M.x86.R_EAX = inc_long(M.x86.R_EAX);
3479 M.x86.R_AX = inc_word(M.x86.R_AX);
3492 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3498 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3499 M.x86.R_ECX = inc_long(M.x86.R_ECX);
3501 M.x86.R_CX = inc_word(M.x86.R_CX);
3514 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3520 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3521 M.x86.R_EDX = inc_long(M.x86.R_EDX);
3523 M.x86.R_DX = inc_word(M.x86.R_DX);
3536 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3542 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3543 M.x86.R_EBX = inc_long(M.x86.R_EBX);
3545 M.x86.R_BX = inc_word(M.x86.R_BX);
3558 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3564 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3565 M.x86.R_ESP = inc_long(M.x86.R_ESP);
3567 M.x86.R_SP = inc_word(M.x86.R_SP);
3580 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3586 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3587 M.x86.R_EBP = inc_long(M.x86.R_EBP);
3589 M.x86.R_BP = inc_word(M.x86.R_BP);
3602 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3608 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3609 M.x86.R_ESI = inc_long(M.x86.R_ESI);
3611 M.x86.R_SI = inc_word(M.x86.R_SI);
3624 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3630 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3631 M.x86.R_EDI = inc_long(M.x86.R_EDI);
3633 M.x86.R_DI = inc_word(M.x86.R_DI);
3646 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3652 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3653 M.x86.R_EAX = dec_long(M.x86.R_EAX);
3655 M.x86.R_AX = dec_word(M.x86.R_AX);
3668 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3674 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3675 M.x86.R_ECX = dec_long(M.x86.R_ECX);
3677 M.x86.R_CX = dec_word(M.x86.R_CX);
3690 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3696 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3697 M.x86.R_EDX = dec_long(M.x86.R_EDX);
3699 M.x86.R_DX = dec_word(M.x86.R_DX);
3712 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3718 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3719 M.x86.R_EBX = dec_long(M.x86.R_EBX);
3721 M.x86.R_BX = dec_word(M.x86.R_BX);
3734 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3740 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3741 M.x86.R_ESP = dec_long(M.x86.R_ESP);
3743 M.x86.R_SP = dec_word(M.x86.R_SP);
3756 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3762 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3763 M.x86.R_EBP = dec_long(M.x86.R_EBP);
3765 M.x86.R_BP = dec_word(M.x86.R_BP);
3778 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3784 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3785 M.x86.R_ESI = dec_long(M.x86.R_ESI);
3787 M.x86.R_SI = dec_word(M.x86.R_SI);
3800 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3806 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3807 M.x86.R_EDI = dec_long(M.x86.R_EDI);
3809 M.x86.R_DI = dec_word(M.x86.R_DI);
3822 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3828 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3829 push_long(M.x86.R_EAX);
3831 push_word(M.x86.R_AX);
3844 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3850 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3851 push_long(M.x86.R_ECX);
3853 push_word(M.x86.R_CX);
3866 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3872 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3873 push_long(M.x86.R_EDX);
3875 push_word(M.x86.R_DX);
3888 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3894 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3895 push_long(M.x86.R_EBX);
3897 push_word(M.x86.R_BX);
3910 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3920 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3921 push_long(M.x86.R_ESP);
3923 push_word((u16)(M.x86.R_SP));
3936 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3942 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3943 push_long(M.x86.R_EBP);
3945 push_word(M.x86.R_BP);
3958 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3964 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3965 push_long(M.x86.R_ESI);
3967 push_word(M.x86.R_SI);
3980 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3986 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3987 push_long(M.x86.R_EDI);
3989 push_word(M.x86.R_DI);
4002 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4008 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4009 M.x86.R_EAX = pop_long();
4011 M.x86.R_AX = pop_word();
4024 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4030 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4031 M.x86.R_ECX = pop_long();
4033 M.x86.R_CX = pop_word();
4046 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4052 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4053 M.x86.R_EDX = pop_long();
4055 M.x86.R_DX = pop_word();
4068 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4074 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4075 M.x86.R_EBX = pop_long();
4077 M.x86.R_BX = pop_word();
4090 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4096 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4097 M.x86.R_ESP = pop_long();
4099 M.x86.R_SP = pop_word();
4112 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4118 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4119 M.x86.R_EBP = pop_long();
4121 M.x86.R_BP = pop_word();
4134 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4140 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4141 M.x86.R_ESI = pop_long();
4143 M.x86.R_SI = pop_word();
4156 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4162 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4163 M.x86.R_EDI = pop_long();
4165 M.x86.R_DI = pop_word();
4178 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4184 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4185 u32 old_sp = M.x86.R_ESP;
4187 push_long(M.x86.R_EAX);
4188 push_long(M.x86.R_ECX);
4189 push_long(M.x86.R_EDX);
4190 push_long(M.x86.R_EBX);
4192 push_long(M.x86.R_EBP);
4193 push_long(M.x86.R_ESI);
4194 push_long(M.x86.R_EDI);
4196 u16 old_sp = M.x86.R_SP;
4198 push_word(M.x86.R_AX);
4199 push_word(M.x86.R_CX);
4200 push_word(M.x86.R_DX);
4201 push_word(M.x86.R_BX);
4203 push_word(M.x86.R_BP);
4204 push_word(M.x86.R_SI);
4205 push_word(M.x86.R_DI);
4218 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4224 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4225 M.x86.R_EDI = pop_long();
4226 M.x86.R_ESI = pop_long();
4227 M.x86.R_EBP = pop_long();
4228 M.x86.R_ESP += 4; /* skip ESP */
4229 M.x86.R_EBX = pop_long();
4230 M.x86.R_EDX = pop_long();
4231 M.x86.R_ECX = pop_long();
4232 M.x86.R_EAX = pop_long();
4234 M.x86.R_DI = pop_word();
4235 M.x86.R_SI = pop_word();
4236 M.x86.R_BP = pop_word();
4237 M.x86.R_SP += 2; /* skip SP */
4238 M.x86.R_BX = pop_word();
4239 M.x86.R_DX = pop_word();
4240 M.x86.R_CX = pop_word();
4241 M.x86.R_AX = pop_word();
4259 M.x86.mode |= SYSMODE_SEGOVR_FS;
4276 M.x86.mode |= SYSMODE_SEGOVR_GS;
4293 M.x86
4307 M.x86.mode |= SYSMODE_PREFIX_ADDR;
4321 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4328 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4351 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4398 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4445 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4492 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4550 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4574 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4619 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4664 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4709 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4774 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4807 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4832 target = (u16)(M.x86.R_IP + (s16)offset);
4836 M.x86.R_IP = target;
4854 target = (u16)(M.x86.R_IP + (s16)offset);
4858 M.x86.R_IP = target;
4876 target = (u16)(M.x86.R_IP + (s16)offset);
4880 M.x86.R_IP = target;
4898 target = (u16)(M.x86.R_IP + (s16)offset);
4902 M.x86.R_IP = target;
4920 target = (u16)(M.x86.R_IP + (s16)offset);
4924 M.x86.R_IP = target;
4942 target = (u16)(M.x86.R_IP + (s16)offset);
4946 M.x86.R_IP = target;
4965 target = (u16)(M.x86.R_IP + (s16)offset);
4969 M.x86.R_IP = target;
4988 target = (u16)(M.x86.R_IP + (s16)offset);
4992 M.x86.R_IP = target;
5010 target = (u16)(M.x86.R_IP + (s16)offset);
5014 M.x86.R_IP = target;
5032 target = (u16)(M.x86.R_IP + (s16)offset);
5036 M.x86.R_IP = target;
5054 target = (u16)(M.x86.R_IP + (s16)offset);
5058 M.x86.R_IP = target;
5076 target = (u16)(M.x86.R_IP + (s16)offset);
5080 M.x86.R_IP = target;
5099 target = (u16)(M.x86.R_IP + (s16)offset);
5105 M.x86.R_IP = target;
5124 target = (u16)(M.x86.R_IP + (s16)offset);
5131 M.x86.R_IP = target;
5151 target = (u16)(M.x86.R_IP + (s16)offset);
5157 M.x86.R_IP = target;
5177 target = (u16)(M.x86.R_IP + (s16)offset);
5183 M.x86.R_IP = target;
5389 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5418 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5447 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5476 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5702 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5729 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5756 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5783 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5881 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5906 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5931 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5956 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5983 Handles opcode 0x86
6062 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6093 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6124 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6155 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6251 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6272 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6293 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6314 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6408 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6433 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6458 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6483 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6577 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
6594 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
6611 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
6714 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6733 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6752 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6771 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6814 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6820 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6821 tmp = M.x86.R_EAX;
6822 M.x86.R_EAX = M.x86.R_ECX;
6823 M.x86.R_ECX = tmp;
6825 tmp = M.x86.R_AX;
6826 M.x86.R_AX = M.x86.R_CX;
6827 M.x86.R_CX = (u16)tmp;
6842 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6848 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6849 tmp = M.x86.R_EAX;
6850 M.x86.R_EAX = M.x86.R_EDX;
6851 M.x86.R_EDX = tmp;
6853 tmp = M.x86.R_AX;
6854 M.x86.R_AX = M.x86.R_DX;
6855 M.x86.R_DX = (u16)tmp;
6870 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6876 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6877 tmp = M.x86.R_EAX;
6878 M.x86.R_EAX = M.x86.R_EBX;
6879 M.x86.R_EBX = tmp;
6881 tmp = M.x86.R_AX;
6882 M.x86.R_AX = M.x86.R_BX;
6883 M.x86.R_BX = (u16)tmp;
6898 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6904 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6905 tmp = M.x86.R_EAX;
6906 M.x86.R_EAX = M.x86.R_ESP;
6907 M.x86.R_ESP = tmp;
6909 tmp = M.x86.R_AX;
6910 M.x86.R_AX = M.x86.R_SP;
6911 M.x86.R_SP = (u16)tmp;
6926 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6932 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6933 tmp = M.x86.R_EAX;
6934 M.x86.R_EAX = M.x86.R_EBP;
6935 M.x86.R_EBP = tmp;
6937 tmp = M.x86.R_AX;
6938 M.x86.R_AX = M.x86.R_BP;
6939 M.x86.R_BP = (u16)tmp;
6954 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6960 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6961 tmp = M.x86.R_EAX;
6962 M.x86.R_EAX = M.x86.R_ESI;
6963 M.x86.R_ESI = tmp;
6965 tmp = M.x86.R_AX;
6966 M.x86.R_AX = M.x86.R_SI;
6967 M.x86.R_SI = (u16)tmp;
6982 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6988 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6989 tmp = M.x86.R_EAX;
6990 M.x86.R_EAX = M.x86.R_EDI;
6991 M.x86.R_EDI = tmp;
6993 tmp = M.x86.R_AX;
6994 M.x86.R_AX = M.x86.R_DI;
6995 M.x86.R_DI = (u16)tmp;
7008 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7014 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7015 if (M.x86.R_AX & 0x8000) {
7016 M.x86.R_EAX |= 0xffff0000;
7018 M.x86.R_EAX &= 0x0000ffff;
7021 if (M.x86.R_AL & 0x80) {
7022 M.x86.R_AH = 0xff;
7024 M.x86.R_AH = 0x0;
7038 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7045 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7046 if (M.x86.R_EAX & 0x80000000) {
7047 M.x86.R_EDX = 0xffffffff;
7049 x86.R_EDX = 0x0;
7052 if (M.x86.R_AX & 0x8000) {
7053 M.x86.R_DX = 0xffff;
7055 M.x86.R_DX = 0x0;
7072 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7081 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, farseg, faroff, "FAR ");
7090 push_word(M.x86.R_CS);
7091 M.x86.R_CS = farseg;
7092 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7093 push_long(M.x86.R_EIP);
7095 push_word(M.x86.R_IP);
7097 M.x86.R_EIP = faroff & 0xffff;
7125 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7133 flags = (M.x86.R_EFLG & F_MSK) | F_ALWAYS_ON;
7134 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7150 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7156 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7157 M.x86.R_EFLG = pop_long();
7159 M.x86.R_FLG = pop_word();
7175 M.x86.R_FLG &= 0xffffff00;
7177 M.x86.R_FLG |= M.x86.R_AH;
7191 M.x86.R_AH = (u8)(M.x86.R_FLG & 0xff);
7194 M.x86.R_AH |= 0x2;
7212 M.x86.R_AL = fetch_data_byte(offset);
7227 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7233 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7234 M.x86.R_EAX = fetch_data_long(offset);
7236 M.x86.R_AX = fetch_data_word(offset);
7255 store_data_byte(offset, M.x86.R_AL);
7270 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7276 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7277 store_data_long(offset, M.x86.R_EAX);
7279 store_data_word(offset, M.x86.R_AX);
7303 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7306 count = M.x86.R_CX;
7307 M.x86.R_CX = 0;
7308 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7311 val = fetch_data_byte(M.x86.R_SI);
7312 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, val);
7313 M.x86.R_SI += inc;
7314 M.x86.R_DI += inc;
7331 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7346 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7349 count = M.x86.R_CX;
7350 M.x86.R_CX = 0;
7351 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7354 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7355 val = fetch_data_long(M.x86.R_SI);
7356 store_data_long_abs(M.x86.R_ES, M.x86.R_DI, val);
7358 val = fetch_data_word(M.x86.R_SI);
7359 store_data_word_abs(M.x86.R_ES, M.x86.R_DI, (u16)val);
7361 M.x86.R_SI += inc;
7362 M.x86.R_DI += inc;
7385 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7388 while (M.x86.R_CX != 0) {
7389 val1 = fetch_data_byte(M.x86.R_SI);
7390 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7392 M.x86.R_CX -= 1;
7393 M.x86.R_SI += inc;
7394 M.x86.R_DI += inc;
7398 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7399 } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7402 while (M.x86.R_CX != 0) {
7403 val1 = fetch_data_byte(M.x86.R_SI);
7404 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7406 M.x86.R_CX -= 1;
7407 M.x86.R_SI += inc;
7408 M.x86.R_DI += inc;
7412 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7414 val1 = fetch_data_byte(M.x86.R_SI);
7415 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7417 M.x86.R_SI += inc;
7418 M.x86.R_DI += inc;
7434 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7448 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7451 while (M.x86.R_CX != 0) {
7452 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7453 val1 = fetch_data_long(M.x86.R_SI);
7454 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7457 val1 = fetch_data_word(M.x86.R_SI);
7458 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7461 M.x86.R_CX -= 1;
7462 M.x86.R_SI += inc;
7463 M.x86.R_DI += inc;
7467 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7468 } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7471 while (M.x86.R_CX != 0) {
7472 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7473 val1 = fetch_data_long(M.x86.R_SI);
7474 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7477 val1 = fetch_data_word(M.x86.R_SI);
7478 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7481 M.x86.R_CX -= 1;
7482 M.x86.R_SI += inc;
7483 M.x86.R_DI += inc;
7487 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7489 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7490 val1 = fetch_data_long(M.x86.R_SI);
7491 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7494 val1 = fetch_data_word(M.x86.R_SI);
7495 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7498 M.x86.R_SI += inc;
7499 M.x86.R_DI += inc;
7518 test_byte(M.x86.R_AL, (u8)imm);
7532 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7541 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7542 test_long(M.x86.R_EAX, srcval);
7544 test_word(M.x86.R_AX, (u16)srcval);
7565 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7568 while (M.x86.R_CX != 0) {
7569 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
7570 M.x86.R_CX -= 1;
7571 M.x86.R_DI += inc;
7573 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7575 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
7576 M.x86.R_DI += inc;
7592 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7607 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7610 count = M.x86.R_CX;
7611 M.x86.R_CX = 0;
7612 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7615 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7616 store_data_long_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_EAX);
7618 store_data_word_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AX);
7620 M.x86.R_DI += inc;
7641 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7644 while (M.x86.R_CX != 0) {
7645 M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
7646 M.x86.R_CX -= 1;
7647 M.x86.R_SI += inc;
7649 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7651 M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
7652 M.x86.R_SI += inc;
7668 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7683 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7686 count = M.x86.R_CX;
7687 M.x86.R_CX = 0;
7688 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7691 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7692 M.x86.R_EAX = fetch_data_long(M.x86.R_SI);
7694 M.x86.R_AX = fetch_data_word(M.x86.R_SI);
7696 M.x86.R_SI += inc;
7718 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7721 while (M.x86.R_CX != 0) {
7722 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7723 cmp_byte(M.x86.R_AL, val2);
7724 M.x86.R_CX -= 1;
7725 M.x86.R_DI += inc;
7729 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7730 } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7733 while (M.x86.R_CX != 0) {
7734 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7735 cmp_byte(M.x86.R_AL, val2);
7736 M.x86.R_CX -= 1;
7737 M.x86.R_DI += inc;
7741 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7743 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7744 cmp_byte(M.x86.R_AL, val2);
7745 M.x86.R_DI += inc;
7761 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7775 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7778 while (M.x86.R_CX != 0) {
7779 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7780 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7781 cmp_long(M.x86.R_EAX, val);
7783 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7784 cmp_word(M.x86.R_AX, (u16)val);
7786 M.x86.R_CX -= 1;
7787 M.x86.R_DI += inc;
7791 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7792 } else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7795 while (M.x86.R_CX != 0) {
7796 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7797 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7798 cmp_long(M.x86.R_EAX, val);
7800 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7801 cmp_word(M.x86.R_AX, (u16)val);
7803 M.x86.R_CX -= 1;
7804 M.x86.R_DI += inc;
7808 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7810 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7811 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7812 cmp_long(M.x86.R_EAX, val);
7814 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7815 cmp_word(M.x86.R_AX, (u16)val);
7817 M.x86.R_DI += inc;
7836 M.x86.R_AL = imm;
7854 M.x86.R_CL = imm;
7872 M.x86.R_DL = imm;
7890 M.x86.R_BL = imm;
7908 M.x86.R_AH = imm;
7926 M.x86.R_CH = imm;
7944 M.x86.R_DH = imm;
7962 M.x86.R_BH = imm;
7976 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7985 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7986 M.x86.R_EAX = srcval;
7988 M.x86.R_AX = (u16)srcval;
8003 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8012 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8013 M.x86.R_ECX = srcval;
8015 M.x86.R_CX = (u16)srcval;
8030 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8039 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8040 M.x86.R_EDX = srcval;
8042 M.x86.R_DX = (u16)srcval;
8057 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8066 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8067 M.x86.R_EBX = srcval;
8069 M.x86.R_BX = (u16)srcval;
8084 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8093 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8094 M.x86.R_ESP = srcval;
8096 M.x86.R_SP = (u16)srcval;
8111 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8120 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8121 M.x86.R_EBP = srcval;
8123 M.x86.R_BP = (u16)srcval;
8138 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8147 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8148 M.x86.R_ESI = srcval;
8150 M.x86.R_SI = (u16)srcval;
8165 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8174 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8175 M.x86.R_EDI = srcval;
8177 M.x86.R_DI = (u16)srcval;
8378 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8403 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8428 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8453 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8488 RETURN_TRACE("RET",M.x86.saved_cs,M.x86.saved_ip);
8490 M.x86.R_IP = pop_word();
8491 M.x86.R_SP += imm;
8504 RETURN_TRACE("RET",M.x86.saved_cs,M.x86.saved_ip);
8506 M.x86.R_IP = pop_word();
8532 M.x86.R_ES = fetch_data_word(srcoffset + 2);
8541 M.x86.R_ES = fetch_data_word(srcoffset + 2);
8550 M.x86.R_ES = fetch_data_word(srcoffset + 2);
8581 M.x86.R_DS = fetch_data_word(srcoffset + 2);
8590 M.x86.R_DS = fetch_data_word(srcoffset + 2);
8599 M.x86.R_DS = fetch_data_word(srcoffset + 2);
8682 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8703 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8724 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8745 x86.mode & SYSMODE_PREFIX_DATA) {
8786 push_word(M.x86.R_BP);
8787 frame_pointer = M.x86.R_SP;
8790 M.x86.R_BP -= 2;
8791 push_word(fetch_data_word_abs(M.x86.R_SS, M.x86.R_BP));
8795 M.x86.R_BP = frame_pointer;
8796 M.x86.R_SP = (u16)(M.x86.R_SP - local);
8810 M.x86.R_SP = M.x86.R_BP;
8811 M.x86.R_BP = pop_word();
8828 RETURN_TRACE("RETF",M.x86.saved_cs,M.x86.saved_ip);
8830 M.x86.R_IP = pop_word();
8831 M.x86.R_CS = pop_word();
8832 M.x86.R_SP += imm;
8845 RETURN_TRACE("RETF",M.x86.saved_cs,M.x86.saved_ip);
8847 M.x86.R_IP = pop_word();
8848 M.x86.R_CS = pop_word();
8865 push_word((u16)M.x86.R_FLG);
8868 push_word(M.x86.R_CS);
8869 M.x86.R_CS = mem_access_word(3 * 4 + 2);
8870 push_word(M.x86.R_IP);
8871 M.x86.R_IP = mem_access_word(3 * 4);
8893 push_word((u16)M.x86.R_FLG);
8896 push_word(M.x86.R_CS);
8897 M.x86.R_CS = mem_access_word(intnum * 4 + 2);
8898 push_word(M.x86.R_IP);
8899 M.x86.R_IP = mem_access_word(intnum * 4);
8918 push_word((u16)M.x86.R_FLG);
8921 push_word(M.x86.R_CS);
8922 M.x86.R_CS = mem_access_word(4 * 4 + 2);
8923 push_word(M.x86.R_IP);
8924 M.x86.R_IP = mem_access_word(4 * 4);
8942 M.x86.R_IP = pop_word();
8943 M.x86.R_CS = pop_word();
8944 M.x86.R_FLG = pop_word();
9097 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9120 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9143 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9166 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9246 amt = M.x86.R_CL;
9340 amt = M.x86.R_CL;
9343 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9366 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9389 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9412 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9453 M.x86.R_AX = aam_word(M.x86.R_AL);
9477 M.x86.R_AX = aad_word(M.x86.R_AX);
9495 addr = (u16)(M.x86.R_BX + (u8)M.x86.R_AL);
9496 M.x86.R_AL = fetch_data_byte(addr);
9514 ip += (s16) M.x86.R_IP;
9517 M.x86.R_CX -= 1;
9518 if (M.x86.R_CX != 0 && !ACCESS_FLAG(F_ZF)) /* CX != 0 and !ZF */
9519 M.x86.R_IP = ip;
9535 ip += (s16) M.x86.R_IP;
9538 M.x86.R_CX -= 1;
9539 if (M.x86.R_CX != 0 && ACCESS_FLAG(F_ZF)) /* CX != 0 and ZF */
9540 M.x86.R_IP = ip;
9556 ip += (s16) M.x86.R_IP;
9559 M.x86.R_CX -= 1;
9560 if (M.x86.R_CX != 0)
9561 M.x86.R_IP = ip;
9579 target = (u16)(M.x86.R_IP + offset);
9582 if (M.x86.R_CX == 0)
9583 M.x86.R_IP = target;
9601 M.x86.R_AL = (*sys_inb)(port);
9617 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9623 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9624 M.x86.R_EAX = (*sys_inl)(port);
9626 M.x86.R_AX = (*sys_inw)(port);
9645 (*sys_outb)(port, M.x86.R_AL);
9661 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9667 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9668 (*sys_outl)(port, M.x86.R_EAX);
9670 (*sys_outw)(port, M.x86.R_AX);
9687 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9689 ip32 += (s16) M.x86.R_IP; /* CHECK SIGN */
9691 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip32, "");
9694 ip16 += (s16) M.x86.R_IP; /* CHECK SIGN */
9696 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip16, "");
9699 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9700 push_long(M.x86.R_EIP);
9701 M.x86.R_EIP = ip32 & 0xffff;
9703 push_word(M.x86.R_IP);
9704 M.x86.R_EIP = ip16;
9720 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9722 ip += (u32)M.x86.R_EIP;
9725 M.x86.R_EIP = (u32)ip;
9728 ip += (s16)M.x86.R_IP;
9731 M.x86.R_IP = (u16)ip;
9748 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9757 M.x86.R_EIP = ip & 0xffff;
9758 M.x86.R_CS = cs;
9775 target = (u16)(M.x86.R_IP + offset);
9778 M.x86.R_IP = target;
9792 M.x86.R_AL = (*sys_inb)(M.x86.R_DX);
9804 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9810 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9811 M.x86.R_EAX = (*sys_inl)(M.x86.R_DX);
9813 M.x86.R_AX = (*sys_inw)(M.x86.R_DX);
9828 (*sys_outb)(M.x86.R_DX, M.x86.R_AL);
9840 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9846 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9847 (*sys_outl)(M.x86.R_DX, M.x86.R_EAX);
9849 (*sys_outw)(M.x86.R_DX, M.x86.R_AX);
9879 M.x86.mode |= SYSMODE_PREFIX_REPNE;
9893 M.x86.mode |= SYSMODE_PREFIX_REPE;
10228 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10257 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10280 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10303 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10324 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10345 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10366 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10391 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10420 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10443 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10466 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10487 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10508 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10529 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10554 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10583 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10606 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10629 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10650 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10671 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10692 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10717 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10746 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10765 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10784 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10803 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10822 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10841 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11096 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11103 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11137 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11154 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11173 push_word(M.x86.R_IP);
11174 M.x86.R_IP = destval;
11180 push_word(M.x86.R_CS);
11181 M.x86.R_CS = destval2;
11182 push_word(M.x86.R_IP);
11183 M.x86.R_IP = destval;
11188 M.x86.R_IP = destval;
11194 M.x86.R_IP = destval;
11195 M.x86.R_CS = destval2;
11198 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11219 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11236 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11255 push_word(M.x86.R_IP);
11256 M.x86.R_IP = destval;
11262 push_word(M.x86.R_CS);
11263 M.x86.R_CS = destval2;
11264 push_word(M.x86.R_IP);
11265 M.x86.R_IP = destval;
11270 M.x86.R_IP = destval;
11276 M.x86.R_IP = destval;
11277 M.x86.R_CS = destval2;
11280 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11301 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11318 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11337 push_word(M.x86.R_IP);
11338 M.x86.R_IP = destval;
11344 push_word(M.x86.R_CS);
11345 M.x86.R_CS = destval2;
11346 push_word(M.x86.R_IP);
11347 M.x86.R_IP = destval;
11352 M.x86.R_IP = destval;
11358 M.x86.R_IP = destval;
11359 M.x86.R_CS = destval2;
11362 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11381 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11398 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11418 push_word(M.x86.R_IP);
11419 M.x86.R_IP = *destreg;
11431 M.x86.R_IP = (u16) (*destreg);
11439 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11617 /* 0x86 */ x86emuOp_xchg_byte_RM_R,