implement inline 5- and 6-argument syscalls for mipsn32 and mips64
[musl] / src / internal / i386 / syscall.s
index 083db1c..004ddfe 100644 (file)
@@ -1,19 +1,21 @@
 .global __syscall
+.hidden __syscall
+.type __syscall,@function
 __syscall:
-       pushl %ebx
-       pushl %esi
-       pushl %edi
-       pushl %ebp
-       movl 20(%esp),%eax
-       movl 24(%esp),%ebx
-       movl 28(%esp),%ecx
-       movl 32(%esp),%edx
-       movl 36(%esp),%esi
-       movl 40(%esp),%edi
-       movl 44(%esp),%ebp
-       int $128
-       popl %ebp
-       popl %edi
-       popl %esi
-       popl %ebx
+       push %ebx
+       push %esi
+       push %edi
+       push %ebp
+       mov 20(%esp),%eax
+       mov 24(%esp),%ebx
+       mov 28(%esp),%ecx
+       mov 32(%esp),%edx
+       mov 36(%esp),%esi
+       mov 40(%esp),%edi
+       mov 44(%esp),%ebp
+       call *%gs:16
+       pop %ebp
+       pop %edi
+       pop %esi
+       pop %ebx
        ret