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));
181 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
209 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
237 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
265 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
362 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
388 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
414 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
440 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
480 M.x86.R_AL = add_byte(M.x86.R_AL, srcval);
495 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
505 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
506 M.x86.R_EAX = add_long(M.x86.R_EAX, srcval);
509 M.x86.R_AX = add_word(M.x86.R_AX, (u16) srcval);
525 push_word(M.x86.R_ES);
540 M.x86.R_ES = pop_word();
619 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
647 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
675 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
703 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
800 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
826 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
852 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
878 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
918 M.x86.R_AL = or_byte(M.x86.R_AL, srcval);
933 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
943 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
944 M.x86.R_EAX = or_long(M.x86.R_EAX, srcval);
947 M.x86.R_AX = or_word(M.x86.R_AX, (u16) srcval);
963 push_word(M.x86.R_CS);
975 u8 op2 = (*sys_rdb) (((u32) M.x86.R_CS << 4) + (M.x86.R_IP++));
1055 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1083 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1111 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1139 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1236 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1262 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1288 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1314 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1354 M.x86.R_AL = adc_byte(M.x86.R_AL, srcval);
1369 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1379 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1380 M.x86.R_EAX = adc_long(M.x86.R_EAX, srcval);
1383 M.x86.R_AX = adc_word(M.x86.R_AX, (u16) srcval);
1399 push_word(M.x86.R_SS);
1414 M.x86.R_SS = pop_word();
1493 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1521 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1549 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1577 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1674 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1700 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1726 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1752 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1792 M.x86.R_AL = sbb_byte(M.x86.R_AL, srcval);
1807 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1817 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1818 M.x86.R_EAX = sbb_long(M.x86.R_EAX, srcval);
1821 M.x86.R_AX = sbb_word(M.x86.R_AX, (u16) srcval);
1837 push_word(M.x86.R_DS);
1852 M.x86.R_DS = pop_word();
1935 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1963 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
1991 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2019 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2116 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2142 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2169 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2195 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2235 M.x86.R_AL = and_byte(M.x86.R_AL, srcval);
2250 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2260 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2261 M.x86.R_EAX = and_long(M.x86.R_EAX, srcval);
2264 M.x86.R_AX = and_word(M.x86.R_AX, (u16) srcval);
2280 M.x86.mode |= SYSMODE_SEGOVR_ES;
2298 M.x86.R_AL = daa_byte(M.x86.R_AL);
2377 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2405 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2433 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2461 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2558 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2584 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2610 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2636 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2676 M.x86.R_AL = sub_byte(M.x86.R_AL, srcval);
2691 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2701 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2702 M.x86.R_EAX = sub_long(M.x86.R_EAX, srcval);
2705 M.x86.R_AX = sub_word(M.x86.R_AX, (u16) srcval);
2721 M.x86.mode |= SYSMODE_SEGOVR_CS;
2736 M.x86.R_AL = das_byte(M.x86.R_AL);
2815 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2843 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2871 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2899 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
2996 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3022 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3048 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3074 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3114 M.x86.R_AL = xor_byte(M.x86.R_AL, srcval);
3129 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3139 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3140 M.x86.R_EAX = xor_long(M.x86.R_EAX, srcval);
3143 M.x86.R_AX = xor_word(M.x86.R_AX, (u16) srcval);
3159 M.x86.mode |= SYSMODE_SEGOVR_SS;
3174 M.x86.R_AX = aaa_word(M.x86.R_AX);
3250 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3276 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3302 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3328 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3425 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3451 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3477 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3503 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3543 cmp_byte(M.x86.R_AL, srcval);
3558 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3568 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3569 cmp_long(M.x86.R_EAX, srcval);
3572 cmp_word(M.x86.R_AX, (u16) srcval);
3588 M.x86.mode |= SYSMODE_SEGOVR_DS;
3603 M.x86.R_AX = aas_word(M.x86.R_AX);
3616 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3623 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3624 M.x86.R_EAX = inc_long(M.x86.R_EAX);
3627 M.x86.R_AX = inc_word(M.x86.R_AX);
3641 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3648 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3649 M.x86.R_ECX = inc_long(M.x86.R_ECX);
3652 M.x86.R_CX = inc_word(M.x86.R_CX);
3666 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3673 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3674 M.x86.R_EDX = inc_long(M.x86.R_EDX);
3677 M.x86.R_DX = inc_word(M.x86.R_DX);
3691 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3698 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3699 M.x86.R_EBX = inc_long(M.x86.R_EBX);
3702 M.x86.R_BX = inc_word(M.x86.R_BX);
3716 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3723 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3724 M.x86.R_ESP = inc_long(M.x86.R_ESP);
3727 M.x86.R_SP = inc_word(M.x86.R_SP);
3741 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3748 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3749 M.x86.R_EBP = inc_long(M.x86.R_EBP);
3752 M.x86.R_BP = inc_word(M.x86.R_BP);
3766 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3773 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3774 M.x86.R_ESI = inc_long(M.x86.R_ESI);
3777 M.x86.R_SI = inc_word(M.x86.R_SI);
3791 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3798 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3799 M.x86.R_EDI = inc_long(M.x86.R_EDI);
3802 M.x86.R_DI = inc_word(M.x86.R_DI);
3816 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3823 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3824 M.x86.R_EAX = dec_long(M.x86.R_EAX);
3827 M.x86.R_AX = dec_word(M.x86.R_AX);
3841 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3848 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3849 M.x86.R_ECX = dec_long(M.x86.R_ECX);
3852 M.x86.R_CX = dec_word(M.x86.R_CX);
3866 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3873 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3874 M.x86.R_EDX = dec_long(M.x86.R_EDX);
3877 M.x86.R_DX = dec_word(M.x86.R_DX);
3891 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3898 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3899 M.x86.R_EBX = dec_long(M.x86.R_EBX);
3902 M.x86.R_BX = dec_word(M.x86.R_BX);
3916 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3923 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3924 M.x86.R_ESP = dec_long(M.x86.R_ESP);
3927 M.x86.R_SP = dec_word(M.x86.R_SP);
3941 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3948 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3949 M.x86.R_EBP = dec_long(M.x86.R_EBP);
3952 M.x86.R_BP = dec_word(M.x86.R_BP);
3966 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3973 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3974 M.x86.R_ESI = dec_long(M.x86.R_ESI);
3977 M.x86.R_SI = dec_word(M.x86.R_SI);
3991 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3998 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
3999 M.x86.R_EDI = dec_long(M.x86.R_EDI);
4002 M.x86.R_DI = dec_word(M.x86.R_DI);
4016 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4023 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4024 push_long(M.x86.R_EAX);
4027 push_word(M.x86.R_AX);
4041 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4048 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4049 push_long(M.x86.R_ECX);
4052 push_word(M.x86.R_CX);
4066 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4073 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4074 push_long(M.x86.R_EDX);
4077 push_word(M.x86.R_DX);
4091 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4098 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4099 push_long(M.x86.R_EBX);
4102 push_word(M.x86.R_BX);
4116 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4127 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4128 push_long(M.x86.R_ESP);
4131 push_word((u16) (M.x86.R_SP));
4145 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4152 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4153 push_long(M.x86.R_EBP);
4156 push_word(M.x86.R_BP);
4170 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4177 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4178 push_long(M.x86.R_ESI);
4181 push_word(M.x86.R_SI);
4195 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4202 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4203 push_long(M.x86.R_EDI);
4206 push_word(M.x86.R_DI);
4220 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4227 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4228 M.x86.R_EAX = pop_long();
4231 M.x86.R_AX = pop_word();
4245 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4252 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4253 M.x86.R_ECX = pop_long();
4256 M.x86.R_CX = pop_word();
4270 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4277 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4278 M.x86.R_EDX = pop_long();
4281 M.x86.R_DX = pop_word();
4295 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4302 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4303 M.x86.R_EBX = pop_long();
4306 M.x86.R_BX = pop_word();
4320 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4327 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4328 M.x86.R_ESP = pop_long();
4331 M.x86.R_SP = pop_word();
4345 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4352 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4353 M.x86.R_EBP = pop_long();
4356 M.x86.R_BP = pop_word();
4370 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4377 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4378 M.x86.R_ESI = pop_long();
4381 M.x86.R_SI = pop_word();
4395 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4402 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4403 M.x86.R_EDI = pop_long();
4406 M.x86.R_DI = pop_word();
4420 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4427 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4428 u32 old_sp = M.x86.R_ESP;
4430 push_long(M.x86.R_EAX);
4431 push_long(M.x86.R_ECX);
4432 push_long(M.x86.R_EDX);
4433 push_long(M.x86.R_EBX);
4435 push_long(M.x86.R_EBP);
4436 push_long(M.x86.R_ESI);
4437 push_long(M.x86.R_EDI);
4440 u16 old_sp = M.x86.R_SP;
4442 push_word(M.x86.R_AX);
4443 push_word(M.x86.R_CX);
4444 push_word(M.x86.R_DX);
4445 push_word(M.x86.R_BX);
4447 push_word(M.x86.R_BP);
4448 push_word(M.x86.R_SI);
4449 push_word(M.x86.R_DI);
4463 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4470 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4471 M.x86.R_EDI = pop_long();
4472 M.x86.R_ESI = pop_long();
4473 M.x86.R_EBP = pop_long();
4474 M.x86.R_ESP += 4; /* skip ESP */
4475 M.x86.R_EBX = pop_long();
4476 M.x86.R_EDX = pop_long();
4477 M.x86.R_ECX = pop_long();
4478 M.x86.R_EAX = pop_long();
4481 M.x86.R_DI = pop_word();
4482 M.x86.R_SI = pop_word();
4483 M.x86.R_BP = pop_word();
4484 M.x86.R_SP += 2; /* skip SP */
4485 M.x86.R_BX = pop_word();
4486 M.x86.R_DX = pop_word();
4487 M.x86.R_CX = pop_word();
4488 M.x86.R_AX = pop_word();
4507 M.x86.mode |= SYSMODE_SEGOVR_FS;
4525 M.x86.mode |= SYSMODE_SEGOVR_GS;
4543 M.x86.mode |= SYSMODE_PREFIX_DATA;
4558 M.x86.mode |= SYSMODE_PREFIX_ADDR;
4573 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4581 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4606 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4657 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4708 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4759 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4821 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4847 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4896 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4945 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
4994 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5064 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5100 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5127 target = (u16) (M.x86.R_IP + (s16) offset);
5131 M.x86.R_IP = target;
5150 target = (u16) (M.x86.R_IP + (s16) offset);
5154 M.x86.R_IP = target;
5173 target = (u16) (M.x86.R_IP + (s16) offset);
5177 M.x86.R_IP = target;
5196 target = (u16) (M.x86.R_IP + (s16) offset);
5200 M.x86.R_IP = target;
5219 target = (u16) (M.x86.R_IP + (s16) offset);
5223 M.x86.R_IP = target;
5242 target = (u16) (M.x86.R_IP + (s16) offset);
5246 M.x86.R_IP = target;
5266 target = (u16) (M.x86.R_IP + (s16) offset);
5270 M.x86.R_IP = target;
5290 target = (u16) (M.x86.R_IP + (s16) offset);
5294 M.x86.R_IP = target;
5313 target = (u16) (M.x86.R_IP + (s16) offset);
5317 M.x86.R_IP = target;
5336 target = (u16) (M.x86.R_IP + (s16) offset);
5340 M.x86.R_IP = target;
5359 target = (u16) (M.x86.R_IP + (s16) offset);
5363 M.x86.R_IP = target;
5382 target = (u16) (M.x86.R_IP + (s16) offset);
5386 M.x86.R_IP = target;
5406 target = (u16) (M.x86.R_IP + (s16) offset);
5412 M.x86.R_IP = target;
5432 target = (u16) (M.x86.R_IP + (s16) offset);
5439 M.x86.R_IP = target;
5460 target = (u16) (M.x86.R_IP + (s16) offset);
5466 M.x86.R_IP = target;
5487 target = (u16) (M.x86.R_IP + (s16) offset);
5493 M.x86.R_IP = target;
5698 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5728 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5758 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
5788 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6014 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6042 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6070 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6098 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6199 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6225 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6251 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6277 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6305 Handles opcode 0x86
6386 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6418 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6450 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6482 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6581 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6603 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6625 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6647 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6744 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6770 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6796 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6822 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
6919 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
6939 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
6959 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
7067 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7087 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7107 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7127 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7173 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7180 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7181 tmp = M.x86.R_EAX;
7182 M.x86.R_EAX = M.x86.R_ECX;
7183 M.x86.R_ECX = tmp;
7186 tmp = M.x86.R_AX;
7187 M.x86.R_AX = M.x86.R_CX;
7188 M.x86.R_CX = (u16) tmp;
7204 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7211 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7212 tmp = M.x86.R_EAX;
7213 M.x86.R_EAX = M.x86.R_EDX;
7214 M.x86.R_EDX = tmp;
7217 tmp = M.x86.R_AX;
7218 M.x86.R_AX = M.x86.R_DX;
7219 M.x86.R_DX = (u16) tmp;
7235 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7242 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7243 tmp = M.x86.R_EAX;
7244 M.x86.R_EAX = M.x86.R_EBX;
7245 M.x86.R_EBX = tmp;
7248 tmp = M.x86.R_AX;
7249 M.x86.R_AX = M.x86.R_BX;
7250 M.x86.R_BX = (u16) tmp;
7266 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7273 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7274 tmp = M.x86.R_EAX;
7275 M.x86.R_EAX = M.x86.R_ESP;
7276 M.x86.R_ESP = tmp;
7279 tmp = M.x86.R_AX;
7280 M.x86.R_AX = M.x86.R_SP;
7281 M.x86.R_SP = (u16) tmp;
7297 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7304 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7305 tmp = M.x86.R_EAX;
7306 M.x86.R_EAX = M.x86.R_EBP;
7307 M.x86.R_EBP = tmp;
7310 tmp = M.x86.R_AX;
7311 M.x86.R_AX = M.x86.R_BP;
7312 M.x86.R_BP = (u16) tmp;
7328 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7335 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7336 tmp = M.x86.R_EAX;
7337 M.x86.R_EAX = M.x86.R_ESI;
7338 M.x86.R_ESI = tmp;
7341 tmp = M.x86.R_AX;
7342 M.x86.R_AX = M.x86.R_SI;
7343 M.x86.R_SI = (u16) tmp;
7359 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7366 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7367 tmp = M.x86.R_EAX;
7368 M.x86.R_EAX = M.x86.R_EDI;
7369 M.x86.R_EDI = tmp;
7372 tmp = M.x86.R_AX;
7373 M.x86.R_AX = M.x86.R_DI;
7374 M.x86.R_DI = (u16) tmp;
7388 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7395 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7396 if (M.x86.R_AX & 0x8000) {
7397 M.x86.R_EAX |= 0xffff0000;
7400 M.x86.R_EAX &= 0x0000ffff;
7404 if (M.x86.R_AL & 0x80) {
7405 M.x86.R_AH = 0xff;
7408 M.x86.R_AH = 0x0;
7423 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7431 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7432 if (M.x86.R_EAX & 0x80000000) {
7433 M.x86.R_EDX = 0xffffffff;
7436 M.x86.R_EDX = 0x0;
7440 if (M.x86.R_AX & 0x8000) {
7441 M.x86.R_DX = 0xffff;
7444 M.x86.R_DX = 0x0;
7462 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7472 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, farseg, faroff, "FAR ");
7481 push_word(M.x86.R_CS);
7482 M.x86.R_CS = farseg;
7483 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7484 push_long(M.x86.R_EIP);
7487 push_word(M.x86.R_IP);
7489 M.x86.R_EIP = faroff & 0xffff;
7519 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7528 flags = (M.x86.R_EFLG & F_MSK) | F_ALWAYS_ON;
7529 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7547 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7554 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7555 M.x86.R_EFLG = pop_long();
7558 M.x86.R_FLG = pop_word();
7575 M.x86.R_FLG &= 0xffffff00;
7577 M.x86.R_FLG |= M.x86.R_AH;
7592 M.x86.R_AH = (u8) (M.x86.R_FLG & 0xff);
7595 M.x86.R_AH |= 0x2;
7614 M.x86.R_AL = fetch_data_byte(offset);
7630 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7637 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7638 M.x86.R_EAX = fetch_data_long(offset);
7641 M.x86.R_AX = fetch_data_word(offset);
7661 store_data_byte(offset, M.x86.R_AL);
7677 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7684 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7685 store_data_long(offset, M.x86.R_EAX);
7688 store_data_word(offset, M.x86.R_AX);
7713 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7716 count = M.x86.R_CX;
7717 M.x86.R_CX = 0;
7718 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7721 val = fetch_data_byte(M.x86.R_SI);
7722 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, val);
7723 M.x86.R_SI += inc;
7724 M.x86.R_DI += inc;
7742 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7758 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7761 count = M.x86.R_CX;
7762 M.x86.R_CX = 0;
7763 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
7766 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7767 val = fetch_data_long(M.x86.R_SI);
7768 store_data_long_abs(M.x86.R_ES, M.x86.R_DI, val);
7771 val = fetch_data_word(M.x86.R_SI);
7772 store_data_word_abs(M.x86.R_ES, M.x86.R_DI, (u16) val);
7774 M.x86.R_SI += inc;
7775 M.x86.R_DI += inc;
7799 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7802 while (M.x86.R_CX != 0) {
7803 val1 = fetch_data_byte(M.x86.R_SI);
7804 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7806 M.x86.R_CX -= 1;
7807 M.x86.R_SI += inc;
7808 M.x86.R_DI += inc;
7812 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7814 else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7817 while (M.x86.R_CX != 0) {
7818 val1 = fetch_data_byte(M.x86.R_SI);
7819 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7821 M.x86.R_CX -= 1;
7822 M.x86.R_SI += inc;
7823 M.x86.R_DI += inc;
7827 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7830 val1 = fetch_data_byte(M.x86.R_SI);
7831 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
7833 M.x86.R_SI += inc;
7834 M.x86.R_DI += inc;
7851 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7866 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
7869 while (M.x86.R_CX != 0) {
7870 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7871 val1 = fetch_data_long(M.x86.R_SI);
7872 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7876 val1 = fetch_data_word(M.x86.R_SI);
7877 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7880 M.x86.R_CX -= 1;
7881 M.x86.R_SI += inc;
7882 M.x86.R_DI += inc;
7886 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
7888 else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
7891 while (M.x86.R_CX != 0) {
7892 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7893 val1 = fetch_data_long(M.x86.R_SI);
7894 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7898 val1 = fetch_data_word(M.x86.R_SI);
7899 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7902 M.x86.R_CX -= 1;
7903 M.x86.R_SI += inc;
7904 M.x86.R_DI += inc;
7908 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
7911 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7912 val1 = fetch_data_long(M.x86.R_SI);
7913 val2 = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
7917 val1 = fetch_data_word(M.x86.R_SI);
7918 val2 = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
7921 M.x86.R_SI += inc;
7922 M.x86.R_DI += inc;
7942 test_byte(M.x86.R_AL, (u8) imm);
7957 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7967 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
7968 test_long(M.x86.R_EAX, srcval);
7971 test_word(M.x86.R_AX, (u16) srcval);
7993 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
7996 while (M.x86.R_CX != 0) {
7997 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
7998 M.x86.R_CX -= 1;
7999 M.x86.R_DI += inc;
8001 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
8004 store_data_byte_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AL);
8005 M.x86.R_DI += inc;
8022 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8038 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
8041 count = M.x86.R_CX;
8042 M.x86.R_CX = 0;
8043 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
8046 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8047 store_data_long_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_EAX);
8050 store_data_word_abs(M.x86.R_ES, M.x86.R_DI, M.x86.R_AX);
8052 M.x86.R_DI += inc;
8074 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
8077 while (M.x86.R_CX != 0) {
8078 M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
8079 M.x86.R_CX -= 1;
8080 M.x86.R_SI += inc;
8082 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
8085 M.x86.R_AL = fetch_data_byte(M.x86.R_SI);
8086 M.x86.R_SI += inc;
8103 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8119 if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {
8122 count = M.x86.R_CX;
8123 M.x86.R_CX = 0;
8124 M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);
8127 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8128 M.x86.R_EAX = fetch_data_long(M.x86.R_SI);
8131 M.x86.R_AX = fetch_data_word(M.x86.R_SI);
8133 M.x86.R_SI += inc;
8156 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
8159 while (M.x86.R_CX != 0) {
8160 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
8161 cmp_byte(M.x86.R_AL, val2);
8162 M.x86.R_CX -= 1;
8163 M.x86.R_DI += inc;
8167 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
8169 else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
8172 while (M.x86.R_CX != 0) {
8173 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
8174 cmp_byte(M.x86.R_AL, val2);
8175 M.x86.R_CX -= 1;
8176 M.x86.R_DI += inc;
8180 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
8183 val2 = fetch_data_byte_abs(M.x86.R_ES, M.x86.R_DI);
8184 cmp_byte(M.x86.R_AL, val2);
8185 M.x86.R_DI += inc;
8202 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8217 if (M.x86.mode & SYSMODE_PREFIX_REPE) {
8220 while (M.x86.R_CX != 0) {
8221 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8222 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
8223 cmp_long(M.x86.R_EAX, val);
8226 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
8227 cmp_word(M.x86.R_AX, (u16) val);
8229 M.x86.R_CX -= 1;
8230 M.x86.R_DI += inc;
8234 M.x86.mode &= ~SYSMODE_PREFIX_REPE;
8236 else if (M.x86.mode & SYSMODE_PREFIX_REPNE) {
8239 while (M.x86.R_CX != 0) {
8240 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8241 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
8242 cmp_long(M.x86.R_EAX, val);
8245 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
8246 cmp_word(M.x86.R_AX, (u16) val);
8248 M.x86.R_CX -= 1;
8249 M.x86.R_DI += inc;
8253 M.x86.mode &= ~SYSMODE_PREFIX_REPNE;
8256 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8257 val = fetch_data_long_abs(M.x86.R_ES, M.x86.R_DI);
8258 cmp_long(M.x86.R_EAX, val);
8261 val = fetch_data_word_abs(M.x86.R_ES, M.x86.R_DI);
8262 cmp_word(M.x86.R_AX, (u16) val);
8264 M.x86.R_DI += inc;
8284 M.x86.R_AL = imm;
8303 M.x86.R_CL = imm;
8322 M.x86.R_DL = imm;
8341 M.x86.R_BL = imm;
8360 M.x86.R_AH = imm;
8379 M.x86.R_CH = imm;
8398 M.x86.R_DH = imm;
8417 M.x86.R_BH = imm;
8432 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8442 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8443 M.x86.R_EAX = srcval;
8446 M.x86.R_AX = (u16) srcval;
8462 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8472 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8473 M.x86.R_ECX = srcval;
8476 M.x86.R_CX = (u16) srcval;
8492 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8502 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8503 M.x86.R_EDX = srcval;
8506 M.x86.R_DX = (u16) srcval;
8522 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8532 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8533 M.x86.R_EBX = srcval;
8536 M.x86.R_BX = (u16) srcval;
8552 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8562 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8563 M.x86.R_ESP = srcval;
8566 M.x86.R_SP = (u16) srcval;
8582 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8592 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8593 M.x86.R_EBP = srcval;
8596 M.x86.R_BP = (u16) srcval;
8612 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8622 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8623 M.x86.R_ESI = srcval;
8626 M.x86.R_SI = (u16) srcval;
8642 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8652 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8653 M.x86.R_EDI = srcval;
8656 M.x86.R_DI = (u16) srcval;
8835 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8861 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8887 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8913 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8950 RETURN_TRACE("RET", M.x86.saved_cs, M.x86.saved_ip);
8952 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8953 M.x86.R_EIP = pop_long();
8955 M.x86.R_IP = pop_word();
8957 M.x86.R_SP += imm;
8971 RETURN_TRACE("RET", M.x86.saved_cs, M.x86.saved_ip);
8973 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
8974 M.x86.R_EIP = pop_long();
8976 M.x86.R_IP = pop_word();
9004 M.x86.R_ES = fetch_data_word(srcoffset + 2);
9013 M.x86.R_ES = fetch_data_word(srcoffset + 2);
9022 M.x86.R_ES = fetch_data_word(srcoffset + 2);
9054 M.x86.R_DS = fetch_data_word(srcoffset + 2);
9063 M.x86.R_DS = fetch_data_word(srcoffset + 2);
9072 M.x86.R_DS = fetch_data_word(srcoffset + 2);
9157 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9179 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9201 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9223 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9266 push_word(M.x86.R_BP);
9267 frame_pointer = M.x86.R_SP;
9270 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9271 M.x86.R_BP -= 4;
9272 push_long(fetch_data_long_abs(M.x86.R_SS, M.x86.R_BP));
9274 M.x86.R_BP -= 2;
9275 push_word(fetch_data_word_abs(M.x86.R_SS, M.x86.R_BP));
9280 M.x86.R_BP = frame_pointer;
9281 M.x86.R_SP = (u16) (M.x86.R_SP - local);
9296 M.x86.R_SP = M.x86.R_BP;
9297 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9298 M.x86.R_EBP = pop_long();
9300 M.x86.R_BP = pop_word();
9319 RETURN_TRACE("RETF", M.x86.saved_cs, M.x86.saved_ip);
9321 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9322 M.x86.R_EIP = pop_long();
9323 M.x86.R_CS = pop_long() & 0xffff;
9325 M.x86.R_IP = pop_word();
9326 M.x86.R_CS = pop_word();
9328 M.x86.R_SP += imm;
9342 RETURN_TRACE("RETF", M.x86.saved_cs, M.x86.saved_ip);
9344 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9345 M.x86.R_EIP = pop_long();
9346 M.x86.R_CS = pop_long() & 0xffff;
9348 M.x86.R_IP = pop_word();
9349 M.x86.R_CS = pop_word();
9369 push_word((u16) M.x86.R_FLG);
9372 push_word(M.x86.R_CS);
9373 M.x86.R_CS = mem_access_word(3 * 4 + 2);
9374 push_word(M.x86.R_IP);
9375 M.x86.R_IP = mem_access_word(3 * 4);
9399 push_word((u16) M.x86.R_FLG);
9402 push_word(M.x86.R_CS);
9403 M.x86.R_CS = mem_access_word(intnum * 4 + 2);
9404 push_word(M.x86.R_IP);
9405 M.x86.R_IP = mem_access_word(intnum * 4);
9426 push_word((u16) M.x86.R_FLG);
9429 push_word(M.x86.R_CS);
9430 M.x86.R_CS = mem_access_word(4 * 4 + 2);
9431 push_word(M.x86.R_IP);
9432 M.x86.R_IP = mem_access_word(4 * 4);
9451 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9452 M.x86.R_EIP = pop_long();
9453 M.x86.R_CS = pop_long() & 0xffff;
9454 M.x86.R_EFLG = (pop_long() & 0x257FD5) | (M.x86.R_EFLG & 0x1A0000);
9456 M.x86.R_IP = pop_word();
9457 M.x86.R_CS = pop_word();
9458 M.x86.R_FLG = pop_word();
9614 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9638 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9662 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9686 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9768 amt = M.x86.R_CL;
9863 amt = M.x86.R_CL;
9866 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9890 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9914 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9938 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
9981 M.x86.R_AX = aam_word(M.x86.R_AL);
10006 M.x86.R_AX = aad_word(M.x86.R_AX);
10025 addr = (u16) (M.x86.R_BX + (u8) M.x86.R_AL);
10026 M.x86.R_AL = fetch_data_byte(addr);
10045 ip += (s16) M.x86.R_IP;
10048 M.x86.R_CX -= 1;
10049 if (M.x86.R_CX != 0 && !ACCESS_FLAG(F_ZF)) /* CX != 0 and !ZF */
10050 M.x86.R_IP = ip;
10067 ip += (s16) M.x86.R_IP;
10070 M.x86.R_CX -= 1;
10071 if (M.x86.R_CX != 0 && ACCESS_FLAG(F_ZF)) /* CX != 0 and ZF */
10072 M.x86.R_IP = ip;
10089 ip += (s16) M.x86.R_IP;
10092 M.x86.R_CX -= 1;
10093 if (M.x86.R_CX != 0)
10094 M.x86.R_IP = ip;
10113 target = (u16) (M.x86.R_IP + offset);
10116 if (M.x86.R_CX == 0)
10117 M.x86.R_IP = target;
10136 M.x86.R_AL = (*sys_inb) (port);
10153 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10160 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10161 M.x86.R_EAX = (*sys_inl) (port);
10164 M.x86.R_AX = (*sys_inw) (port);
10184 (*sys_outb) (port, M.x86.R_AL);
10201 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10208 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10209 (*sys_outl) (port, M.x86.R_EAX);
10212 (*sys_outw) (port, M.x86.R_AX);
10230 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10232 ip32 += (s16) M.x86.R_IP; /* CHECK SIGN */
10234 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip32, "");
10238 ip16 += (s16) M.x86.R_IP; /* CHECK SIGN */
10240 CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip16, "");
10243 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10244 push_long(M.x86.R_EIP);
10245 M.x86.R_EIP = ip32 & 0xffff;
10248 push_word(M.x86.R_IP);
10249 M.x86.R_EIP = ip16;
10266 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10268 ip += (u32) M.x86.R_EIP;
10271 M.x86.R_EIP = (u32) ip;
10275 ip += (s16) M.x86.R_IP;
10278 M.x86.R_IP = (u16) ip;
10296 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10306 M.x86.R_EIP = ip & 0xffff;
10307 M.x86.R_CS = cs;
10325 target = (u16) (M.x86.R_IP + offset);
10328 M.x86.R_IP = target;
10343 M.x86.R_AL = (*sys_inb) (M.x86.R_DX);
10356 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10363 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10364 M.x86.R_EAX = (*sys_inl) (M.x86.R_DX);
10367 M.x86.R_AX = (*sys_inw) (M.x86.R_DX);
10383 (*sys_outb) (M.x86.R_DX, M.x86.R_AL);
10396 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10403 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10404 (*sys_outl) (M.x86.R_DX, M.x86.R_EAX);
10407 (*sys_outw) (M.x86.R_DX, M.x86.R_AX);
10439 M.x86.mode |= SYSMODE_PREFIX_REPNE;
10454 M.x86.mode |= SYSMODE_PREFIX_REPE;
10793 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10823 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10847 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10871 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10893 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10915 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10937 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10963 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
10993 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11017 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11041 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11063 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11085 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11107 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11133 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11163 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11187 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11211 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11233 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11255 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11277 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11303 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11333 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11353 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11373 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11393 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11413 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11433 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11697 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11705 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11740 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11758 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11776 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11779 push_long(M.x86.R_EIP);
11780 M.x86.R_EIP = destval;
11784 push_word(M.x86.R_IP);
11785 M.x86.R_IP = destval;
11789 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11793 push_long(M.x86.R_CS);
11794 M.x86.R_CS = destval2;
11795 push_long(M.x86.R_EIP);
11796 M.x86.R_EIP = destval;
11801 push_word(M.x86.R_CS);
11802 M.x86.R_CS = destval2;
11803 push_word(M.x86.R_IP);
11804 M.x86.R_IP = destval;
11810 M.x86.R_IP = destval;
11816 M.x86.R_IP = destval;
11817 M.x86.R_CS = destval2;
11820 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11842 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11860 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11878 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11881 push_long(M.x86.R_EIP);
11882 M.x86.R_EIP = destval;
11886 push_word(M.x86.R_IP);
11887 M.x86.R_IP = destval;
11891 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11895 push_long(M.x86.R_CS);
11896 M.x86.R_CS = destval2;
11897 push_long(M.x86.R_EIP);
11898 M.x86.R_EIP = destval;
11903 push_word(M.x86.R_CS);
11904 M.x86.R_CS = destval2;
11905 push_word(M.x86.R_IP);
11906 M.x86.R_IP = destval;
11912 M.x86.R_IP = destval;
11918 M.x86.R_IP = destval;
11919 M.x86.R_CS = destval2;
11922 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11944 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11962 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11980 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11983 push_long(M.x86.R_EIP);
11984 M.x86.R_EIP = destval;
11988 push_word(M.x86.R_IP);
11989 M.x86.R_IP = destval;
11993 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
11997 push_long(M.x86.R_CS);
11998 M.x86.R_CS = destval2;
11999 push_long(M.x86.R_EIP);
12000 M.x86.R_EIP = destval;
12005 push_word(M.x86.R_CS);
12006 M.x86.R_CS = destval2;
12007 push_word(M.x86.R_IP);
12008 M.x86.R_IP = destval;
12014 M.x86.R_IP = destval;
12020 M.x86.R_IP = destval;
12021 M.x86.R_CS = destval2;
12024 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
12044 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
12062 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
12080 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
12084 push_long(M.x86.R_EIP);
12085 M.x86.R_EIP = *destreg;
12090 push_word(M.x86.R_IP);
12091 M.x86.R_IP = *destreg;
12104 M.x86.R_IP = (u16) (*destreg);
12112 if (M.x86.mode & SYSMODE_PREFIX_DATA) {
12276 /* 0x86 */ x86emuOp_xchg_byte_RM_R,