fix incorrect TLS reloc macro names in x86_64 reloc.h
[musl] / arch / x86_64 / syscall_arch.h
1 #define __SYSCALL_LL_E(x) (x)
2 #define __SYSCALL_LL_O(x) (x)
3
4 #define __SYSCALL_SSLEN 8
5
6 static __inline long __syscall0(long n)
7 {
8         unsigned long ret;
9         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
10         return ret;
11 }
12
13 static __inline long __syscall1(long n, long a1)
14 {
15         unsigned long ret;
16         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
17         return ret;
18 }
19
20 static __inline long __syscall2(long n, long a1, long a2)
21 {
22         unsigned long ret;
23         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
24                                                   : "rcx", "r11", "memory");
25         return ret;
26 }
27
28 static __inline long __syscall3(long n, long a1, long a2, long a3)
29 {
30         unsigned long ret;
31         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
32                                                   "d"(a3) : "rcx", "r11", "memory");
33         return ret;
34 }
35
36 static __inline long __syscall4(long n, long a1, long a2, long a3, long a4)
37 {
38         unsigned long ret;
39         register long r10 __asm__("r10") = a4;
40         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
41                                                   "d"(a3), "r"(r10): "rcx", "r11", "memory");
42         return ret;
43 }
44
45 static __inline long __syscall5(long n, long a1, long a2, long a3, long a4, long a5)
46 {
47         unsigned long ret;
48         register long r10 __asm__("r10") = a4;
49         register long r8 __asm__("r8") = a5;
50         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
51                                                   "d"(a3), "r"(r10), "r"(r8) : "rcx", "r11", "memory");
52         return ret;
53 }
54
55 static __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
56 {
57         unsigned long ret;
58         register long r10 __asm__("r10") = a4;
59         register long r8 __asm__("r8") = a5;
60         register long r9 __asm__("r9") = a6;
61         __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
62                                                   "d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory");
63         return ret;
64 }