--- np2/i386c/ia32/ia32.c 2004/02/06 16:49:51 1.8 +++ np2/i386c/ia32/ia32.c 2004/03/09 14:14:05 1.12 @@ -1,4 +1,4 @@ -/* $Id: ia32.c,v 1.8 2004/02/06 16:49:51 monaka Exp $ */ +/* $Id: ia32.c,v 1.12 2004/03/09 14:14:05 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -34,12 +34,12 @@ I386CORE i386core; -BYTE *reg8_b20[0x100]; -BYTE *reg8_b53[0x100]; -WORD *reg16_b20[0x100]; -WORD *reg16_b53[0x100]; -DWORD *reg32_b20[0x100]; -DWORD *reg32_b53[0x100]; +UINT8 *reg8_b20[0x100]; +UINT8 *reg8_b53[0x100]; +UINT16 *reg16_b20[0x100]; +UINT16 *reg16_b53[0x100]; +UINT32 *reg32_b20[0x100]; +UINT32 *reg32_b53[0x100]; void @@ -78,9 +78,6 @@ ia32_init(void) } resolve_init(); -#if defined(IA32_SUPPORT_TLB) - tlb_init(); -#endif #ifdef USE_FPU fpu_init(); #endif @@ -130,6 +127,8 @@ change_pm(BOOL onoff) CPU_STAT_SS32 = 0; CPU_SET_CPL(0); CPU_STAT_PM = onoff; + + tlb_flush(TRUE); } void FASTCALL @@ -142,6 +141,8 @@ change_pg(BOOL onoff) VERBOSE(("Leaveing from Paging-Mode...")); } CPU_STAT_PAGING = onoff; + + tlb_flush(TRUE); } void FASTCALL @@ -169,9 +170,9 @@ change_vm(BOOL onoff) * flags */ static void -modify_eflags(DWORD new_flags, DWORD mask) +modify_eflags(UINT32 new_flags, UINT32 mask) { - DWORD orig = CPU_EFLAG; + UINT32 orig = CPU_EFLAG; new_flags &= ALL_EFLAG; mask &= ALL_EFLAG; @@ -189,16 +190,16 @@ modify_eflags(DWORD new_flags, DWORD mas } void -set_flags(WORD new_flags, WORD mask) +set_flags(UINT16 new_flags, UINT16 mask) { mask &= I_FLAG|IOPL_FLAG; mask |= (SZAPC_FLAG|T_FLAG|D_FLAG|O_FLAG|NT_FLAG); - modify_eflags(new_flags, 0xffff0000|mask); + modify_eflags(new_flags, mask); } void -set_eflags(DWORD new_flags, DWORD mask) +set_eflags(UINT32 new_flags, UINT32 mask) { mask &= I_FLAG|IOPL_FLAG|RF_FLAG|VM_FLAG|VIF_FLAG|VIP_FLAG;