VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

What exceptions always set the EXT bit for all their faults on x86?
I have all exceptions after a second layer fault set it (for example #GP(0) throws #GP(0) throws #GP(1), as long as it's not double faulting).

Also, any instructions causing a fault themselves are counted as an interrupt cause (cause privilege level checks on the interrupt descriptor). Is that correct?

Edit: Or do none of the exceptions set EXT always?
Looking into information about the exceptions seems to imply that external interrupts do have it set by default for exceptions (from the (A)PIC)?
Are there other causes that always set EXT?
What ab0ut page faults throwing #GP for example? Do they have EXT set?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 1, by mr.cat

User metadata
Rank Member
Rank
Member

You might be able to find some answers in Intel's docs. In particular, take a look at their sw dev manual (Vol.3A) section 6.15, "Exception and Interrupt Reference".
Now I'm nowhere fluent with this stuff, but if I'm reading this right it says that Exception Error Code (of which the EXT bit is a part) is only used with INT10..INT14 and INT17.
Also, INT14 (Page Fault) uses a special format.