]>
Commit | Line | Data |
---|---|---|
1 | // Assembly code for making x86-64 syscalls. | |
2 | // | |
3 | // x86-64 syscall argument register ordering is the same as the x86-64 | |
4 | // userspace argument register ordering except that a3 is passed in r10 | |
5 | // instead of rcx, and the syscall number (nr) is passed in eax. | |
6 | // | |
7 | // outline.rs takes care of reordering the nr argument to the end for us, | |
8 | // so we only need to move nr into eax and move rcx into r10 as needed. | |
9 | // | |
10 | // x32 is not yet supported. | |
11 | ||
12 | .file "x86_64.s" | |
13 | .intel_syntax noprefix | |
14 | ||
15 | .section .text.rustix_syscall0_nr_last,"ax",@progbits | |
16 | .p2align 4 | |
17 | .weak rustix_syscall0_nr_last | |
18 | .hidden rustix_syscall0_nr_last | |
19 | .type rustix_syscall0_nr_last, @function | |
20 | rustix_syscall0_nr_last: | |
21 | .cfi_startproc | |
22 | mov eax,edi | |
23 | syscall | |
24 | ret | |
25 | .cfi_endproc | |
26 | .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last | |
27 | ||
28 | .section .text.rustix_syscall1_nr_last,"ax",@progbits | |
29 | .p2align 4 | |
30 | .weak rustix_syscall1_nr_last | |
31 | .hidden rustix_syscall1_nr_last | |
32 | .type rustix_syscall1_nr_last, @function | |
33 | rustix_syscall1_nr_last: | |
34 | .cfi_startproc | |
35 | mov eax,esi | |
36 | syscall | |
37 | ret | |
38 | .cfi_endproc | |
39 | .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last | |
40 | ||
41 | .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits | |
42 | .p2align 4 | |
43 | .weak rustix_syscall1_noreturn_nr_last | |
44 | .hidden rustix_syscall1_noreturn_nr_last | |
45 | .type rustix_syscall1_noreturn_nr_last, @function | |
46 | rustix_syscall1_noreturn_nr_last: | |
47 | .cfi_startproc | |
48 | mov eax,esi | |
49 | syscall | |
50 | ud2 | |
51 | .cfi_endproc | |
52 | .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last | |
53 | ||
54 | .section .text.rustix_syscall2_nr_last,"ax",@progbits | |
55 | .p2align 4 | |
56 | .weak rustix_syscall2_nr_last | |
57 | .hidden rustix_syscall2_nr_last | |
58 | .type rustix_syscall2_nr_last, @function | |
59 | rustix_syscall2_nr_last: | |
60 | .cfi_startproc | |
61 | mov eax,edx | |
62 | syscall | |
63 | ret | |
64 | .cfi_endproc | |
65 | .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last | |
66 | ||
67 | .section .text.rustix_syscall3_nr_last,"ax",@progbits | |
68 | .p2align 4 | |
69 | .weak rustix_syscall3_nr_last | |
70 | .hidden rustix_syscall3_nr_last | |
71 | .type rustix_syscall3_nr_last, @function | |
72 | rustix_syscall3_nr_last: | |
73 | .cfi_startproc | |
74 | mov eax,ecx | |
75 | syscall | |
76 | ret | |
77 | .cfi_endproc | |
78 | .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last | |
79 | ||
80 | .section .text.rustix_syscall4_nr_last,"ax",@progbits | |
81 | .p2align 4 | |
82 | .weak rustix_syscall4_nr_last | |
83 | .hidden rustix_syscall4_nr_last | |
84 | .type rustix_syscall4_nr_last, @function | |
85 | rustix_syscall4_nr_last: | |
86 | .cfi_startproc | |
87 | mov eax,r8d | |
88 | mov r10,rcx | |
89 | syscall | |
90 | ret | |
91 | .cfi_endproc | |
92 | .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last | |
93 | ||
94 | .section .text.rustix_syscall5_nr_last,"ax",@progbits | |
95 | .p2align 4 | |
96 | .weak rustix_syscall5_nr_last | |
97 | .hidden rustix_syscall5_nr_last | |
98 | .type rustix_syscall5_nr_last, @function | |
99 | rustix_syscall5_nr_last: | |
100 | .cfi_startproc | |
101 | mov eax,r9d | |
102 | mov r10,rcx | |
103 | syscall | |
104 | ret | |
105 | .cfi_endproc | |
106 | .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last | |
107 | ||
108 | .section .text.rustix_syscall6_nr_last,"ax",@progbits | |
109 | .p2align 4 | |
110 | .weak rustix_syscall6_nr_last | |
111 | .hidden rustix_syscall6_nr_last | |
112 | .type rustix_syscall6_nr_last, @function | |
113 | rustix_syscall6_nr_last: | |
114 | .cfi_startproc | |
115 | mov eax,DWORD PTR [rsp+0x8] | |
116 | mov r10,rcx | |
117 | syscall | |
118 | ret | |
119 | .cfi_endproc | |
120 | .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last | |
121 | ||
122 | .section .note.GNU-stack,"",@progbits |