First post, by superfury
Apparently, the call gates and task gates can be used with the LSL instruction to get bytes 0,1 and the 4 bits of byte 6 combined with the granularity flag to get the limit of said descriptor.
But what happens when you use it with the 16/32-bit call gates and task gates? Will it still fetch said bytes, even though there's different data in them?
For a call gate that's offsetlow and the number of arguments combined with the 'granularity' flag in the middle of offsethigh(for 32-bits versions at least, not for 16-bit ones)?
And for a task gate that's reserved bits only?
Why is it legal to use LSL with such an descriptor?
Edit: Hmmm.... https://mudongliang.github.io/x86/html/file_m … x86_id_162.html says the gate descriptors are legal to use.
But https://www.felixcloutier.com/x86/lsl says they aren't legal, which makes more sense(as they have no limit fields)?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io