Fixed bug in sysenter/sysexit
authorKevin Klues <klueska@ros-dev.(none)>
Wed, 24 Mar 2010 07:18:22 +0000 (00:18 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:37 +0000 (17:35 -0700)
commit76ead83bc964c9087a0f701dead20dfe1becd801
treeb22a6c031152c75940c93e4e3af1ba2f15e6a554
parente791ed6f12fda4f9eee02c40d735e97ccd07a7cb
Fixed bug in sysenter/sysexit

Registers ecx and edx are (intentionally) clobbered by sysexit code.
However, the sysenter implementation does not assume this, leading
to incorrect code generation.  We now push them to the stack before
sysenter.

A better implementation would simply add them to the clobber list,
but the lack of GPRs in x86 made glibc compilation encounter register
allocation failures using this approach.
kern/arch/i686/ros/syscall.h