]>
Commit | Line | Data |
---|---|---|
353b0b11 FG |
1 | # Assembly code for making mips64 syscalls. |
2 | # | |
3 | # mips64 syscall argument register ordering is the same as the mips64 | |
4 | # userspace argument register ordering except that the syscall number | |
5 | # (nr) is passed in v0. | |
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 v0. | |
9 | ||
10 | .file "mips.s" | |
11 | .section .mdebug.abi64 | |
12 | .previous | |
13 | .abicalls | |
14 | ||
15 | .section .text.rustix_syscall0_nr_last,"ax",@progbits | |
16 | .p2align 2 | |
17 | .weak rustix_syscall0_nr_last | |
18 | .hidden rustix_syscall0_nr_last | |
19 | .type rustix_syscall0_nr_last, @function | |
20 | .set nomips16 | |
21 | .set nomicromips | |
22 | .ent rustix_syscall0_nr_last | |
23 | rustix_syscall0_nr_last: | |
24 | .frame $sp,0,$31 | |
25 | .mask 0x00000000,0 | |
26 | .fmask 0x00000000,0 | |
27 | .set noreorder | |
28 | .set nomacro | |
29 | move $2, $4 | |
30 | syscall | |
31 | dnegu $12, $2 | |
32 | jr $31 | |
33 | movn $2, $12, $7 | |
34 | .end rustix_syscall0_nr_last | |
35 | .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last | |
36 | ||
37 | .section .text.rustix_syscall1_nr_last,"ax",@progbits | |
38 | .p2align 2 | |
39 | .weak rustix_syscall1_nr_last | |
40 | .hidden rustix_syscall1_nr_last | |
41 | .type rustix_syscall1_nr_last, @function | |
42 | .set nomips16 | |
43 | .set nomicromips | |
44 | .ent rustix_syscall1_nr_last | |
45 | rustix_syscall1_nr_last: | |
46 | .frame $sp,0,$31 | |
47 | .mask 0x00000000,0 | |
48 | .fmask 0x00000000,0 | |
49 | .set noreorder | |
50 | .set nomacro | |
51 | move $2, $5 | |
52 | syscall | |
53 | dnegu $12, $2 | |
54 | jr $31 | |
55 | movn $2, $12, $7 | |
56 | .end rustix_syscall1_nr_last | |
57 | .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last | |
58 | ||
59 | .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits | |
60 | .p2align 2 | |
61 | .weak rustix_syscall1_noreturn_nr_last | |
62 | .hidden rustix_syscall1_noreturn_nr_last | |
63 | .type rustix_syscall1_noreturn_nr_last, @function | |
64 | .set nomips16 | |
65 | .set nomicromips | |
66 | .ent rustix_syscall1_noreturn_nr_last | |
67 | rustix_syscall1_noreturn_nr_last: | |
68 | .frame $sp,0,$31 | |
69 | .mask 0x00000000,0 | |
70 | .fmask 0x00000000,0 | |
71 | .set noreorder | |
72 | .set nomacro | |
73 | move $2, $5 | |
74 | syscall | |
75 | teq $0, $0 | |
76 | .end rustix_syscall1_noreturn_nr_last | |
77 | .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last | |
78 | ||
79 | .section .text.rustix_syscall2_nr_last,"ax",@progbits | |
80 | .p2align 2 | |
81 | .weak rustix_syscall2_nr_last | |
82 | .hidden rustix_syscall2_nr_last | |
83 | .type rustix_syscall2_nr_last, @function | |
84 | .set nomips16 | |
85 | .set nomicromips | |
86 | .ent rustix_syscall2_nr_last | |
87 | rustix_syscall2_nr_last: | |
88 | .frame $sp,0,$31 | |
89 | .mask 0x00000000,0 | |
90 | .fmask 0x00000000,0 | |
91 | .set noreorder | |
92 | .set nomacro | |
93 | move $2, $6 | |
94 | syscall | |
95 | dnegu $12, $2 | |
96 | jr $31 | |
97 | movn $2, $12, $7 | |
98 | .end rustix_syscall2_nr_last | |
99 | .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last | |
100 | ||
101 | .section .text.rustix_syscall3_nr_last,"ax",@progbits | |
102 | .p2align 2 | |
103 | .weak rustix_syscall3_nr_last | |
104 | .hidden rustix_syscall3_nr_last | |
105 | .type rustix_syscall3_nr_last, @function | |
106 | .set nomips16 | |
107 | .set nomicromips | |
108 | .ent rustix_syscall3_nr_last | |
109 | rustix_syscall3_nr_last: | |
110 | .frame $sp,0,$31 | |
111 | .mask 0x00000000,0 | |
112 | .fmask 0x00000000,0 | |
113 | .set noreorder | |
114 | .set nomacro | |
115 | move $2, $7 | |
116 | syscall | |
117 | dnegu $12, $2 | |
118 | jr $31 | |
119 | movn $2, $12, $7 | |
120 | .end rustix_syscall3_nr_last | |
121 | .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last | |
122 | ||
123 | .section .text.rustix_syscall4_nr_last,"ax",@progbits | |
124 | .p2align 2 | |
125 | .weak rustix_syscall4_nr_last | |
126 | .hidden rustix_syscall4_nr_last | |
127 | .type rustix_syscall4_nr_last, @function | |
128 | .set nomips16 | |
129 | .set nomicromips | |
130 | .ent rustix_syscall4_nr_last | |
131 | rustix_syscall4_nr_last: | |
132 | .frame $sp,0,$31 | |
133 | .mask 0x00000000,0 | |
134 | .fmask 0x00000000,0 | |
135 | .set noreorder | |
136 | .set nomacro | |
137 | move $2, $8 | |
138 | syscall | |
139 | dnegu $12, $2 | |
140 | jr $31 | |
141 | movn $2, $12, $7 | |
142 | .end rustix_syscall4_nr_last | |
143 | .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last | |
144 | ||
145 | .section .text.rustix_syscall5_nr_last,"ax",@progbits | |
146 | .p2align 2 | |
147 | .weak rustix_syscall5_nr_last | |
148 | .hidden rustix_syscall5_nr_last | |
149 | .type rustix_syscall5_nr_last, @function | |
150 | .set nomips16 | |
151 | .set nomicromips | |
152 | .ent rustix_syscall5_nr_last | |
153 | rustix_syscall5_nr_last: | |
154 | .frame $sp,0,$31 | |
155 | .mask 0x00000000,0 | |
156 | .fmask 0x00000000,0 | |
157 | .set noreorder | |
158 | .set nomacro | |
159 | move $2, $9 | |
160 | syscall | |
161 | dnegu $12, $2 | |
162 | jr $31 | |
163 | movn $2, $12, $7 | |
164 | .end rustix_syscall5_nr_last | |
165 | .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last | |
166 | ||
167 | .section .text.rustix_syscall6_nr_last,"ax",@progbits | |
168 | .p2align 2 | |
169 | .weak rustix_syscall6_nr_last | |
170 | .hidden rustix_syscall6_nr_last | |
171 | .type rustix_syscall6_nr_last, @function | |
172 | .set nomips16 | |
173 | .set nomicromips | |
174 | .ent rustix_syscall6_nr_last | |
175 | rustix_syscall6_nr_last: | |
176 | .frame $sp,0,$31 | |
177 | .mask 0x00000000,0 | |
178 | .fmask 0x00000000,0 | |
179 | .set noreorder | |
180 | .set nomacro | |
181 | move $2, $10 | |
182 | syscall | |
183 | dnegu $12, $2 | |
184 | jr $31 | |
185 | movn $2, $12, $7 | |
186 | .end rustix_syscall6_nr_last | |
187 | .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last | |
188 | ||
189 | .section .note.GNU-stack,"",@progbits |