--- np2/i386c/ia32/instructions/ctrl_trans.c 2005/03/12 12:33:47 1.20 +++ np2/i386c/ia32/instructions/ctrl_trans.c 2008/01/25 18:02:18 1.23 @@ -1,4 +1,4 @@ -/* $Id: ctrl_trans.c,v 1.20 2005/03/12 12:33:47 monaka Exp $ */ +/* $Id: ctrl_trans.c,v 1.23 2008/01/25 18:02:18 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -48,7 +48,6 @@ JMP_Jb(void) CPU_WORKCLOCK(7); GET_PCBYTESD(ip); ADD_EIP(ip); - CPU_PREFETCH_CLEAR(); } void @@ -59,7 +58,6 @@ JMP_Jw(void) CPU_WORKCLOCK(7); GET_PCWORDS(ip); ADD_EIP(ip); - CPU_PREFETCH_CLEAR(); } void @@ -70,7 +68,6 @@ JMP_Jd(void) CPU_WORKCLOCK(7); GET_PCDWORD(ip); ADD_EIP(ip); - CPU_PREFETCH_CLEAR(); } void @@ -840,7 +837,6 @@ CALL_Aw(void) GET_PCWORDS(ip); PUSH0_16(CPU_IP); ADD_EIP(ip); - CPU_PREFETCH_CLEAR(); } void @@ -852,7 +848,6 @@ CALL_Ad(void) GET_PCDWORD(ip); PUSH0_32(CPU_EIP); ADD_EIP(ip); - CPU_PREFETCH_CLEAR(); } void @@ -1150,28 +1145,11 @@ IRET(void) UINT32 new_ip; UINT32 new_flags; UINT32 new_cs; -#if !defined(IA32_DONT_USE_SET_EFLAGS_FUNCTION) UINT32 mask; -#endif if (!CPU_STAT_PM) { /* Real mode */ CPU_WORKCLOCK(22); -#if defined(IA32_DONT_USE_SET_EFLAGS_FUNCTION) - if (!CPU_INST_OP32) { - POP0_16(new_ip); - POP0_16(new_cs); - POP0_16(new_flags); - CPU_FLAG = new_flags & ALL_FLAG; - } else { - POP0_32(new_ip); - POP0_32(new_cs); - POP0_32(new_flags); - CPU_EFLAG = (new_flags & (ALL_FLAG|RF_FLAG|AC_FLAG|ID_FLAG)) | (CPU_EFLAG & (VM_FLAG|VIF_FLAG|VIP_FLAG)); - } - CPU_OV = CPU_FLAG & O_FLAG; - CPU_TRAP = (CPU_FLAG & (I_FLAG|T_FLAG)) == (I_FLAG|T_FLAG); -#else mask = I_FLAG|IOPL_FLAG; if (!CPU_INST_OP32) { POP0_16(new_ip); @@ -1185,7 +1163,6 @@ IRET(void) } set_eflags(new_flags, mask); -#endif CPU_SET_SEGREG(CPU_CS_INDEX, (UINT16)new_cs); SET_EIP(new_ip); @@ -1312,7 +1289,7 @@ ENTER16_IwIb(void) level &= 0x1f; /* check stack room size */ - if (CPU_STAT_PM) { + if (CPU_STAT_PM && !CPU_STAT_VM86) { size = dimsize + (level + 1) * 2; if (!CPU_STAT_SS32) { sp = CPU_SP; @@ -1386,7 +1363,7 @@ ENTER32_IwIb(void) level &= 0x1f; /* check stack room size */ - if (CPU_STAT_PM) { + if (CPU_STAT_PM && !CPU_STAT_VM86) { size = dimsize + (level + 1) * 4; if (CPU_STAT_SS32) { sp = CPU_ESP; @@ -1454,7 +1431,7 @@ LEAVE(void) CPU_WORKCLOCK(4); - if (CPU_STAT_PM) { + if (CPU_STAT_PM && !CPU_STAT_VM86) { if (!CPU_INST_OP32) { s = 2; } else {