Loading a segment register in real mode no longer clears USE32.

CR3 no longer masks values written to it.
Real mode interrupts now take IDT base into account.
Fixes 'huge unreal' mode (flat assembler).
This commit is contained in:
TomW 2014-03-29 14:28:13 +00:00
commit e737d2fa45
4 changed files with 8 additions and 7 deletions

View file

@ -107,7 +107,7 @@ static int opMOV_CRx_r_a16(uint32_t fetchdat)
cr2 = regs[rm].l;
break;
case 3:
cr3 = regs[rm].l & ~0xfff;
cr3 = regs[rm].l;
flushmmucache();
break;
default:
@ -140,7 +140,7 @@ static int opMOV_CRx_r_a32(uint32_t fetchdat)
cr2 = regs[rm].l;
break;
case 3:
cr3 = regs[rm].l & ~0xfff;
cr3 = regs[rm].l;
flushmmucache();
break;
default: