|
|
| version 1.8, 2004/02/06 16:49:51 | version 1.12, 2004/03/09 14:14:05 |
|---|---|
| Line 34 | Line 34 |
| I386CORE i386core; | I386CORE i386core; |
| BYTE *reg8_b20[0x100]; | UINT8 *reg8_b20[0x100]; |
| BYTE *reg8_b53[0x100]; | UINT8 *reg8_b53[0x100]; |
| WORD *reg16_b20[0x100]; | UINT16 *reg16_b20[0x100]; |
| WORD *reg16_b53[0x100]; | UINT16 *reg16_b53[0x100]; |
| DWORD *reg32_b20[0x100]; | UINT32 *reg32_b20[0x100]; |
| DWORD *reg32_b53[0x100]; | UINT32 *reg32_b53[0x100]; |
| void | void |
| Line 78 ia32_init(void) | Line 78 ia32_init(void) |
| } | } |
| resolve_init(); | resolve_init(); |
| #if defined(IA32_SUPPORT_TLB) | |
| tlb_init(); | |
| #endif | |
| #ifdef USE_FPU | #ifdef USE_FPU |
| fpu_init(); | fpu_init(); |
| #endif | #endif |
| Line 130 change_pm(BOOL onoff) | Line 127 change_pm(BOOL onoff) |
| CPU_STAT_SS32 = 0; | CPU_STAT_SS32 = 0; |
| CPU_SET_CPL(0); | CPU_SET_CPL(0); |
| CPU_STAT_PM = onoff; | CPU_STAT_PM = onoff; |
| tlb_flush(TRUE); | |
| } | } |
| void FASTCALL | void FASTCALL |
| Line 142 change_pg(BOOL onoff) | Line 141 change_pg(BOOL onoff) |
| VERBOSE(("Leaveing from Paging-Mode...")); | VERBOSE(("Leaveing from Paging-Mode...")); |
| } | } |
| CPU_STAT_PAGING = onoff; | CPU_STAT_PAGING = onoff; |
| tlb_flush(TRUE); | |
| } | } |
| void FASTCALL | void FASTCALL |
| Line 169 change_vm(BOOL onoff) | Line 170 change_vm(BOOL onoff) |
| * flags | * flags |
| */ | */ |
| static void | 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; | new_flags &= ALL_EFLAG; |
| mask &= ALL_EFLAG; | mask &= ALL_EFLAG; |
| Line 189 modify_eflags(DWORD new_flags, DWORD mas | Line 190 modify_eflags(DWORD new_flags, DWORD mas |
| } | } |
| void | void |
| set_flags(WORD new_flags, WORD mask) | set_flags(UINT16 new_flags, UINT16 mask) |
| { | { |
| mask &= I_FLAG|IOPL_FLAG; | mask &= I_FLAG|IOPL_FLAG; |
| mask |= (SZAPC_FLAG|T_FLAG|D_FLAG|O_FLAG|NT_FLAG); | mask |= (SZAPC_FLAG|T_FLAG|D_FLAG|O_FLAG|NT_FLAG); |
| modify_eflags(new_flags, 0xffff0000|mask); | modify_eflags(new_flags, mask); |
| } | } |
| void | 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; | mask &= I_FLAG|IOPL_FLAG|RF_FLAG|VM_FLAG|VIF_FLAG|VIP_FLAG; |