I have two simple questions regarding 32bit Linux system call.
in x86 Linux, there are 2 ways for calling system call.
First one is using int 0x80, another is sysenter.
I know the basic conceptual difference between these two (sysenter uses SYSENTER_MSR_EIP, SYSENTER_MSR_ESP registers, int 0x80 uses interrupt table, sysenter provides better performance, etc...)
My questions are...
Is there any functional difference between int 0x80 and sysenter from programmer's view? (i.e. calling convention, side effects to memory layout, or whatever...)
Is there any system call which changes other than EAX register after returning from system call?
thank you in advance.