
SYSENTER/SYSEXIT vs. SYSCALL/SYSRET by Andy Glew (2010) - yuhong
https://groups.google.com/forum/#!topic/comp.arch/CjDs4MJCBow%5B1-25%5D
======
yuhong
To add to this: the original 32-bit SYSCALL/SYSRET in AMD K6 just changed EIP
and cleared a few flags too, and they "fixed" it for 64-bit by providing a
mask of flags to clear and adding SWAPGS:

[http://web.archive.org/web/20120813101603/http://www.x86-64....](http://web.archive.org/web/20120813101603/http://www.x86-64.org:80/pipermail/discuss/2000-October/001019.html)

[http://web.archive.org/web/20120615223202/http://www.x86-64....](http://web.archive.org/web/20120615223202/http://www.x86-64.org:80/pipermail/discuss/2000-October/001009.html)

When Intel copied SYSRET, they added a canonical address check which was a
mistake because the fault would occur on the user RSP.

