about summary refs log tree commit diff
path: root/src/internal/i386/syscall.s
Commit message (Collapse)AuthorAgeFilesLines
* fix clobber of edx in i386 vsyscall asmRich Felker2012-11-111-1/+2
| | | | | | | this function does not obey the normal calling convention; like a syscall instruction, it's expected not to clobber any registers except the return value. clobbering edx could break callers that were reusing the value cached in edx after the syscall returns.
* comment possibly-confusing i386 vsyscall asmRich Felker2012-10-111-1/+13
|
* i386 vsyscall support (vdso-provided sysenter/syscall instruction based)Rich Felker2012-10-111-16/+58
| | | | | | this doubles the performance of the fastest syscalls on the atom I tested it on; improvement is reportedly much more dramatic on worst-case cpus. cannot be used for cancellable syscalls.
* restore use of .type in asm, but use modern @function (vs %function)Rich Felker2011-06-141-0/+1
| | | | | | | | this seems to be necessary to make the linker accept the functions in a shared library (perhaps to generate PLT entries?) strictly speaking libc-internal asm should not need it. i might clean that up later.
* remove all .size and .type directives for functions from the asmRich Felker2011-06-131-2/+0
| | | | | these are useless and have caused problems for users trying to build with non-gnu tools like tcc's assembler.
* overhaul syscall interfaceRich Felker2011-03-191-0/+21
this commit shuffles around the location of syscall definitions so that we can make a syscall() library function with both SYS_* and __NR_* style syscall names available to user applications, provides the syscall() library function, and optimizes the code that performs the actual inline syscalls in the library itself. previously on i386 when built as PIC (shared library), syscalls were incurring bus lock (lock prefix) overhead at entry and exit, due to the way the ebx register was being loaded (xchg instruction with a memory operand). now the xchg takes place between two registers. further cleanup to arch/$(ARCH)/syscall.h is planned.