Index: fusl/src/internal/i386/syscall.s |
diff --git a/fusl/src/internal/i386/syscall.s b/fusl/src/internal/i386/syscall.s |
deleted file mode 100644 |
index 0ebf221842159ad2aeda5abc8753f9340abf1014..0000000000000000000000000000000000000000 |
--- a/fusl/src/internal/i386/syscall.s |
+++ /dev/null |
@@ -1,78 +0,0 @@ |
-.hidden __sysinfo |
- |
-# The calling convention for __vsyscall has the syscall number |
-# and 5 args arriving as: eax, edx, ecx, edi, esi, 4(%esp). |
-# This ensures that the inline asm in the C code never has to touch |
-# ebx or ebp (which are unavailable in PIC and frame-pointer-using |
-# code, respectively), and optimizes for size/simplicity in the caller. |
- |
-.global __vsyscall |
-.hidden __vsyscall |
-.type __vsyscall,@function |
-__vsyscall: |
- push %edi |
- push %ebx |
- mov %edx,%ebx |
- mov %edi,%edx |
- mov 12(%esp),%edi |
- push %eax |
- call 1f |
-2: mov %ebx,%edx |
- pop %ebx |
- pop %ebx |
- pop %edi |
- ret |
- |
-1: mov (%esp),%eax |
- add $[__sysinfo-2b],%eax |
- mov (%eax),%eax |
- test %eax,%eax |
- jz 1f |
- push %eax |
- mov 8(%esp),%eax |
- ret # tail call to kernel vsyscall entry |
-1: mov 4(%esp),%eax |
- int $128 |
- ret |
- |
-# The __vsyscall6 entry point is used only for 6-argument syscalls. |
-# Instead of passing the 5th argument on the stack, a pointer to the |
-# 5th and 6th arguments is passed. This is ugly, but there are no |
-# register constraints the inline asm could use that would make it |
-# possible to pass two arguments on the stack. |
- |
-.global __vsyscall6 |
-.hidden __vsyscall6 |
-.type __vsyscall6,@function |
-__vsyscall6: |
- push %ebp |
- push %eax |
- mov 12(%esp), %ebp |
- mov (%ebp), %eax |
- mov 4(%ebp), %ebp |
- push %eax |
- mov 4(%esp),%eax |
- call __vsyscall |
- pop %ebp |
- pop %ebp |
- pop %ebp |
- ret |
- |
-.global __syscall |
-.hidden __syscall |
-.type __syscall,@function |
-__syscall: |
- lea 24(%esp),%eax |
- push %esi |
- push %edi |
- push %eax |
- mov 16(%esp),%eax |
- mov 20(%esp),%edx |
- mov 24(%esp),%ecx |
- mov 28(%esp),%edi |
- mov 32(%esp),%esi |
- call __vsyscall6 |
- pop %edi |
- pop %edi |
- pop %esi |
- ret |