summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/__sys.x86-64.s13
-rw-r--r--src/_syscall.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/__sys.x86-64.s b/src/__sys.x86-64.s
index e69de29b..89e691db 100644
--- a/src/__sys.x86-64.s
+++ b/src/__sys.x86-64.s
@@ -0,0 +1,13 @@
+.global __syscall
+.type __syscall, %function
+__syscall:
+ mov %rdi, %rax
+ mov %rsi, %rdi
+ mov %rdx, %rsi
+ mov %rcx, %rdx
+ mov %r8, %r10
+ mov %r9, %r8
+ mov 8(%rsp), %r9
+ syscall
+ ret
+ .size __syscall,.-__syscall
diff --git a/src/_syscall.h b/src/_syscall.h
index aa97fadf..805e9d1e 100644
--- a/src/_syscall.h
+++ b/src/_syscall.h
@@ -6,6 +6,8 @@
#include "errno/ENOSYS.h"
#endif
+#define __syscall syscall
+
#define SYSCALL(_name, _type, _err, _a1, _a2, _a3, _a4, _a5, _a6) \
static int _scno = -2; \
if (_scno == -2) { \