]> git.proxmox.com Git - rustc.git/blob - vendor/rustix/src/imp/linux_raw/arch/outline/mips.s
New upstream version 1.66.0+dfsg1
[rustc.git] / vendor / rustix / src / imp / linux_raw / arch / outline / mips.s
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.abi32
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 negu $8, $2
32 jr $31
33 movn $2, $8, $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 negu $8, $2
54 jr $31
55 movn $2, $8, $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 $zero, $zero
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 negu $8, $2
96 jr $31
97 movn $2, $8, $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 negu $8, $2
118 jr $31
119 movn $2, $8, $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 lw $2, 16($sp)
138 syscall
139 negu $8, $2
140 jr $31
141 movn $2, $8, $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 lw $2, 20($sp)
160 syscall
161 negu $8, $2
162 jr $31
163 movn $2, $8, $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 lw $2, 24($sp)
182 syscall
183 negu $8, $2
184 jr $31
185 movn $2, $8, $7
186 .end rustix_syscall6_nr_last
187 .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last
188
189 .section .note.GNU-stack,"",@progbits
190
191 .section .text.rustix_syscall7_nr_last,"ax",@progbits
192 .p2align 2
193 .weak rustix_syscall7_nr_last
194 .hidden rustix_syscall7_nr_last
195 .type rustix_syscall7_nr_last, @function
196 .set nomips16
197 .set nomicromips
198 .ent rustix_syscall7_nr_last
199 rustix_syscall7_nr_last:
200 .frame $sp,0,$31
201 .mask 0x00000000,0
202 .fmask 0x00000000,0
203 .set noreorder
204 .set nomacro
205 lw $2, 28($sp)
206 syscall
207 negu $8, $2
208 jr $31
209 movn $2, $8, $7
210 .end rustix_syscall7_nr_last
211 .size rustix_syscall7_nr_last, .-rustix_syscall7_nr_last
212
213 .section .note.GNU-stack,"",@progbits