Implemented selector limits on some instructions - fixes LBA2.
GPFs in real mode now work. Selectors correctly zeroed on far return to lower privilege.
This commit is contained in:
parent
624ef9ba3c
commit
cd2c3b47ed
16 changed files with 404 additions and 462 deletions
|
|
@ -4,7 +4,6 @@
|
|||
pmoderetf(0, stack_offset); \
|
||||
return 0; \
|
||||
} \
|
||||
if (ssegs) ss = oldss; \
|
||||
oxpc = pc; \
|
||||
if (stack32) \
|
||||
{ \
|
||||
|
|
@ -27,7 +26,6 @@
|
|||
pmoderetf(1, stack_offset); \
|
||||
return 0; \
|
||||
} \
|
||||
if (ssegs) ss = oldss; \
|
||||
oxpc = pc; \
|
||||
if (stack32) \
|
||||
{ \
|
||||
|
|
@ -75,7 +73,6 @@ static int opIRET_286(uint32_t fetchdat)
|
|||
x86gpf(NULL,0);
|
||||
return 0;
|
||||
}
|
||||
if (ssegs) ss = oldss;
|
||||
if (msw&1)
|
||||
{
|
||||
optype = IRET;
|
||||
|
|
@ -115,7 +112,6 @@ static int opIRET(uint32_t fetchdat)
|
|||
x86gpf(NULL,0);
|
||||
return 0;
|
||||
}
|
||||
if (ssegs) ss = oldss;
|
||||
if (msw&1)
|
||||
{
|
||||
optype = IRET;
|
||||
|
|
@ -155,7 +151,6 @@ static int opIRETD(uint32_t fetchdat)
|
|||
x86gpf(NULL,0);
|
||||
return 0;
|
||||
}
|
||||
if (ssegs) ss = oldss;
|
||||
if (msw & 1)
|
||||
{
|
||||
optype = IRET;
|
||||
|
|
|
|||
Loading…
Reference in a new issue