authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-14 18:00:46-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-16 10:27:39-07:00
log76d04c1662e638854f84b6b32cca04ea1acd80c3
tree052a32db00bb994e5b4a8e3a95d9856668e8871b
parent87ce83d5a5854b63b7cef5c6209742ee1a524107

zig fmt


36 files changed, 311 insertions(+), 618 deletions(-)

lib/compiler_rt/aarch64_outline_atomics.zig+100-200
...@@ -28,8 +28,7 @@ fn __aarch64_cas1_relax() align(16) callconv(.naked) void {...@@ -28,8 +28,7 @@ fn __aarch64_cas1_relax() align(16) callconv(.naked) void {
28 \\ ret28 \\ ret
29 :29 :
30 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),30 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
31 : "w15", "w16", "w17", "memory"31 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
32 );
33 unreachable;32 unreachable;
34}33}
35fn __aarch64_swp1_relax() align(16) callconv(.naked) void {34fn __aarch64_swp1_relax() align(16) callconv(.naked) void {
...@@ -48,8 +47,7 @@ fn __aarch64_swp1_relax() align(16) callconv(.naked) void {...@@ -48,8 +47,7 @@ fn __aarch64_swp1_relax() align(16) callconv(.naked) void {
48 \\ ret47 \\ ret
49 :48 :
50 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),49 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
51 : "w15", "w16", "w17", "memory"50 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
52 );
53 unreachable;51 unreachable;
54}52}
55fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {53fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {
...@@ -69,8 +67,7 @@ fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {...@@ -69,8 +67,7 @@ fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {
69 \\ ret67 \\ ret
70 :68 :
71 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),69 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
72 : "w15", "w16", "w17", "memory"70 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
73 );
74 unreachable;71 unreachable;
75}72}
76fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {73fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {
...@@ -90,8 +87,7 @@ fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {...@@ -90,8 +87,7 @@ fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {
90 \\ ret87 \\ ret
91 :88 :
92 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),89 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
93 : "w15", "w16", "w17", "memory"90 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
94 );
95 unreachable;91 unreachable;
96}92}
97fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {93fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {
...@@ -111,8 +107,7 @@ fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {...@@ -111,8 +107,7 @@ fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {
111 \\ ret107 \\ ret
112 :108 :
113 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),109 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
114 : "w15", "w16", "w17", "memory"110 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
115 );
116 unreachable;111 unreachable;
117}112}
118fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {113fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {
...@@ -132,8 +127,7 @@ fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {...@@ -132,8 +127,7 @@ fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {
132 \\ ret127 \\ ret
133 :128 :
134 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),129 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
135 : "w15", "w16", "w17", "memory"130 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
136 );
137 unreachable;131 unreachable;
138}132}
139fn __aarch64_cas1_acq() align(16) callconv(.naked) void {133fn __aarch64_cas1_acq() align(16) callconv(.naked) void {
...@@ -154,8 +148,7 @@ fn __aarch64_cas1_acq() align(16) callconv(.naked) void {...@@ -154,8 +148,7 @@ fn __aarch64_cas1_acq() align(16) callconv(.naked) void {
154 \\ ret148 \\ ret
155 :149 :
156 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),150 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
157 : "w15", "w16", "w17", "memory"151 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
158 );
159 unreachable;152 unreachable;
160}153}
161fn __aarch64_swp1_acq() align(16) callconv(.naked) void {154fn __aarch64_swp1_acq() align(16) callconv(.naked) void {
...@@ -174,8 +167,7 @@ fn __aarch64_swp1_acq() align(16) callconv(.naked) void {...@@ -174,8 +167,7 @@ fn __aarch64_swp1_acq() align(16) callconv(.naked) void {
174 \\ ret167 \\ ret
175 :168 :
176 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),169 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
177 : "w15", "w16", "w17", "memory"170 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
178 );
179 unreachable;171 unreachable;
180}172}
181fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {173fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {
...@@ -195,8 +187,7 @@ fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {...@@ -195,8 +187,7 @@ fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {
195 \\ ret187 \\ ret
196 :188 :
197 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),189 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
198 : "w15", "w16", "w17", "memory"190 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
199 );
200 unreachable;191 unreachable;
201}192}
202fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {193fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {
...@@ -216,8 +207,7 @@ fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {...@@ -216,8 +207,7 @@ fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {
216 \\ ret207 \\ ret
217 :208 :
218 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),209 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
219 : "w15", "w16", "w17", "memory"210 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
220 );
221 unreachable;211 unreachable;
222}212}
223fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {213fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {
...@@ -237,8 +227,7 @@ fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {...@@ -237,8 +227,7 @@ fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {
237 \\ ret227 \\ ret
238 :228 :
239 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),229 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
240 : "w15", "w16", "w17", "memory"230 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
241 );
242 unreachable;231 unreachable;
243}232}
244fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {233fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {
...@@ -258,8 +247,7 @@ fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {...@@ -258,8 +247,7 @@ fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {
258 \\ ret247 \\ ret
259 :248 :
260 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),249 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
261 : "w15", "w16", "w17", "memory"250 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
262 );
263 unreachable;251 unreachable;
264}252}
265fn __aarch64_cas1_rel() align(16) callconv(.naked) void {253fn __aarch64_cas1_rel() align(16) callconv(.naked) void {
...@@ -280,8 +268,7 @@ fn __aarch64_cas1_rel() align(16) callconv(.naked) void {...@@ -280,8 +268,7 @@ fn __aarch64_cas1_rel() align(16) callconv(.naked) void {
280 \\ ret268 \\ ret
281 :269 :
282 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),270 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
283 : "w15", "w16", "w17", "memory"271 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
284 );
285 unreachable;272 unreachable;
286}273}
287fn __aarch64_swp1_rel() align(16) callconv(.naked) void {274fn __aarch64_swp1_rel() align(16) callconv(.naked) void {
...@@ -300,8 +287,7 @@ fn __aarch64_swp1_rel() align(16) callconv(.naked) void {...@@ -300,8 +287,7 @@ fn __aarch64_swp1_rel() align(16) callconv(.naked) void {
300 \\ ret287 \\ ret
301 :288 :
302 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),289 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
303 : "w15", "w16", "w17", "memory"290 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
304 );
305 unreachable;291 unreachable;
306}292}
307fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {293fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {
...@@ -321,8 +307,7 @@ fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {...@@ -321,8 +307,7 @@ fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {
321 \\ ret307 \\ ret
322 :308 :
323 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),309 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
324 : "w15", "w16", "w17", "memory"310 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
325 );
326 unreachable;311 unreachable;
327}312}
328fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {313fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {
...@@ -342,8 +327,7 @@ fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {...@@ -342,8 +327,7 @@ fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {
342 \\ ret327 \\ ret
343 :328 :
344 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),329 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
345 : "w15", "w16", "w17", "memory"330 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
346 );
347 unreachable;331 unreachable;
348}332}
349fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {333fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {
...@@ -363,8 +347,7 @@ fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {...@@ -363,8 +347,7 @@ fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {
363 \\ ret347 \\ ret
364 :348 :
365 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),349 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
366 : "w15", "w16", "w17", "memory"350 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
367 );
368 unreachable;351 unreachable;
369}352}
370fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {353fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {
...@@ -384,8 +367,7 @@ fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {...@@ -384,8 +367,7 @@ fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {
384 \\ ret367 \\ ret
385 :368 :
386 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),369 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
387 : "w15", "w16", "w17", "memory"370 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
388 );
389 unreachable;371 unreachable;
390}372}
391fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {373fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {
...@@ -406,8 +388,7 @@ fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {...@@ -406,8 +388,7 @@ fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {
406 \\ ret388 \\ ret
407 :389 :
408 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),390 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
409 : "w15", "w16", "w17", "memory"391 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
410 );
411 unreachable;392 unreachable;
412}393}
413fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {394fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {
...@@ -426,8 +407,7 @@ fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {...@@ -426,8 +407,7 @@ fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {
426 \\ ret407 \\ ret
427 :408 :
428 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),409 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
429 : "w15", "w16", "w17", "memory"410 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
430 );
431 unreachable;411 unreachable;
432}412}
433fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {413fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {
...@@ -447,8 +427,7 @@ fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {...@@ -447,8 +427,7 @@ fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {
447 \\ ret427 \\ ret
448 :428 :
449 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),429 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
450 : "w15", "w16", "w17", "memory"430 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
451 );
452 unreachable;431 unreachable;
453}432}
454fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {433fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {
...@@ -468,8 +447,7 @@ fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {...@@ -468,8 +447,7 @@ fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {
468 \\ ret447 \\ ret
469 :448 :
470 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),449 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
471 : "w15", "w16", "w17", "memory"450 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
472 );
473 unreachable;451 unreachable;
474}452}
475fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {453fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {
...@@ -489,8 +467,7 @@ fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {...@@ -489,8 +467,7 @@ fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {
489 \\ ret467 \\ ret
490 :468 :
491 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),469 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
492 : "w15", "w16", "w17", "memory"470 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
493 );
494 unreachable;471 unreachable;
495}472}
496fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {473fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {
...@@ -510,8 +487,7 @@ fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {...@@ -510,8 +487,7 @@ fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {
510 \\ ret487 \\ ret
511 :488 :
512 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),489 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
513 : "w15", "w16", "w17", "memory"490 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
514 );
515 unreachable;491 unreachable;
516}492}
517fn __aarch64_cas2_relax() align(16) callconv(.naked) void {493fn __aarch64_cas2_relax() align(16) callconv(.naked) void {
...@@ -532,8 +508,7 @@ fn __aarch64_cas2_relax() align(16) callconv(.naked) void {...@@ -532,8 +508,7 @@ fn __aarch64_cas2_relax() align(16) callconv(.naked) void {
532 \\ ret508 \\ ret
533 :509 :
534 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),510 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
535 : "w15", "w16", "w17", "memory"511 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
536 );
537 unreachable;512 unreachable;
538}513}
539fn __aarch64_swp2_relax() align(16) callconv(.naked) void {514fn __aarch64_swp2_relax() align(16) callconv(.naked) void {
...@@ -552,8 +527,7 @@ fn __aarch64_swp2_relax() align(16) callconv(.naked) void {...@@ -552,8 +527,7 @@ fn __aarch64_swp2_relax() align(16) callconv(.naked) void {
552 \\ ret527 \\ ret
553 :528 :
554 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),529 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
555 : "w15", "w16", "w17", "memory"530 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
556 );
557 unreachable;531 unreachable;
558}532}
559fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {533fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {
...@@ -573,8 +547,7 @@ fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {...@@ -573,8 +547,7 @@ fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {
573 \\ ret547 \\ ret
574 :548 :
575 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),549 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
576 : "w15", "w16", "w17", "memory"550 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
577 );
578 unreachable;551 unreachable;
579}552}
580fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {553fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {
...@@ -594,8 +567,7 @@ fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {...@@ -594,8 +567,7 @@ fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {
594 \\ ret567 \\ ret
595 :568 :
596 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),569 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
597 : "w15", "w16", "w17", "memory"570 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
598 );
599 unreachable;571 unreachable;
600}572}
601fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {573fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {
...@@ -615,8 +587,7 @@ fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {...@@ -615,8 +587,7 @@ fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {
615 \\ ret587 \\ ret
616 :588 :
617 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),589 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
618 : "w15", "w16", "w17", "memory"590 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
619 );
620 unreachable;591 unreachable;
621}592}
622fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {593fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {
...@@ -636,8 +607,7 @@ fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {...@@ -636,8 +607,7 @@ fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {
636 \\ ret607 \\ ret
637 :608 :
638 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),609 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
639 : "w15", "w16", "w17", "memory"610 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
640 );
641 unreachable;611 unreachable;
642}612}
643fn __aarch64_cas2_acq() align(16) callconv(.naked) void {613fn __aarch64_cas2_acq() align(16) callconv(.naked) void {
...@@ -658,8 +628,7 @@ fn __aarch64_cas2_acq() align(16) callconv(.naked) void {...@@ -658,8 +628,7 @@ fn __aarch64_cas2_acq() align(16) callconv(.naked) void {
658 \\ ret628 \\ ret
659 :629 :
660 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),630 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
661 : "w15", "w16", "w17", "memory"631 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
662 );
663 unreachable;632 unreachable;
664}633}
665fn __aarch64_swp2_acq() align(16) callconv(.naked) void {634fn __aarch64_swp2_acq() align(16) callconv(.naked) void {
...@@ -678,8 +647,7 @@ fn __aarch64_swp2_acq() align(16) callconv(.naked) void {...@@ -678,8 +647,7 @@ fn __aarch64_swp2_acq() align(16) callconv(.naked) void {
678 \\ ret647 \\ ret
679 :648 :
680 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),649 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
681 : "w15", "w16", "w17", "memory"650 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
682 );
683 unreachable;651 unreachable;
684}652}
685fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {653fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {
...@@ -699,8 +667,7 @@ fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {...@@ -699,8 +667,7 @@ fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {
699 \\ ret667 \\ ret
700 :668 :
701 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),669 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
702 : "w15", "w16", "w17", "memory"670 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
703 );
704 unreachable;671 unreachable;
705}672}
706fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {673fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {
...@@ -720,8 +687,7 @@ fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {...@@ -720,8 +687,7 @@ fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {
720 \\ ret687 \\ ret
721 :688 :
722 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),689 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
723 : "w15", "w16", "w17", "memory"690 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
724 );
725 unreachable;691 unreachable;
726}692}
727fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {693fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {
...@@ -741,8 +707,7 @@ fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {...@@ -741,8 +707,7 @@ fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {
741 \\ ret707 \\ ret
742 :708 :
743 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),709 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
744 : "w15", "w16", "w17", "memory"710 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
745 );
746 unreachable;711 unreachable;
747}712}
748fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {713fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {
...@@ -762,8 +727,7 @@ fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {...@@ -762,8 +727,7 @@ fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {
762 \\ ret727 \\ ret
763 :728 :
764 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),729 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
765 : "w15", "w16", "w17", "memory"730 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
766 );
767 unreachable;731 unreachable;
768}732}
769fn __aarch64_cas2_rel() align(16) callconv(.naked) void {733fn __aarch64_cas2_rel() align(16) callconv(.naked) void {
...@@ -784,8 +748,7 @@ fn __aarch64_cas2_rel() align(16) callconv(.naked) void {...@@ -784,8 +748,7 @@ fn __aarch64_cas2_rel() align(16) callconv(.naked) void {
784 \\ ret748 \\ ret
785 :749 :
786 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),750 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
787 : "w15", "w16", "w17", "memory"751 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
788 );
789 unreachable;752 unreachable;
790}753}
791fn __aarch64_swp2_rel() align(16) callconv(.naked) void {754fn __aarch64_swp2_rel() align(16) callconv(.naked) void {
...@@ -804,8 +767,7 @@ fn __aarch64_swp2_rel() align(16) callconv(.naked) void {...@@ -804,8 +767,7 @@ fn __aarch64_swp2_rel() align(16) callconv(.naked) void {
804 \\ ret767 \\ ret
805 :768 :
806 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),769 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
807 : "w15", "w16", "w17", "memory"770 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
808 );
809 unreachable;771 unreachable;
810}772}
811fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {773fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {
...@@ -825,8 +787,7 @@ fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {...@@ -825,8 +787,7 @@ fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {
825 \\ ret787 \\ ret
826 :788 :
827 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),789 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
828 : "w15", "w16", "w17", "memory"790 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
829 );
830 unreachable;791 unreachable;
831}792}
832fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {793fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {
...@@ -846,8 +807,7 @@ fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {...@@ -846,8 +807,7 @@ fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {
846 \\ ret807 \\ ret
847 :808 :
848 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),809 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
849 : "w15", "w16", "w17", "memory"810 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
850 );
851 unreachable;811 unreachable;
852}812}
853fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {813fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {
...@@ -867,8 +827,7 @@ fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {...@@ -867,8 +827,7 @@ fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {
867 \\ ret827 \\ ret
868 :828 :
869 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),829 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
870 : "w15", "w16", "w17", "memory"830 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
871 );
872 unreachable;831 unreachable;
873}832}
874fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {833fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {
...@@ -888,8 +847,7 @@ fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {...@@ -888,8 +847,7 @@ fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {
888 \\ ret847 \\ ret
889 :848 :
890 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),849 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
891 : "w15", "w16", "w17", "memory"850 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
892 );
893 unreachable;851 unreachable;
894}852}
895fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {853fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {
...@@ -910,8 +868,7 @@ fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {...@@ -910,8 +868,7 @@ fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {
910 \\ ret868 \\ ret
911 :869 :
912 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),870 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
913 : "w15", "w16", "w17", "memory"871 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
914 );
915 unreachable;872 unreachable;
916}873}
917fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {874fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {
...@@ -930,8 +887,7 @@ fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {...@@ -930,8 +887,7 @@ fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {
930 \\ ret887 \\ ret
931 :888 :
932 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),889 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
933 : "w15", "w16", "w17", "memory"890 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
934 );
935 unreachable;891 unreachable;
936}892}
937fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {893fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {
...@@ -951,8 +907,7 @@ fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {...@@ -951,8 +907,7 @@ fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {
951 \\ ret907 \\ ret
952 :908 :
953 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),909 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
954 : "w15", "w16", "w17", "memory"910 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
955 );
956 unreachable;911 unreachable;
957}912}
958fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {913fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {
...@@ -972,8 +927,7 @@ fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {...@@ -972,8 +927,7 @@ fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {
972 \\ ret927 \\ ret
973 :928 :
974 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),929 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
975 : "w15", "w16", "w17", "memory"930 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
976 );
977 unreachable;931 unreachable;
978}932}
979fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {933fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {
...@@ -993,8 +947,7 @@ fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {...@@ -993,8 +947,7 @@ fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {
993 \\ ret947 \\ ret
994 :948 :
995 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),949 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
996 : "w15", "w16", "w17", "memory"950 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
997 );
998 unreachable;951 unreachable;
999}952}
1000fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {953fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {
...@@ -1014,8 +967,7 @@ fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {...@@ -1014,8 +967,7 @@ fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {
1014 \\ ret967 \\ ret
1015 :968 :
1016 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),969 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1017 : "w15", "w16", "w17", "memory"970 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1018 );
1019 unreachable;971 unreachable;
1020}972}
1021fn __aarch64_cas4_relax() align(16) callconv(.naked) void {973fn __aarch64_cas4_relax() align(16) callconv(.naked) void {
...@@ -1036,8 +988,7 @@ fn __aarch64_cas4_relax() align(16) callconv(.naked) void {...@@ -1036,8 +988,7 @@ fn __aarch64_cas4_relax() align(16) callconv(.naked) void {
1036 \\ ret988 \\ ret
1037 :989 :
1038 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),990 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1039 : "w15", "w16", "w17", "memory"991 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1040 );
1041 unreachable;992 unreachable;
1042}993}
1043fn __aarch64_swp4_relax() align(16) callconv(.naked) void {994fn __aarch64_swp4_relax() align(16) callconv(.naked) void {
...@@ -1056,8 +1007,7 @@ fn __aarch64_swp4_relax() align(16) callconv(.naked) void {...@@ -1056,8 +1007,7 @@ fn __aarch64_swp4_relax() align(16) callconv(.naked) void {
1056 \\ ret1007 \\ ret
1057 :1008 :
1058 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1009 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1059 : "w15", "w16", "w17", "memory"1010 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1060 );
1061 unreachable;1011 unreachable;
1062}1012}
1063fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {1013fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {
...@@ -1077,8 +1027,7 @@ fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {...@@ -1077,8 +1027,7 @@ fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {
1077 \\ ret1027 \\ ret
1078 :1028 :
1079 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1029 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1080 : "w15", "w16", "w17", "memory"1030 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1081 );
1082 unreachable;1031 unreachable;
1083}1032}
1084fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {1033fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {
...@@ -1098,8 +1047,7 @@ fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {...@@ -1098,8 +1047,7 @@ fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {
1098 \\ ret1047 \\ ret
1099 :1048 :
1100 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1049 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1101 : "w15", "w16", "w17", "memory"1050 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1102 );
1103 unreachable;1051 unreachable;
1104}1052}
1105fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {1053fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {
...@@ -1119,8 +1067,7 @@ fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {...@@ -1119,8 +1067,7 @@ fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {
1119 \\ ret1067 \\ ret
1120 :1068 :
1121 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1069 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1122 : "w15", "w16", "w17", "memory"1070 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1123 );
1124 unreachable;1071 unreachable;
1125}1072}
1126fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {1073fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {
...@@ -1140,8 +1087,7 @@ fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {...@@ -1140,8 +1087,7 @@ fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {
1140 \\ ret1087 \\ ret
1141 :1088 :
1142 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1089 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1143 : "w15", "w16", "w17", "memory"1090 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1144 );
1145 unreachable;1091 unreachable;
1146}1092}
1147fn __aarch64_cas4_acq() align(16) callconv(.naked) void {1093fn __aarch64_cas4_acq() align(16) callconv(.naked) void {
...@@ -1162,8 +1108,7 @@ fn __aarch64_cas4_acq() align(16) callconv(.naked) void {...@@ -1162,8 +1108,7 @@ fn __aarch64_cas4_acq() align(16) callconv(.naked) void {
1162 \\ ret1108 \\ ret
1163 :1109 :
1164 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1110 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1165 : "w15", "w16", "w17", "memory"1111 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1166 );
1167 unreachable;1112 unreachable;
1168}1113}
1169fn __aarch64_swp4_acq() align(16) callconv(.naked) void {1114fn __aarch64_swp4_acq() align(16) callconv(.naked) void {
...@@ -1182,8 +1127,7 @@ fn __aarch64_swp4_acq() align(16) callconv(.naked) void {...@@ -1182,8 +1127,7 @@ fn __aarch64_swp4_acq() align(16) callconv(.naked) void {
1182 \\ ret1127 \\ ret
1183 :1128 :
1184 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1129 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1185 : "w15", "w16", "w17", "memory"1130 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1186 );
1187 unreachable;1131 unreachable;
1188}1132}
1189fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {1133fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {
...@@ -1203,8 +1147,7 @@ fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {...@@ -1203,8 +1147,7 @@ fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {
1203 \\ ret1147 \\ ret
1204 :1148 :
1205 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1149 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1206 : "w15", "w16", "w17", "memory"1150 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1207 );
1208 unreachable;1151 unreachable;
1209}1152}
1210fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {1153fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {
...@@ -1224,8 +1167,7 @@ fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {...@@ -1224,8 +1167,7 @@ fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {
1224 \\ ret1167 \\ ret
1225 :1168 :
1226 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1169 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1227 : "w15", "w16", "w17", "memory"1170 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1228 );
1229 unreachable;1171 unreachable;
1230}1172}
1231fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {1173fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {
...@@ -1245,8 +1187,7 @@ fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {...@@ -1245,8 +1187,7 @@ fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {
1245 \\ ret1187 \\ ret
1246 :1188 :
1247 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1189 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1248 : "w15", "w16", "w17", "memory"1190 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1249 );
1250 unreachable;1191 unreachable;
1251}1192}
1252fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {1193fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {
...@@ -1266,8 +1207,7 @@ fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {...@@ -1266,8 +1207,7 @@ fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {
1266 \\ ret1207 \\ ret
1267 :1208 :
1268 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1209 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1269 : "w15", "w16", "w17", "memory"1210 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1270 );
1271 unreachable;1211 unreachable;
1272}1212}
1273fn __aarch64_cas4_rel() align(16) callconv(.naked) void {1213fn __aarch64_cas4_rel() align(16) callconv(.naked) void {
...@@ -1288,8 +1228,7 @@ fn __aarch64_cas4_rel() align(16) callconv(.naked) void {...@@ -1288,8 +1228,7 @@ fn __aarch64_cas4_rel() align(16) callconv(.naked) void {
1288 \\ ret1228 \\ ret
1289 :1229 :
1290 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1230 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1291 : "w15", "w16", "w17", "memory"1231 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1292 );
1293 unreachable;1232 unreachable;
1294}1233}
1295fn __aarch64_swp4_rel() align(16) callconv(.naked) void {1234fn __aarch64_swp4_rel() align(16) callconv(.naked) void {
...@@ -1308,8 +1247,7 @@ fn __aarch64_swp4_rel() align(16) callconv(.naked) void {...@@ -1308,8 +1247,7 @@ fn __aarch64_swp4_rel() align(16) callconv(.naked) void {
1308 \\ ret1247 \\ ret
1309 :1248 :
1310 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1249 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1311 : "w15", "w16", "w17", "memory"1250 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1312 );
1313 unreachable;1251 unreachable;
1314}1252}
1315fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {1253fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {
...@@ -1329,8 +1267,7 @@ fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {...@@ -1329,8 +1267,7 @@ fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {
1329 \\ ret1267 \\ ret
1330 :1268 :
1331 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1269 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1332 : "w15", "w16", "w17", "memory"1270 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1333 );
1334 unreachable;1271 unreachable;
1335}1272}
1336fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {1273fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {
...@@ -1350,8 +1287,7 @@ fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {...@@ -1350,8 +1287,7 @@ fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {
1350 \\ ret1287 \\ ret
1351 :1288 :
1352 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1289 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1353 : "w15", "w16", "w17", "memory"1290 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1354 );
1355 unreachable;1291 unreachable;
1356}1292}
1357fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {1293fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {
...@@ -1371,8 +1307,7 @@ fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {...@@ -1371,8 +1307,7 @@ fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {
1371 \\ ret1307 \\ ret
1372 :1308 :
1373 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1309 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1374 : "w15", "w16", "w17", "memory"1310 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1375 );
1376 unreachable;1311 unreachable;
1377}1312}
1378fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {1313fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {
...@@ -1392,8 +1327,7 @@ fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {...@@ -1392,8 +1327,7 @@ fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {
1392 \\ ret1327 \\ ret
1393 :1328 :
1394 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1329 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1395 : "w15", "w16", "w17", "memory"1330 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1396 );
1397 unreachable;1331 unreachable;
1398}1332}
1399fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {1333fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {
...@@ -1414,8 +1348,7 @@ fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {...@@ -1414,8 +1348,7 @@ fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {
1414 \\ ret1348 \\ ret
1415 :1349 :
1416 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1350 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1417 : "w15", "w16", "w17", "memory"1351 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1418 );
1419 unreachable;1352 unreachable;
1420}1353}
1421fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {1354fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {
...@@ -1434,8 +1367,7 @@ fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {...@@ -1434,8 +1367,7 @@ fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {
1434 \\ ret1367 \\ ret
1435 :1368 :
1436 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1369 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1437 : "w15", "w16", "w17", "memory"1370 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1438 );
1439 unreachable;1371 unreachable;
1440}1372}
1441fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {1373fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {
...@@ -1455,8 +1387,7 @@ fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {...@@ -1455,8 +1387,7 @@ fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {
1455 \\ ret1387 \\ ret
1456 :1388 :
1457 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1389 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1458 : "w15", "w16", "w17", "memory"1390 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1459 );
1460 unreachable;1391 unreachable;
1461}1392}
1462fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {1393fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {
...@@ -1476,8 +1407,7 @@ fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {...@@ -1476,8 +1407,7 @@ fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {
1476 \\ ret1407 \\ ret
1477 :1408 :
1478 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1409 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1479 : "w15", "w16", "w17", "memory"1410 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1480 );
1481 unreachable;1411 unreachable;
1482}1412}
1483fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {1413fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {
...@@ -1497,8 +1427,7 @@ fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {...@@ -1497,8 +1427,7 @@ fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {
1497 \\ ret1427 \\ ret
1498 :1428 :
1499 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1429 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1500 : "w15", "w16", "w17", "memory"1430 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1501 );
1502 unreachable;1431 unreachable;
1503}1432}
1504fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {1433fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {
...@@ -1518,8 +1447,7 @@ fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {...@@ -1518,8 +1447,7 @@ fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {
1518 \\ ret1447 \\ ret
1519 :1448 :
1520 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1449 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1521 : "w15", "w16", "w17", "memory"1450 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1522 );
1523 unreachable;1451 unreachable;
1524}1452}
1525fn __aarch64_cas8_relax() align(16) callconv(.naked) void {1453fn __aarch64_cas8_relax() align(16) callconv(.naked) void {
...@@ -1540,8 +1468,7 @@ fn __aarch64_cas8_relax() align(16) callconv(.naked) void {...@@ -1540,8 +1468,7 @@ fn __aarch64_cas8_relax() align(16) callconv(.naked) void {
1540 \\ ret1468 \\ ret
1541 :1469 :
1542 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1470 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1543 : "w15", "w16", "w17", "memory"1471 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1544 );
1545 unreachable;1472 unreachable;
1546}1473}
1547fn __aarch64_swp8_relax() align(16) callconv(.naked) void {1474fn __aarch64_swp8_relax() align(16) callconv(.naked) void {
...@@ -1560,8 +1487,7 @@ fn __aarch64_swp8_relax() align(16) callconv(.naked) void {...@@ -1560,8 +1487,7 @@ fn __aarch64_swp8_relax() align(16) callconv(.naked) void {
1560 \\ ret1487 \\ ret
1561 :1488 :
1562 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1489 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1563 : "w15", "w16", "w17", "memory"1490 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1564 );
1565 unreachable;1491 unreachable;
1566}1492}
1567fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {1493fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {
...@@ -1581,8 +1507,7 @@ fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {...@@ -1581,8 +1507,7 @@ fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {
1581 \\ ret1507 \\ ret
1582 :1508 :
1583 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1509 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1584 : "w15", "w16", "w17", "memory"1510 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1585 );
1586 unreachable;1511 unreachable;
1587}1512}
1588fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {1513fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {
...@@ -1602,8 +1527,7 @@ fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {...@@ -1602,8 +1527,7 @@ fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {
1602 \\ ret1527 \\ ret
1603 :1528 :
1604 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1529 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1605 : "w15", "w16", "w17", "memory"1530 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1606 );
1607 unreachable;1531 unreachable;
1608}1532}
1609fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {1533fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {
...@@ -1623,8 +1547,7 @@ fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {...@@ -1623,8 +1547,7 @@ fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {
1623 \\ ret1547 \\ ret
1624 :1548 :
1625 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1549 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1626 : "w15", "w16", "w17", "memory"1550 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1627 );
1628 unreachable;1551 unreachable;
1629}1552}
1630fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {1553fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {
...@@ -1644,8 +1567,7 @@ fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {...@@ -1644,8 +1567,7 @@ fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {
1644 \\ ret1567 \\ ret
1645 :1568 :
1646 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1569 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1647 : "w15", "w16", "w17", "memory"1570 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1648 );
1649 unreachable;1571 unreachable;
1650}1572}
1651fn __aarch64_cas8_acq() align(16) callconv(.naked) void {1573fn __aarch64_cas8_acq() align(16) callconv(.naked) void {
...@@ -1666,8 +1588,7 @@ fn __aarch64_cas8_acq() align(16) callconv(.naked) void {...@@ -1666,8 +1588,7 @@ fn __aarch64_cas8_acq() align(16) callconv(.naked) void {
1666 \\ ret1588 \\ ret
1667 :1589 :
1668 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1590 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1669 : "w15", "w16", "w17", "memory"1591 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1670 );
1671 unreachable;1592 unreachable;
1672}1593}
1673fn __aarch64_swp8_acq() align(16) callconv(.naked) void {1594fn __aarch64_swp8_acq() align(16) callconv(.naked) void {
...@@ -1686,8 +1607,7 @@ fn __aarch64_swp8_acq() align(16) callconv(.naked) void {...@@ -1686,8 +1607,7 @@ fn __aarch64_swp8_acq() align(16) callconv(.naked) void {
1686 \\ ret1607 \\ ret
1687 :1608 :
1688 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1609 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1689 : "w15", "w16", "w17", "memory"1610 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1690 );
1691 unreachable;1611 unreachable;
1692}1612}
1693fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {1613fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {
...@@ -1707,8 +1627,7 @@ fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {...@@ -1707,8 +1627,7 @@ fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {
1707 \\ ret1627 \\ ret
1708 :1628 :
1709 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1629 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1710 : "w15", "w16", "w17", "memory"1630 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1711 );
1712 unreachable;1631 unreachable;
1713}1632}
1714fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {1633fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {
...@@ -1728,8 +1647,7 @@ fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {...@@ -1728,8 +1647,7 @@ fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {
1728 \\ ret1647 \\ ret
1729 :1648 :
1730 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1649 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1731 : "w15", "w16", "w17", "memory"1650 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1732 );
1733 unreachable;1651 unreachable;
1734}1652}
1735fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {1653fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {
...@@ -1749,8 +1667,7 @@ fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {...@@ -1749,8 +1667,7 @@ fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {
1749 \\ ret1667 \\ ret
1750 :1668 :
1751 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1669 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1752 : "w15", "w16", "w17", "memory"1670 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1753 );
1754 unreachable;1671 unreachable;
1755}1672}
1756fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {1673fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {
...@@ -1770,8 +1687,7 @@ fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {...@@ -1770,8 +1687,7 @@ fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {
1770 \\ ret1687 \\ ret
1771 :1688 :
1772 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1689 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1773 : "w15", "w16", "w17", "memory"1690 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1774 );
1775 unreachable;1691 unreachable;
1776}1692}
1777fn __aarch64_cas8_rel() align(16) callconv(.naked) void {1693fn __aarch64_cas8_rel() align(16) callconv(.naked) void {
...@@ -1792,8 +1708,7 @@ fn __aarch64_cas8_rel() align(16) callconv(.naked) void {...@@ -1792,8 +1708,7 @@ fn __aarch64_cas8_rel() align(16) callconv(.naked) void {
1792 \\ ret1708 \\ ret
1793 :1709 :
1794 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1710 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1795 : "w15", "w16", "w17", "memory"1711 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1796 );
1797 unreachable;1712 unreachable;
1798}1713}
1799fn __aarch64_swp8_rel() align(16) callconv(.naked) void {1714fn __aarch64_swp8_rel() align(16) callconv(.naked) void {
...@@ -1812,8 +1727,7 @@ fn __aarch64_swp8_rel() align(16) callconv(.naked) void {...@@ -1812,8 +1727,7 @@ fn __aarch64_swp8_rel() align(16) callconv(.naked) void {
1812 \\ ret1727 \\ ret
1813 :1728 :
1814 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1729 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1815 : "w15", "w16", "w17", "memory"1730 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1816 );
1817 unreachable;1731 unreachable;
1818}1732}
1819fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {1733fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {
...@@ -1833,8 +1747,7 @@ fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {...@@ -1833,8 +1747,7 @@ fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {
1833 \\ ret1747 \\ ret
1834 :1748 :
1835 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1749 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1836 : "w15", "w16", "w17", "memory"1750 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1837 );
1838 unreachable;1751 unreachable;
1839}1752}
1840fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {1753fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {
...@@ -1854,8 +1767,7 @@ fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {...@@ -1854,8 +1767,7 @@ fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {
1854 \\ ret1767 \\ ret
1855 :1768 :
1856 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1769 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1857 : "w15", "w16", "w17", "memory"1770 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1858 );
1859 unreachable;1771 unreachable;
1860}1772}
1861fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {1773fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {
...@@ -1875,8 +1787,7 @@ fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {...@@ -1875,8 +1787,7 @@ fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {
1875 \\ ret1787 \\ ret
1876 :1788 :
1877 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1789 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1878 : "w15", "w16", "w17", "memory"1790 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1879 );
1880 unreachable;1791 unreachable;
1881}1792}
1882fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {1793fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {
...@@ -1896,8 +1807,7 @@ fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {...@@ -1896,8 +1807,7 @@ fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {
1896 \\ ret1807 \\ ret
1897 :1808 :
1898 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1809 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1899 : "w15", "w16", "w17", "memory"1810 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1900 );
1901 unreachable;1811 unreachable;
1902}1812}
1903fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {1813fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {
...@@ -1918,8 +1828,7 @@ fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {...@@ -1918,8 +1828,7 @@ fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {
1918 \\ ret1828 \\ ret
1919 :1829 :
1920 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1830 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1921 : "w15", "w16", "w17", "memory"1831 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1922 );
1923 unreachable;1832 unreachable;
1924}1833}
1925fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {1834fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {
...@@ -1938,8 +1847,7 @@ fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {...@@ -1938,8 +1847,7 @@ fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {
1938 \\ ret1847 \\ ret
1939 :1848 :
1940 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1849 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1941 : "w15", "w16", "w17", "memory"1850 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1942 );
1943 unreachable;1851 unreachable;
1944}1852}
1945fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {1853fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {
...@@ -1959,8 +1867,7 @@ fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {...@@ -1959,8 +1867,7 @@ fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {
1959 \\ ret1867 \\ ret
1960 :1868 :
1961 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1869 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1962 : "w15", "w16", "w17", "memory"1870 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1963 );
1964 unreachable;1871 unreachable;
1965}1872}
1966fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {1873fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {
...@@ -1980,8 +1887,7 @@ fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {...@@ -1980,8 +1887,7 @@ fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {
1980 \\ ret1887 \\ ret
1981 :1888 :
1982 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1889 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
1983 : "w15", "w16", "w17", "memory"1890 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
1984 );
1985 unreachable;1891 unreachable;
1986}1892}
1987fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {1893fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {
...@@ -2001,8 +1907,7 @@ fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {...@@ -2001,8 +1907,7 @@ fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {
2001 \\ ret1907 \\ ret
2002 :1908 :
2003 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1909 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2004 : "w15", "w16", "w17", "memory"1910 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2005 );
2006 unreachable;1911 unreachable;
2007}1912}
2008fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {1913fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {
...@@ -2022,8 +1927,7 @@ fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {...@@ -2022,8 +1927,7 @@ fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {
2022 \\ ret1927 \\ ret
2023 :1928 :
2024 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1929 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2025 : "w15", "w16", "w17", "memory"1930 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2026 );
2027 unreachable;1931 unreachable;
2028}1932}
2029fn __aarch64_cas16_relax() align(16) callconv(.naked) void {1933fn __aarch64_cas16_relax() align(16) callconv(.naked) void {
...@@ -2046,8 +1950,7 @@ fn __aarch64_cas16_relax() align(16) callconv(.naked) void {...@@ -2046,8 +1950,7 @@ fn __aarch64_cas16_relax() align(16) callconv(.naked) void {
2046 \\ ret1950 \\ ret
2047 :1951 :
2048 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1952 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2049 : "w15", "w16", "w17", "memory"1953 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2050 );
2051 unreachable;1954 unreachable;
2052}1955}
2053fn __aarch64_cas16_acq() align(16) callconv(.naked) void {1956fn __aarch64_cas16_acq() align(16) callconv(.naked) void {
...@@ -2070,8 +1973,7 @@ fn __aarch64_cas16_acq() align(16) callconv(.naked) void {...@@ -2070,8 +1973,7 @@ fn __aarch64_cas16_acq() align(16) callconv(.naked) void {
2070 \\ ret1973 \\ ret
2071 :1974 :
2072 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1975 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2073 : "w15", "w16", "w17", "memory"1976 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2074 );
2075 unreachable;1977 unreachable;
2076}1978}
2077fn __aarch64_cas16_rel() align(16) callconv(.naked) void {1979fn __aarch64_cas16_rel() align(16) callconv(.naked) void {
...@@ -2094,8 +1996,7 @@ fn __aarch64_cas16_rel() align(16) callconv(.naked) void {...@@ -2094,8 +1996,7 @@ fn __aarch64_cas16_rel() align(16) callconv(.naked) void {
2094 \\ ret1996 \\ ret
2095 :1997 :
2096 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),1998 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2097 : "w15", "w16", "w17", "memory"1999 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2098 );
2099 unreachable;2000 unreachable;
2100}2001}
2101fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {2002fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {
...@@ -2118,8 +2019,7 @@ fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {...@@ -2118,8 +2019,7 @@ fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {
2118 \\ ret2019 \\ ret
2119 :2020 :
2120 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),2021 : [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
2121 : "w15", "w16", "w17", "memory"2022 : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
2122 );
2123 unreachable;2023 unreachable;
2124}2024}
21252025
lib/compiler_rt/arm.zig+4-8
...@@ -142,8 +142,7 @@ pub fn __aeabi_uidivmod() callconv(.naked) void {...@@ -142,8 +142,7 @@ pub fn __aeabi_uidivmod() callconv(.naked) void {
142 \\ pop {pc}142 \\ pop {pc}
143 :143 :
144 : [__udivmodsi4] "X" (&__udivmodsi4),144 : [__udivmodsi4] "X" (&__udivmodsi4),
145 : "memory"145 : .{ .memory = true });
146 );
147 unreachable;146 unreachable;
148}147}
149148
...@@ -162,8 +161,7 @@ pub fn __aeabi_uldivmod() callconv(.naked) void {...@@ -162,8 +161,7 @@ pub fn __aeabi_uldivmod() callconv(.naked) void {
162 \\ pop {r4, pc}161 \\ pop {r4, pc}
163 :162 :
164 : [__udivmoddi4] "X" (&__udivmoddi4),163 : [__udivmoddi4] "X" (&__udivmoddi4),
165 : "memory"164 : .{ .memory = true });
166 );
167 unreachable;165 unreachable;
168}166}
169167
...@@ -180,8 +178,7 @@ pub fn __aeabi_idivmod() callconv(.naked) void {...@@ -180,8 +178,7 @@ pub fn __aeabi_idivmod() callconv(.naked) void {
180 \\ pop {pc}178 \\ pop {pc}
181 :179 :
182 : [__divmodsi4] "X" (&__divmodsi4),180 : [__divmodsi4] "X" (&__divmodsi4),
183 : "memory"181 : .{ .memory = true });
184 );
185 unreachable;182 unreachable;
186}183}
187184
...@@ -200,8 +197,7 @@ pub fn __aeabi_ldivmod() callconv(.naked) void {...@@ -200,8 +197,7 @@ pub fn __aeabi_ldivmod() callconv(.naked) void {
200 \\ pop {r4, pc}197 \\ pop {r4, pc}
201 :198 :
202 : [__divmoddi4] "X" (&__divmoddi4),199 : [__divmoddi4] "X" (&__divmoddi4),
203 : "memory"200 : .{ .memory = true });
204 );
205 unreachable;201 unreachable;
206}202}
207203
lib/compiler_rt/atomics.zig+2-4
...@@ -71,8 +71,7 @@ const SpinlockTable = struct {...@@ -71,8 +71,7 @@ const SpinlockTable = struct {
71 break :flag asm volatile ("ldstub [%[addr]], %[flag]"71 break :flag asm volatile ("ldstub [%[addr]], %[flag]"
72 : [flag] "=r" (-> @TypeOf(self.v)),72 : [flag] "=r" (-> @TypeOf(self.v)),
73 : [addr] "r" (&self.v),73 : [addr] "r" (&self.v),
74 : "memory"74 : .{ .memory = true });
75 );
76 } else flag: {75 } else flag: {
77 break :flag @atomicRmw(@TypeOf(self.v), &self.v, .Xchg, .Locked, .acquire);76 break :flag @atomicRmw(@TypeOf(self.v), &self.v, .Xchg, .Locked, .acquire);
78 };77 };
...@@ -88,8 +87,7 @@ const SpinlockTable = struct {...@@ -88,8 +87,7 @@ const SpinlockTable = struct {
88 _ = asm volatile ("clrb [%[addr]]"87 _ = asm volatile ("clrb [%[addr]]"
89 :88 :
90 : [addr] "r" (&self.v),89 : [addr] "r" (&self.v),
91 : "memory"90 : .{ .memory = true });
92 );
93 } else {91 } else {
94 @atomicStore(@TypeOf(self.v), &self.v, .Unlocked, .release);92 @atomicStore(@TypeOf(self.v), &self.v, .Unlocked, .release);
95 }93 }
lib/compiler_rt/clear_cache.zig+1-2
...@@ -103,8 +103,7 @@ fn clear_cache(start: usize, end: usize) callconv(.c) void {...@@ -103,8 +103,7 @@ fn clear_cache(start: usize, end: usize) callconv(.c) void {
103 : [_] "{$2}" (165), // nr = SYS_sysarch103 : [_] "{$2}" (165), // nr = SYS_sysarch
104 [_] "{$4}" (0), // op = MIPS_CACHEFLUSH104 [_] "{$4}" (0), // op = MIPS_CACHEFLUSH
105 [_] "{$5}" (&cfa), // args = &cfa105 [_] "{$5}" (&cfa), // args = &cfa
106 : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"106 : .{ .@"$1" = true, .@"$2" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
107 );
108 exportIt();107 exportIt();
109 } else if (mips and os == .openbsd) {108 } else if (mips and os == .openbsd) {
110 // TODO109 // TODO
lib/std/Thread.zig+12-24
...@@ -1198,8 +1198,7 @@ const LinuxThreadImpl = struct {...@@ -1198,8 +1198,7 @@ const LinuxThreadImpl = struct {
1198 :1198 :
1199 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1199 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1200 [len] "r" (self.mapped.len),1200 [len] "r" (self.mapped.len),
1201 : "memory"1201 : .{ .memory = true }),
1202 ),
1203 .x86_64 => asm volatile (1202 .x86_64 => asm volatile (
1204 \\ movq $11, %%rax # SYS_munmap1203 \\ movq $11, %%rax # SYS_munmap
1205 \\ syscall1204 \\ syscall
...@@ -1221,8 +1220,7 @@ const LinuxThreadImpl = struct {...@@ -1221,8 +1220,7 @@ const LinuxThreadImpl = struct {
1221 :1220 :
1222 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1221 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1223 [len] "r" (self.mapped.len),1222 [len] "r" (self.mapped.len),
1224 : "memory"1223 : .{ .memory = true }),
1225 ),
1226 .aarch64, .aarch64_be => asm volatile (1224 .aarch64, .aarch64_be => asm volatile (
1227 \\ mov x8, #215 // SYS_munmap1225 \\ mov x8, #215 // SYS_munmap
1228 \\ mov x0, %[ptr]1226 \\ mov x0, %[ptr]
...@@ -1234,8 +1232,7 @@ const LinuxThreadImpl = struct {...@@ -1234,8 +1232,7 @@ const LinuxThreadImpl = struct {
1234 :1232 :
1235 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1233 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1236 [len] "r" (self.mapped.len),1234 [len] "r" (self.mapped.len),
1237 : "memory"1235 : .{ .memory = true }),
1238 ),
1239 .hexagon => asm volatile (1236 .hexagon => asm volatile (
1240 \\ r6 = #215 // SYS_munmap1237 \\ r6 = #215 // SYS_munmap
1241 \\ r0 = %[ptr]1238 \\ r0 = %[ptr]
...@@ -1247,8 +1244,7 @@ const LinuxThreadImpl = struct {...@@ -1247,8 +1244,7 @@ const LinuxThreadImpl = struct {
1247 :1244 :
1248 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1245 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1249 [len] "r" (self.mapped.len),1246 [len] "r" (self.mapped.len),
1250 : "memory"1247 : .{ .memory = true }),
1251 ),
1252 // We set `sp` to the address of the current function as a workaround for a Linux1248 // We set `sp` to the address of the current function as a workaround for a Linux
1253 // kernel bug that caused syscalls to return EFAULT if the stack pointer is invalid.1249 // kernel bug that caused syscalls to return EFAULT if the stack pointer is invalid.
1254 // The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in1250 // The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in
...@@ -1265,8 +1261,7 @@ const LinuxThreadImpl = struct {...@@ -1265,8 +1261,7 @@ const LinuxThreadImpl = struct {
1265 :1261 :
1266 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1262 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1267 [len] "r" (self.mapped.len),1263 [len] "r" (self.mapped.len),
1268 : "memory"1264 : .{ .memory = true }),
1269 ),
1270 .mips64, .mips64el => asm volatile (1265 .mips64, .mips64el => asm volatile (
1271 \\ li $2, 5011 # SYS_munmap1266 \\ li $2, 5011 # SYS_munmap
1272 \\ move $4, %[ptr]1267 \\ move $4, %[ptr]
...@@ -1278,8 +1273,7 @@ const LinuxThreadImpl = struct {...@@ -1278,8 +1273,7 @@ const LinuxThreadImpl = struct {
1278 :1273 :
1279 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1274 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1280 [len] "r" (self.mapped.len),1275 [len] "r" (self.mapped.len),
1281 : "memory"1276 : .{ .memory = true }),
1282 ),
1283 .powerpc, .powerpcle, .powerpc64, .powerpc64le => asm volatile (1277 .powerpc, .powerpcle, .powerpc64, .powerpc64le => asm volatile (
1284 \\ li 0, 91 # SYS_munmap1278 \\ li 0, 91 # SYS_munmap
1285 \\ mr 3, %[ptr]1279 \\ mr 3, %[ptr]
...@@ -1292,8 +1286,7 @@ const LinuxThreadImpl = struct {...@@ -1292,8 +1286,7 @@ const LinuxThreadImpl = struct {
1292 :1286 :
1293 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1287 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1294 [len] "r" (self.mapped.len),1288 [len] "r" (self.mapped.len),
1295 : "memory"1289 : .{ .memory = true }),
1296 ),
1297 .riscv32, .riscv64 => asm volatile (1290 .riscv32, .riscv64 => asm volatile (
1298 \\ li a7, 215 # SYS_munmap1291 \\ li a7, 215 # SYS_munmap
1299 \\ mv a0, %[ptr]1292 \\ mv a0, %[ptr]
...@@ -1305,8 +1298,7 @@ const LinuxThreadImpl = struct {...@@ -1305,8 +1298,7 @@ const LinuxThreadImpl = struct {
1305 :1298 :
1306 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1299 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1307 [len] "r" (self.mapped.len),1300 [len] "r" (self.mapped.len),
1308 : "memory"1301 : .{ .memory = true }),
1309 ),
1310 .s390x => asm volatile (1302 .s390x => asm volatile (
1311 \\ lgr %%r2, %[ptr]1303 \\ lgr %%r2, %[ptr]
1312 \\ lgr %%r3, %[len]1304 \\ lgr %%r3, %[len]
...@@ -1316,8 +1308,7 @@ const LinuxThreadImpl = struct {...@@ -1316,8 +1308,7 @@ const LinuxThreadImpl = struct {
1316 :1308 :
1317 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1309 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1318 [len] "r" (self.mapped.len),1310 [len] "r" (self.mapped.len),
1319 : "memory"1311 : .{ .memory = true }),
1320 ),
1321 .sparc => asm volatile (1312 .sparc => asm volatile (
1322 \\ # See sparc64 comments below.1313 \\ # See sparc64 comments below.
1323 \\ 1:1314 \\ 1:
...@@ -1338,8 +1329,7 @@ const LinuxThreadImpl = struct {...@@ -1338,8 +1329,7 @@ const LinuxThreadImpl = struct {
1338 :1329 :
1339 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1330 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1340 [len] "r" (self.mapped.len),1331 [len] "r" (self.mapped.len),
1341 : "memory"1332 : .{ .memory = true }),
1342 ),
1343 .sparc64 => asm volatile (1333 .sparc64 => asm volatile (
1344 \\ # SPARCs really don't like it when active stack frames1334 \\ # SPARCs really don't like it when active stack frames
1345 \\ # is unmapped (it will result in a segfault), so we1335 \\ # is unmapped (it will result in a segfault), so we
...@@ -1365,8 +1355,7 @@ const LinuxThreadImpl = struct {...@@ -1365,8 +1355,7 @@ const LinuxThreadImpl = struct {
1365 :1355 :
1366 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1356 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1367 [len] "r" (self.mapped.len),1357 [len] "r" (self.mapped.len),
1368 : "memory"1358 : .{ .memory = true }),
1369 ),
1370 .loongarch32, .loongarch64 => asm volatile (1359 .loongarch32, .loongarch64 => asm volatile (
1371 \\ or $a0, $zero, %[ptr]1360 \\ or $a0, $zero, %[ptr]
1372 \\ or $a1, $zero, %[len]1361 \\ or $a1, $zero, %[len]
...@@ -1378,8 +1367,7 @@ const LinuxThreadImpl = struct {...@@ -1378,8 +1367,7 @@ const LinuxThreadImpl = struct {
1378 :1367 :
1379 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1368 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1380 [len] "r" (self.mapped.len),1369 [len] "r" (self.mapped.len),
1381 : "memory"1370 : .{ .memory = true }),
1382 ),
1383 else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)),1371 else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)),
1384 }1372 }
1385 unreachable;1373 unreachable;
lib/std/crypto/sha2.zig+1-2
...@@ -229,8 +229,7 @@ fn Sha2x32(comptime iv: Iv32, digest_bits: comptime_int) type {...@@ -229,8 +229,7 @@ fn Sha2x32(comptime iv: Iv32, digest_bits: comptime_int) type {
229 : [_] "0" (x),229 : [_] "0" (x),
230 [_] "1" (y),230 [_] "1" (y),
231 [w] "w" (w),231 [w] "w" (w),
232 : "v0"232 : .{ .v0 = true });
233 );
234 }233 }
235234
236 d.s[0..4].* = x +% @as(V4u32, d.s[0..4].*);235 d.s[0..4].* = x +% @as(V4u32, d.s[0..4].*);
lib/std/debug.zig+1-1
...@@ -785,7 +785,7 @@ pub const StackIterator = struct {...@@ -785,7 +785,7 @@ pub const StackIterator = struct {
785 "flushw"785 "flushw"
786 else786 else
787 "ta 3" // ST_FLUSH_WINDOWS787 "ta 3" // ST_FLUSH_WINDOWS
788 ::: "memory");788 ::: .{ .memory = true });
789 }789 }
790790
791 return StackIterator{791 return StackIterator{
lib/std/debug/SelfInfo.zig+1-2
...@@ -1547,8 +1547,7 @@ pub inline fn stripInstructionPtrAuthCode(ptr: usize) usize {...@@ -1547,8 +1547,7 @@ pub inline fn stripInstructionPtrAuthCode(ptr: usize) usize {
1547 \\mov x30, x161547 \\mov x30, x16
1548 : [ret] "={x15}" (-> usize),1548 : [ret] "={x15}" (-> usize),
1549 : [ptr] "{x15}" (ptr),1549 : [ptr] "{x15}" (ptr),
1550 : "x16"1550 : .{ .x16 = true });
1551 );
1552 }1551 }
15531552
1554 return ptr;1553 return ptr;
lib/std/mem.zig+1-2
...@@ -4497,8 +4497,7 @@ pub fn doNotOptimizeAway(val: anytype) void {...@@ -4497,8 +4497,7 @@ pub fn doNotOptimizeAway(val: anytype) void {
4497 asm volatile (""4497 asm volatile (""
4498 :4498 :
4499 : [val] "m" (val),4499 : [val] "m" (val),
4500 : "memory"4500 : .{ .memory = true });
4501 );
4502 }4501 }
4503 },4502 },
4504 .array => {4503 .array => {
lib/std/os/linux/aarch64.zig+9-18
...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
18 return asm volatile ("svc #0"18 return asm volatile ("svc #0"
19 : [ret] "={x0}" (-> usize),19 : [ret] "={x0}" (-> usize),
20 : [number] "{x8}" (@intFromEnum(number)),20 : [number] "{x8}" (@intFromEnum(number)),
21 : "memory", "cc"21 : .{ .memory = true, .cc = true });
22 );
23}22}
2423
25pub fn syscall1(number: SYS, arg1: usize) usize {24pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
27 : [ret] "={x0}" (-> usize),26 : [ret] "={x0}" (-> usize),
28 : [number] "{x8}" (@intFromEnum(number)),27 : [number] "{x8}" (@intFromEnum(number)),
29 [arg1] "{x0}" (arg1),28 [arg1] "{x0}" (arg1),
30 : "memory", "cc"29 : .{ .memory = true, .cc = true });
31 );
32}30}
3331
34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
37 : [number] "{x8}" (@intFromEnum(number)),35 : [number] "{x8}" (@intFromEnum(number)),
38 [arg1] "{x0}" (arg1),36 [arg1] "{x0}" (arg1),
39 [arg2] "{x1}" (arg2),37 [arg2] "{x1}" (arg2),
40 : "memory", "cc"38 : .{ .memory = true, .cc = true });
41 );
42}39}
4340
44pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -48,8 +45,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -48,8 +45,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
48 [arg1] "{x0}" (arg1),45 [arg1] "{x0}" (arg1),
49 [arg2] "{x1}" (arg2),46 [arg2] "{x1}" (arg2),
50 [arg3] "{x2}" (arg3),47 [arg3] "{x2}" (arg3),
51 : "memory", "cc"48 : .{ .memory = true, .cc = true });
52 );
53}49}
5450
55pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {51pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -60,8 +56,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -60,8 +56,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
60 [arg2] "{x1}" (arg2),56 [arg2] "{x1}" (arg2),
61 [arg3] "{x2}" (arg3),57 [arg3] "{x2}" (arg3),
62 [arg4] "{x3}" (arg4),58 [arg4] "{x3}" (arg4),
63 : "memory", "cc"59 : .{ .memory = true, .cc = true });
64 );
65}60}
6661
67pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {62pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -73,8 +68,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -73,8 +68,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
73 [arg3] "{x2}" (arg3),68 [arg3] "{x2}" (arg3),
74 [arg4] "{x3}" (arg4),69 [arg4] "{x3}" (arg4),
75 [arg5] "{x4}" (arg5),70 [arg5] "{x4}" (arg5),
76 : "memory", "cc"71 : .{ .memory = true, .cc = true });
77 );
78}72}
7973
80pub fn syscall6(74pub fn syscall6(
...@@ -95,8 +89,7 @@ pub fn syscall6(...@@ -95,8 +89,7 @@ pub fn syscall6(
95 [arg4] "{x3}" (arg4),89 [arg4] "{x3}" (arg4),
96 [arg5] "{x4}" (arg5),90 [arg5] "{x4}" (arg5),
97 [arg6] "{x5}" (arg6),91 [arg6] "{x5}" (arg6),
98 : "memory", "cc"92 : .{ .memory = true, .cc = true });
99 );
100}93}
10194
102pub fn clone() callconv(.naked) usize {95pub fn clone() callconv(.naked) usize {
...@@ -148,14 +141,12 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -148,14 +141,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
148 \\ svc #0141 \\ svc #0
149 :142 :
150 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),143 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
151 : "memory", "cc"144 : .{ .memory = true, .cc = true }),
152 ),
153 else => asm volatile (145 else => asm volatile (
154 \\ svc #0146 \\ svc #0
155 :147 :
156 : [number] "{x8}" (@intFromEnum(SYS.rt_sigreturn)),148 : [number] "{x8}" (@intFromEnum(SYS.rt_sigreturn)),
157 : "memory", "cc"149 : .{ .memory = true, .cc = true }),
158 ),
159 }150 }
160}151}
161152
lib/std/os/linux/arm.zig+11-22
...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
17 return asm volatile ("svc #0"17 return asm volatile ("svc #0"
18 : [ret] "={r0}" (-> usize),18 : [ret] "={r0}" (-> usize),
19 : [number] "{r7}" (@intFromEnum(number)),19 : [number] "{r7}" (@intFromEnum(number)),
20 : "memory"20 : .{ .memory = true });
21 );
22}21}
2322
24pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
26 : [ret] "={r0}" (-> usize),25 : [ret] "={r0}" (-> usize),
27 : [number] "{r7}" (@intFromEnum(number)),26 : [number] "{r7}" (@intFromEnum(number)),
28 [arg1] "{r0}" (arg1),27 [arg1] "{r0}" (arg1),
29 : "memory"28 : .{ .memory = true });
30 );
31}29}
3230
33pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
36 : [number] "{r7}" (@intFromEnum(number)),34 : [number] "{r7}" (@intFromEnum(number)),
37 [arg1] "{r0}" (arg1),35 [arg1] "{r0}" (arg1),
38 [arg2] "{r1}" (arg2),36 [arg2] "{r1}" (arg2),
39 : "memory"37 : .{ .memory = true });
40 );
41}38}
4239
43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 [arg1] "{r0}" (arg1),44 [arg1] "{r0}" (arg1),
48 [arg2] "{r1}" (arg2),45 [arg2] "{r1}" (arg2),
49 [arg3] "{r2}" (arg3),46 [arg3] "{r2}" (arg3),
50 : "memory"47 : .{ .memory = true });
51 );
52}48}
5349
54pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 [arg2] "{r1}" (arg2),55 [arg2] "{r1}" (arg2),
60 [arg3] "{r2}" (arg3),56 [arg3] "{r2}" (arg3),
61 [arg4] "{r3}" (arg4),57 [arg4] "{r3}" (arg4),
62 : "memory"58 : .{ .memory = true });
63 );
64}59}
6560
66pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
72 [arg3] "{r2}" (arg3),67 [arg3] "{r2}" (arg3),
73 [arg4] "{r3}" (arg4),68 [arg4] "{r3}" (arg4),
74 [arg5] "{r4}" (arg5),69 [arg5] "{r4}" (arg5),
75 : "memory"70 : .{ .memory = true });
76 );
77}71}
7872
79pub fn syscall6(73pub fn syscall6(
...@@ -94,8 +88,7 @@ pub fn syscall6(...@@ -94,8 +88,7 @@ pub fn syscall6(
94 [arg4] "{r3}" (arg4),88 [arg4] "{r3}" (arg4),
95 [arg5] "{r4}" (arg5),89 [arg5] "{r4}" (arg5),
96 [arg6] "{r5}" (arg6),90 [arg6] "{r5}" (arg6),
97 : "memory"91 : .{ .memory = true });
98 );
99}92}
10093
101pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) usize {
...@@ -141,14 +134,12 @@ pub fn restore() callconv(.naked) noreturn {...@@ -141,14 +134,12 @@ pub fn restore() callconv(.naked) noreturn {
141 \\ svc #0134 \\ svc #0
142 :135 :
143 : [number] "I" (@intFromEnum(SYS.sigreturn)),136 : [number] "I" (@intFromEnum(SYS.sigreturn)),
144 : "memory"137 : .{ .memory = true }),
145 ),
146 else => asm volatile (138 else => asm volatile (
147 \\ svc #0139 \\ svc #0
148 :140 :
149 : [number] "{r7}" (@intFromEnum(SYS.sigreturn)),141 : [number] "{r7}" (@intFromEnum(SYS.sigreturn)),
150 : "memory"142 : .{ .memory = true }),
151 ),
152 }143 }
153}144}
154145
...@@ -159,14 +150,12 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -159,14 +150,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
159 \\ svc #0150 \\ svc #0
160 :151 :
161 : [number] "I" (@intFromEnum(SYS.rt_sigreturn)),152 : [number] "I" (@intFromEnum(SYS.rt_sigreturn)),
162 : "memory"153 : .{ .memory = true }),
163 ),
164 else => asm volatile (154 else => asm volatile (
165 \\ svc #0155 \\ svc #0
166 :156 :
167 : [number] "{r7}" (@intFromEnum(SYS.rt_sigreturn)),157 : [number] "{r7}" (@intFromEnum(SYS.rt_sigreturn)),
168 : "memory"158 : .{ .memory = true }),
169 ),
170 }159 }
171}160}
172161
lib/std/os/linux/hexagon.zig+8-16
...@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {...@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {
15 return asm volatile ("trap0(#1)"15 return asm volatile ("trap0(#1)"
16 : [ret] "={r0}" (-> usize),16 : [ret] "={r0}" (-> usize),
17 : [number] "{r6}" (@intFromEnum(number)),17 : [number] "{r6}" (@intFromEnum(number)),
18 : "memory"18 : .{ .memory = true });
19 );
20}19}
2120
22pub fn syscall1(number: SYS, arg1: usize) usize {21pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
24 : [ret] "={r0}" (-> usize),23 : [ret] "={r0}" (-> usize),
25 : [number] "{r6}" (@intFromEnum(number)),24 : [number] "{r6}" (@intFromEnum(number)),
26 [arg1] "{r0}" (arg1),25 [arg1] "{r0}" (arg1),
27 : "memory"26 : .{ .memory = true });
28 );
29}27}
3028
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {29pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
34 : [number] "{r6}" (@intFromEnum(number)),32 : [number] "{r6}" (@intFromEnum(number)),
35 [arg1] "{r0}" (arg1),33 [arg1] "{r0}" (arg1),
36 [arg2] "{r1}" (arg2),34 [arg2] "{r1}" (arg2),
37 : "memory"35 : .{ .memory = true });
38 );
39}36}
4037
41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {38pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -45,8 +42,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -45,8 +42,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
45 [arg1] "{r0}" (arg1),42 [arg1] "{r0}" (arg1),
46 [arg2] "{r1}" (arg2),43 [arg2] "{r1}" (arg2),
47 [arg3] "{r2}" (arg3),44 [arg3] "{r2}" (arg3),
48 : "memory"45 : .{ .memory = true });
49 );
50}46}
5147
52pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {48pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -57,8 +53,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -57,8 +53,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
57 [arg2] "{r1}" (arg2),53 [arg2] "{r1}" (arg2),
58 [arg3] "{r2}" (arg3),54 [arg3] "{r2}" (arg3),
59 [arg4] "{r3}" (arg4),55 [arg4] "{r3}" (arg4),
60 : "memory"56 : .{ .memory = true });
61 );
62}57}
6358
64pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {59pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -70,8 +65,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -70,8 +65,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
70 [arg3] "{r2}" (arg3),65 [arg3] "{r2}" (arg3),
71 [arg4] "{r3}" (arg4),66 [arg4] "{r3}" (arg4),
72 [arg5] "{r4}" (arg5),67 [arg5] "{r4}" (arg5),
73 : "memory"68 : .{ .memory = true });
74 );
75}69}
7670
77pub fn syscall6(71pub fn syscall6(
...@@ -92,8 +86,7 @@ pub fn syscall6(...@@ -92,8 +86,7 @@ pub fn syscall6(
92 [arg4] "{r3}" (arg4),86 [arg4] "{r3}" (arg4),
93 [arg5] "{r4}" (arg5),87 [arg5] "{r4}" (arg5),
94 [arg6] "{r5}" (arg6),88 [arg6] "{r5}" (arg6),
95 : "memory"89 : .{ .memory = true });
96 );
97}90}
9891
99pub fn clone() callconv(.naked) usize {92pub fn clone() callconv(.naked) usize {
...@@ -142,8 +135,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -142,8 +135,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
142 \\ trap0(#0)135 \\ trap0(#0)
143 :136 :
144 : [number] "{r6}" (@intFromEnum(SYS.rt_sigreturn)),137 : [number] "{r6}" (@intFromEnum(SYS.rt_sigreturn)),
145 : "memory"138 : .{ .memory = true });
146 );
147}139}
148140
149pub const F = struct {141pub const F = struct {
lib/std/os/linux/loongarch64.zig+8-16
...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
17 \\ syscall 017 \\ syscall 0
18 : [ret] "={$r4}" (-> usize),18 : [ret] "={$r4}" (-> usize),
19 : [number] "{$r11}" (@intFromEnum(number)),19 : [number] "{$r11}" (@intFromEnum(number)),
20 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"20 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
21 );
22}21}
2322
24pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
27 : [ret] "={$r4}" (-> usize),26 : [ret] "={$r4}" (-> usize),
28 : [number] "{$r11}" (@intFromEnum(number)),27 : [number] "{$r11}" (@intFromEnum(number)),
29 [arg1] "{$r4}" (arg1),28 [arg1] "{$r4}" (arg1),
30 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"29 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
31 );
32}30}
3331
34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -38,8 +36,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -38,8 +36,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
38 : [number] "{$r11}" (@intFromEnum(number)),36 : [number] "{$r11}" (@intFromEnum(number)),
39 [arg1] "{$r4}" (arg1),37 [arg1] "{$r4}" (arg1),
40 [arg2] "{$r5}" (arg2),38 [arg2] "{$r5}" (arg2),
41 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"39 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
42 );
43}40}
4441
45pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {42pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -50,8 +47,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -50,8 +47,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
50 [arg1] "{$r4}" (arg1),47 [arg1] "{$r4}" (arg1),
51 [arg2] "{$r5}" (arg2),48 [arg2] "{$r5}" (arg2),
52 [arg3] "{$r6}" (arg3),49 [arg3] "{$r6}" (arg3),
53 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"50 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
54 );
55}51}
5652
57pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {53pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -63,8 +59,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -63,8 +59,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
63 [arg2] "{$r5}" (arg2),59 [arg2] "{$r5}" (arg2),
64 [arg3] "{$r6}" (arg3),60 [arg3] "{$r6}" (arg3),
65 [arg4] "{$r7}" (arg4),61 [arg4] "{$r7}" (arg4),
66 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"62 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
67 );
68}63}
6964
70pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {65pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -77,8 +72,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -77,8 +72,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
77 [arg3] "{$r6}" (arg3),72 [arg3] "{$r6}" (arg3),
78 [arg4] "{$r7}" (arg4),73 [arg4] "{$r7}" (arg4),
79 [arg5] "{$r8}" (arg5),74 [arg5] "{$r8}" (arg5),
80 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"75 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
81 );
82}76}
8377
84pub fn syscall6(78pub fn syscall6(
...@@ -100,8 +94,7 @@ pub fn syscall6(...@@ -100,8 +94,7 @@ pub fn syscall6(
100 [arg4] "{$r7}" (arg4),94 [arg4] "{$r7}" (arg4),
101 [arg5] "{$r8}" (arg5),95 [arg5] "{$r8}" (arg5),
102 [arg6] "{$r9}" (arg6),96 [arg6] "{$r9}" (arg6),
103 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"97 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
104 );
105}98}
10699
107pub fn clone() callconv(.naked) usize {100pub fn clone() callconv(.naked) usize {
...@@ -150,8 +143,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -150,8 +143,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
150 \\ syscall 0143 \\ syscall 0
151 :144 :
152 : [number] "r" (@intFromEnum(SYS.rt_sigreturn)),145 : [number] "r" (@intFromEnum(SYS.rt_sigreturn)),
153 : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"146 : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
154 );
155}147}
156148
157pub const msghdr = extern struct {149pub const msghdr = extern struct {
lib/std/os/linux/m68k.zig+8-16
...@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {...@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {
15 return asm volatile ("trap #0"15 return asm volatile ("trap #0"
16 : [ret] "={d0}" (-> usize),16 : [ret] "={d0}" (-> usize),
17 : [number] "{d0}" (@intFromEnum(number)),17 : [number] "{d0}" (@intFromEnum(number)),
18 : "memory"18 : .{ .memory = true });
19 );
20}19}
2120
22pub fn syscall1(number: SYS, arg1: usize) usize {21pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
24 : [ret] "={d0}" (-> usize),23 : [ret] "={d0}" (-> usize),
25 : [number] "{d0}" (@intFromEnum(number)),24 : [number] "{d0}" (@intFromEnum(number)),
26 [arg1] "{d1}" (arg1),25 [arg1] "{d1}" (arg1),
27 : "memory"26 : .{ .memory = true });
28 );
29}27}
3028
31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {29pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
34 : [number] "{d0}" (@intFromEnum(number)),32 : [number] "{d0}" (@intFromEnum(number)),
35 [arg1] "{d1}" (arg1),33 [arg1] "{d1}" (arg1),
36 [arg2] "{d2}" (arg2),34 [arg2] "{d2}" (arg2),
37 : "memory"35 : .{ .memory = true });
38 );
39}36}
4037
41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {38pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -45,8 +42,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -45,8 +42,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
45 [arg1] "{d1}" (arg1),42 [arg1] "{d1}" (arg1),
46 [arg2] "{d2}" (arg2),43 [arg2] "{d2}" (arg2),
47 [arg3] "{d3}" (arg3),44 [arg3] "{d3}" (arg3),
48 : "memory"45 : .{ .memory = true });
49 );
50}46}
5147
52pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {48pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -57,8 +53,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -57,8 +53,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
57 [arg2] "{d2}" (arg2),53 [arg2] "{d2}" (arg2),
58 [arg3] "{d3}" (arg3),54 [arg3] "{d3}" (arg3),
59 [arg4] "{d4}" (arg4),55 [arg4] "{d4}" (arg4),
60 : "memory"56 : .{ .memory = true });
61 );
62}57}
6358
64pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {59pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -70,8 +65,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -70,8 +65,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
70 [arg3] "{d3}" (arg3),65 [arg3] "{d3}" (arg3),
71 [arg4] "{d4}" (arg4),66 [arg4] "{d4}" (arg4),
72 [arg5] "{d5}" (arg5),67 [arg5] "{d5}" (arg5),
73 : "memory"68 : .{ .memory = true });
74 );
75}69}
7670
77pub fn syscall6(71pub fn syscall6(
...@@ -92,8 +86,7 @@ pub fn syscall6(...@@ -92,8 +86,7 @@ pub fn syscall6(
92 [arg4] "{d4}" (arg4),86 [arg4] "{d4}" (arg4),
93 [arg5] "{d5}" (arg5),87 [arg5] "{d5}" (arg5),
94 [arg6] "{a0}" (arg6),88 [arg6] "{a0}" (arg6),
95 : "memory"89 : .{ .memory = true });
96 );
97}90}
9891
99pub fn clone() callconv(.naked) usize {92pub fn clone() callconv(.naked) usize {
...@@ -155,8 +148,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -155,8 +148,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
155 asm volatile ("trap #0"148 asm volatile ("trap #0"
156 :149 :
157 : [number] "{d0}" (@intFromEnum(SYS.rt_sigreturn)),150 : [number] "{d0}" (@intFromEnum(SYS.rt_sigreturn)),
158 : "memory"151 : .{ .memory = true });
159 );
160}152}
161153
162pub const F = struct {154pub const F = struct {
lib/std/os/linux/mips.zig+11-22
...@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {...@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {
21 \\ 1:21 \\ 1:
22 : [ret] "={$2}" (-> usize),22 : [ret] "={$2}" (-> usize),
23 : [number] "{$2}" (@intFromEnum(number)),23 : [number] "{$2}" (@intFromEnum(number)),
24 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"24 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
25 );
26}25}
2726
28pub fn syscall_pipe(fd: *[2]i32) usize {27pub fn syscall_pipe(fd: *[2]i32) usize {
...@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
41 : [ret] "={$2}" (-> usize),40 : [ret] "={$2}" (-> usize),
42 : [number] "{$2}" (@intFromEnum(SYS.pipe)),41 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
43 [fd] "{$4}" (fd),42 [fd] "{$4}" (fd),
44 : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"43 : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
45 );
46}44}
4745
48pub fn syscall1(number: SYS, arg1: usize) usize {46pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -55,8 +53,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -55,8 +53,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
55 : [ret] "={$2}" (-> usize),53 : [ret] "={$2}" (-> usize),
56 : [number] "{$2}" (@intFromEnum(number)),54 : [number] "{$2}" (@intFromEnum(number)),
57 [arg1] "{$4}" (arg1),55 [arg1] "{$4}" (arg1),
58 : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"56 : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
59 );
60}57}
6158
62pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {59pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -70,8 +67,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -70,8 +67,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
70 : [number] "{$2}" (@intFromEnum(number)),67 : [number] "{$2}" (@intFromEnum(number)),
71 [arg1] "{$4}" (arg1),68 [arg1] "{$4}" (arg1),
72 [arg2] "{$5}" (arg2),69 [arg2] "{$5}" (arg2),
73 : "$1", "$3", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"70 : .{ .@"$1" = true, .@"$3" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
74 );
75}71}
7672
77pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {73pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -86,8 +82,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -86,8 +82,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
86 [arg1] "{$4}" (arg1),82 [arg1] "{$4}" (arg1),
87 [arg2] "{$5}" (arg2),83 [arg2] "{$5}" (arg2),
88 [arg3] "{$6}" (arg3),84 [arg3] "{$6}" (arg3),
89 : "$1", "$3", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"85 : .{ .@"$1" = true, .@"$3" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
90 );
91}86}
9287
93pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {88pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -103,8 +98,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -103,8 +98,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
103 [arg2] "{$5}" (arg2),98 [arg2] "{$5}" (arg2),
104 [arg3] "{$6}" (arg3),99 [arg3] "{$6}" (arg3),
105 [arg4] "{$7}" (arg4),100 [arg4] "{$7}" (arg4),
106 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"101 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
107 );
108}102}
109103
110pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {104pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -125,8 +119,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -125,8 +119,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
125 [arg3] "{$6}" (arg3),119 [arg3] "{$6}" (arg3),
126 [arg4] "{$7}" (arg4),120 [arg4] "{$7}" (arg4),
127 [arg5] "r" (arg5),121 [arg5] "r" (arg5),
128 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"122 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
129 );
130}123}
131124
132// NOTE: The o32 calling convention requires the callee to reserve 16 bytes for125// NOTE: The o32 calling convention requires the callee to reserve 16 bytes for
...@@ -160,8 +153,7 @@ pub fn syscall6(...@@ -160,8 +153,7 @@ pub fn syscall6(
160 [arg4] "{$7}" (arg4),153 [arg4] "{$7}" (arg4),
161 [arg5] "r" (arg5),154 [arg5] "r" (arg5),
162 [arg6] "r" (arg6),155 [arg6] "r" (arg6),
163 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"156 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
164 );
165}157}
166158
167pub fn syscall7(159pub fn syscall7(
...@@ -195,8 +187,7 @@ pub fn syscall7(...@@ -195,8 +187,7 @@ pub fn syscall7(
195 [arg5] "r" (arg5),187 [arg5] "r" (arg5),
196 [arg6] "r" (arg6),188 [arg6] "r" (arg6),
197 [arg7] "r" (arg7),189 [arg7] "r" (arg7),
198 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"190 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
199 );
200}191}
201192
202pub fn clone() callconv(.naked) usize {193pub fn clone() callconv(.naked) usize {
...@@ -255,8 +246,7 @@ pub fn restore() callconv(.naked) noreturn {...@@ -255,8 +246,7 @@ pub fn restore() callconv(.naked) noreturn {
255 \\ syscall246 \\ syscall
256 :247 :
257 : [number] "{$2}" (@intFromEnum(SYS.sigreturn)),248 : [number] "{$2}" (@intFromEnum(SYS.sigreturn)),
258 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"249 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
259 );
260}250}
261251
262pub fn restore_rt() callconv(.naked) noreturn {252pub fn restore_rt() callconv(.naked) noreturn {
...@@ -264,8 +254,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -264,8 +254,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
264 \\ syscall254 \\ syscall
265 :255 :
266 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),256 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
267 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"257 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
268 );
269}258}
270259
271pub const F = struct {260pub const F = struct {
lib/std/os/linux/mips64.zig+11-22
...@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {...@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {
21 \\ 1:21 \\ 1:
22 : [ret] "={$2}" (-> usize),22 : [ret] "={$2}" (-> usize),
23 : [number] "{$2}" (@intFromEnum(number)),23 : [number] "{$2}" (@intFromEnum(number)),
24 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"24 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
25 );
26}25}
2726
28pub fn syscall_pipe(fd: *[2]i32) usize {27pub fn syscall_pipe(fd: *[2]i32) usize {
...@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
41 : [ret] "={$2}" (-> usize),40 : [ret] "={$2}" (-> usize),
42 : [number] "{$2}" (@intFromEnum(SYS.pipe)),41 : [number] "{$2}" (@intFromEnum(SYS.pipe)),
43 [fd] "{$4}" (fd),42 [fd] "{$4}" (fd),
44 : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"43 : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
45 );
46}44}
4745
48pub fn syscall1(number: SYS, arg1: usize) usize {46pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -56,8 +54,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -56,8 +54,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
56 : [ret] "={$2}" (-> usize),54 : [ret] "={$2}" (-> usize),
57 : [number] "{$2}" (@intFromEnum(number)),55 : [number] "{$2}" (@intFromEnum(number)),
58 [arg1] "{$4}" (arg1),56 [arg1] "{$4}" (arg1),
59 : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"57 : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
60 );
61}58}
6259
63pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {60pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -71,8 +68,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -71,8 +68,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
71 : [number] "{$2}" (@intFromEnum(number)),68 : [number] "{$2}" (@intFromEnum(number)),
72 [arg1] "{$4}" (arg1),69 [arg1] "{$4}" (arg1),
73 [arg2] "{$5}" (arg2),70 [arg2] "{$5}" (arg2),
74 : "$1", "$3", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"71 : .{ .@"$1" = true, .@"$3" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
75 );
76}72}
7773
78pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {74pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -87,8 +83,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -87,8 +83,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
87 [arg1] "{$4}" (arg1),83 [arg1] "{$4}" (arg1),
88 [arg2] "{$5}" (arg2),84 [arg2] "{$5}" (arg2),
89 [arg3] "{$6}" (arg3),85 [arg3] "{$6}" (arg3),
90 : "$1", "$3", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"86 : .{ .@"$1" = true, .@"$3" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
91 );
92}87}
9388
94pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {89pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -104,8 +99,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -104,8 +99,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
104 [arg2] "{$5}" (arg2),99 [arg2] "{$5}" (arg2),
105 [arg3] "{$6}" (arg3),100 [arg3] "{$6}" (arg3),
106 [arg4] "{$7}" (arg4),101 [arg4] "{$7}" (arg4),
107 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"102 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
108 );
109}103}
110104
111pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {105pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -122,8 +116,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -122,8 +116,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
122 [arg3] "{$6}" (arg3),116 [arg3] "{$6}" (arg3),
123 [arg4] "{$7}" (arg4),117 [arg4] "{$7}" (arg4),
124 [arg5] "{$8}" (arg5),118 [arg5] "{$8}" (arg5),
125 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"119 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
126 );
127}120}
128121
129pub fn syscall6(122pub fn syscall6(
...@@ -149,8 +142,7 @@ pub fn syscall6(...@@ -149,8 +142,7 @@ pub fn syscall6(
149 [arg4] "{$7}" (arg4),142 [arg4] "{$7}" (arg4),
150 [arg5] "{$8}" (arg5),143 [arg5] "{$8}" (arg5),
151 [arg6] "{$9}" (arg6),144 [arg6] "{$9}" (arg6),
152 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"145 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
153 );
154}146}
155147
156pub fn syscall7(148pub fn syscall7(
...@@ -178,8 +170,7 @@ pub fn syscall7(...@@ -178,8 +170,7 @@ pub fn syscall7(
178 [arg5] "{$8}" (arg5),170 [arg5] "{$8}" (arg5),
179 [arg6] "{$9}" (arg6),171 [arg6] "{$9}" (arg6),
180 [arg7] "{$10}" (arg7),172 [arg7] "{$10}" (arg7),
181 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"173 : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
182 );
183}174}
184175
185pub fn clone() callconv(.naked) usize {176pub fn clone() callconv(.naked) usize {
...@@ -234,8 +225,7 @@ pub fn restore() callconv(.naked) noreturn {...@@ -234,8 +225,7 @@ pub fn restore() callconv(.naked) noreturn {
234 \\ syscall225 \\ syscall
235 :226 :
236 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),227 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
237 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"228 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
238 );
239}229}
240230
241pub fn restore_rt() callconv(.naked) noreturn {231pub fn restore_rt() callconv(.naked) noreturn {
...@@ -243,8 +233,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -243,8 +233,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
243 \\ syscall233 \\ syscall
244 :234 :
245 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),235 : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
246 : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"236 : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
247 );
248}237}
249238
250pub const F = struct {239pub const F = struct {
lib/std/os/linux/powerpc.zig+8-16
...@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {...@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {
22 \\ 1:22 \\ 1:
23 : [ret] "={r3}" (-> usize),23 : [ret] "={r3}" (-> usize),
24 : [number] "{r0}" (@intFromEnum(number)),24 : [number] "{r0}" (@intFromEnum(number)),
25 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
26 );
27}26}
2827
29pub fn syscall1(number: SYS, arg1: usize) usize {28pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
35 : [ret] "={r3}" (-> usize),34 : [ret] "={r3}" (-> usize),
36 : [number] "{r0}" (@intFromEnum(number)),35 : [number] "{r0}" (@intFromEnum(number)),
37 [arg1] "{r3}" (arg1),36 [arg1] "{r3}" (arg1),
38 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
39 );
40}38}
4139
42pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {40pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
49 : [number] "{r0}" (@intFromEnum(number)),47 : [number] "{r0}" (@intFromEnum(number)),
50 [arg1] "{r3}" (arg1),48 [arg1] "{r3}" (arg1),
51 [arg2] "{r4}" (arg2),49 [arg2] "{r4}" (arg2),
52 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
53 );
54}51}
5552
56pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {53pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -64,8 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -64,8 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
64 [arg1] "{r3}" (arg1),61 [arg1] "{r3}" (arg1),
65 [arg2] "{r4}" (arg2),62 [arg2] "{r4}" (arg2),
66 [arg3] "{r5}" (arg3),63 [arg3] "{r5}" (arg3),
67 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
68 );
69}65}
7066
71pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {67pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -80,8 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -80,8 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
80 [arg2] "{r4}" (arg2),76 [arg2] "{r4}" (arg2),
81 [arg3] "{r5}" (arg3),77 [arg3] "{r5}" (arg3),
82 [arg4] "{r6}" (arg4),78 [arg4] "{r6}" (arg4),
83 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
84 );
85}80}
8681
87pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {82pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -97,8 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -97,8 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
97 [arg3] "{r5}" (arg3),92 [arg3] "{r5}" (arg3),
98 [arg4] "{r6}" (arg4),93 [arg4] "{r6}" (arg4),
99 [arg5] "{r7}" (arg5),94 [arg5] "{r7}" (arg5),
100 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
101 );
102}96}
10397
104pub fn syscall6(98pub fn syscall6(
...@@ -123,8 +117,7 @@ pub fn syscall6(...@@ -123,8 +117,7 @@ pub fn syscall6(
123 [arg4] "{r6}" (arg4),117 [arg4] "{r6}" (arg4),
124 [arg5] "{r7}" (arg5),118 [arg5] "{r7}" (arg5),
125 [arg6] "{r8}" (arg6),119 [arg6] "{r8}" (arg6),
126 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
127 );
128}121}
129122
130pub fn clone() callconv(.naked) usize {123pub fn clone() callconv(.naked) usize {
...@@ -204,8 +197,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -204,8 +197,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
204 \\ sc197 \\ sc
205 :198 :
206 : [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),199 : [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),
207 : "memory", "cr0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"200 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
208 );
209}201}
210202
211pub const F = struct {203pub const F = struct {
lib/std/os/linux/powerpc64.zig+8-16
...@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {...@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {
22 \\ 1:22 \\ 1:
23 : [ret] "={r3}" (-> usize),23 : [ret] "={r3}" (-> usize),
24 : [number] "{r0}" (@intFromEnum(number)),24 : [number] "{r0}" (@intFromEnum(number)),
25 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
26 );
27}26}
2827
29pub fn syscall1(number: SYS, arg1: usize) usize {28pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
35 : [ret] "={r3}" (-> usize),34 : [ret] "={r3}" (-> usize),
36 : [number] "{r0}" (@intFromEnum(number)),35 : [number] "{r0}" (@intFromEnum(number)),
37 [arg1] "{r3}" (arg1),36 [arg1] "{r3}" (arg1),
38 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
39 );
40}38}
4139
42pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {40pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
49 : [number] "{r0}" (@intFromEnum(number)),47 : [number] "{r0}" (@intFromEnum(number)),
50 [arg1] "{r3}" (arg1),48 [arg1] "{r3}" (arg1),
51 [arg2] "{r4}" (arg2),49 [arg2] "{r4}" (arg2),
52 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
53 );
54}51}
5552
56pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {53pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -64,8 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -64,8 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
64 [arg1] "{r3}" (arg1),61 [arg1] "{r3}" (arg1),
65 [arg2] "{r4}" (arg2),62 [arg2] "{r4}" (arg2),
66 [arg3] "{r5}" (arg3),63 [arg3] "{r5}" (arg3),
67 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
68 );
69}65}
7066
71pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {67pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -80,8 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -80,8 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
80 [arg2] "{r4}" (arg2),76 [arg2] "{r4}" (arg2),
81 [arg3] "{r5}" (arg3),77 [arg3] "{r5}" (arg3),
82 [arg4] "{r6}" (arg4),78 [arg4] "{r6}" (arg4),
83 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
84 );
85}80}
8681
87pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {82pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -97,8 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -97,8 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
97 [arg3] "{r5}" (arg3),92 [arg3] "{r5}" (arg3),
98 [arg4] "{r6}" (arg4),93 [arg4] "{r6}" (arg4),
99 [arg5] "{r7}" (arg5),94 [arg5] "{r7}" (arg5),
100 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
101 );
102}96}
10397
104pub fn syscall6(98pub fn syscall6(
...@@ -123,8 +117,7 @@ pub fn syscall6(...@@ -123,8 +117,7 @@ pub fn syscall6(
123 [arg4] "{r6}" (arg4),117 [arg4] "{r6}" (arg4),
124 [arg5] "{r7}" (arg5),118 [arg5] "{r7}" (arg5),
125 [arg6] "{r8}" (arg6),119 [arg6] "{r8}" (arg6),
126 : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
127 );
128}121}
129122
130pub fn clone() callconv(.naked) usize {123pub fn clone() callconv(.naked) usize {
...@@ -189,8 +182,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -189,8 +182,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
189 \\ sc182 \\ sc
190 :183 :
191 : [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),184 : [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),
192 : "memory", "cr0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"185 : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
193 );
194}186}
195187
196pub const F = struct {188pub const F = struct {
lib/std/os/linux/riscv32.zig+8-16
...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
17 return asm volatile ("ecall"17 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),18 : [ret] "={x10}" (-> usize),
19 : [number] "{x17}" (@intFromEnum(number)),19 : [number] "{x17}" (@intFromEnum(number)),
20 : "memory"20 : .{ .memory = true });
21 );
22}21}
2322
24pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
26 : [ret] "={x10}" (-> usize),25 : [ret] "={x10}" (-> usize),
27 : [number] "{x17}" (@intFromEnum(number)),26 : [number] "{x17}" (@intFromEnum(number)),
28 [arg1] "{x10}" (arg1),27 [arg1] "{x10}" (arg1),
29 : "memory"28 : .{ .memory = true });
30 );
31}29}
3230
33pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
36 : [number] "{x17}" (@intFromEnum(number)),34 : [number] "{x17}" (@intFromEnum(number)),
37 [arg1] "{x10}" (arg1),35 [arg1] "{x10}" (arg1),
38 [arg2] "{x11}" (arg2),36 [arg2] "{x11}" (arg2),
39 : "memory"37 : .{ .memory = true });
40 );
41}38}
4239
43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 [arg1] "{x10}" (arg1),44 [arg1] "{x10}" (arg1),
48 [arg2] "{x11}" (arg2),45 [arg2] "{x11}" (arg2),
49 [arg3] "{x12}" (arg3),46 [arg3] "{x12}" (arg3),
50 : "memory"47 : .{ .memory = true });
51 );
52}48}
5349
54pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 [arg2] "{x11}" (arg2),55 [arg2] "{x11}" (arg2),
60 [arg3] "{x12}" (arg3),56 [arg3] "{x12}" (arg3),
61 [arg4] "{x13}" (arg4),57 [arg4] "{x13}" (arg4),
62 : "memory"58 : .{ .memory = true });
63 );
64}59}
6560
66pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
72 [arg3] "{x12}" (arg3),67 [arg3] "{x12}" (arg3),
73 [arg4] "{x13}" (arg4),68 [arg4] "{x13}" (arg4),
74 [arg5] "{x14}" (arg5),69 [arg5] "{x14}" (arg5),
75 : "memory"70 : .{ .memory = true });
76 );
77}71}
7872
79pub fn syscall6(73pub fn syscall6(
...@@ -94,8 +88,7 @@ pub fn syscall6(...@@ -94,8 +88,7 @@ pub fn syscall6(
94 [arg4] "{x13}" (arg4),88 [arg4] "{x13}" (arg4),
95 [arg5] "{x14}" (arg5),89 [arg5] "{x14}" (arg5),
96 [arg6] "{x15}" (arg6),90 [arg6] "{x15}" (arg6),
97 : "memory"91 : .{ .memory = true });
98 );
99}92}
10093
101pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) usize {
...@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
149 \\ ecall142 \\ ecall
150 :143 :
151 : [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),144 : [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),
152 : "memory"145 : .{ .memory = true });
153 );
154}146}
155147
156pub const F = struct {148pub const F = struct {
lib/std/os/linux/riscv64.zig+8-16
...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
17 return asm volatile ("ecall"17 return asm volatile ("ecall"
18 : [ret] "={x10}" (-> usize),18 : [ret] "={x10}" (-> usize),
19 : [number] "{x17}" (@intFromEnum(number)),19 : [number] "{x17}" (@intFromEnum(number)),
20 : "memory"20 : .{ .memory = true });
21 );
22}21}
2322
24pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
26 : [ret] "={x10}" (-> usize),25 : [ret] "={x10}" (-> usize),
27 : [number] "{x17}" (@intFromEnum(number)),26 : [number] "{x17}" (@intFromEnum(number)),
28 [arg1] "{x10}" (arg1),27 [arg1] "{x10}" (arg1),
29 : "memory"28 : .{ .memory = true });
30 );
31}29}
3230
33pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
36 : [number] "{x17}" (@intFromEnum(number)),34 : [number] "{x17}" (@intFromEnum(number)),
37 [arg1] "{x10}" (arg1),35 [arg1] "{x10}" (arg1),
38 [arg2] "{x11}" (arg2),36 [arg2] "{x11}" (arg2),
39 : "memory"37 : .{ .memory = true });
40 );
41}38}
4239
43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 [arg1] "{x10}" (arg1),44 [arg1] "{x10}" (arg1),
48 [arg2] "{x11}" (arg2),45 [arg2] "{x11}" (arg2),
49 [arg3] "{x12}" (arg3),46 [arg3] "{x12}" (arg3),
50 : "memory"47 : .{ .memory = true });
51 );
52}48}
5349
54pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 [arg2] "{x11}" (arg2),55 [arg2] "{x11}" (arg2),
60 [arg3] "{x12}" (arg3),56 [arg3] "{x12}" (arg3),
61 [arg4] "{x13}" (arg4),57 [arg4] "{x13}" (arg4),
62 : "memory"58 : .{ .memory = true });
63 );
64}59}
6560
66pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
72 [arg3] "{x12}" (arg3),67 [arg3] "{x12}" (arg3),
73 [arg4] "{x13}" (arg4),68 [arg4] "{x13}" (arg4),
74 [arg5] "{x14}" (arg5),69 [arg5] "{x14}" (arg5),
75 : "memory"70 : .{ .memory = true });
76 );
77}71}
7872
79pub fn syscall6(73pub fn syscall6(
...@@ -94,8 +88,7 @@ pub fn syscall6(...@@ -94,8 +88,7 @@ pub fn syscall6(
94 [arg4] "{x13}" (arg4),88 [arg4] "{x13}" (arg4),
95 [arg5] "{x14}" (arg5),89 [arg5] "{x14}" (arg5),
96 [arg6] "{x15}" (arg6),90 [arg6] "{x15}" (arg6),
97 : "memory"91 : .{ .memory = true });
98 );
99}92}
10093
101pub fn clone() callconv(.naked) usize {94pub fn clone() callconv(.naked) usize {
...@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
149 \\ ecall142 \\ ecall
150 :143 :
151 : [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),144 : [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),
152 : "memory"145 : .{ .memory = true });
153 );
154}146}
155147
156pub const F = struct {148pub const F = struct {
lib/std/os/linux/s390x.zig+8-16
...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {...@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
17 return asm volatile ("svc 0"17 return asm volatile ("svc 0"
18 : [ret] "={r2}" (-> usize),18 : [ret] "={r2}" (-> usize),
19 : [number] "{r1}" (@intFromEnum(number)),19 : [number] "{r1}" (@intFromEnum(number)),
20 : "memory"20 : .{ .memory = true });
21 );
22}21}
2322
24pub fn syscall1(number: SYS, arg1: usize) usize {23pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
26 : [ret] "={r2}" (-> usize),25 : [ret] "={r2}" (-> usize),
27 : [number] "{r1}" (@intFromEnum(number)),26 : [number] "{r1}" (@intFromEnum(number)),
28 [arg1] "{r2}" (arg1),27 [arg1] "{r2}" (arg1),
29 : "memory"28 : .{ .memory = true });
30 );
31}29}
3230
33pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {31pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
36 : [number] "{r1}" (@intFromEnum(number)),34 : [number] "{r1}" (@intFromEnum(number)),
37 [arg1] "{r2}" (arg1),35 [arg1] "{r2}" (arg1),
38 [arg2] "{r3}" (arg2),36 [arg2] "{r3}" (arg2),
39 : "memory"37 : .{ .memory = true });
40 );
41}38}
4239
43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {40pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -47,8 +44,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
47 [arg1] "{r2}" (arg1),44 [arg1] "{r2}" (arg1),
48 [arg2] "{r3}" (arg2),45 [arg2] "{r3}" (arg2),
49 [arg3] "{r4}" (arg3),46 [arg3] "{r4}" (arg3),
50 : "memory"47 : .{ .memory = true });
51 );
52}48}
5349
54pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {50pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -59,8 +55,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
59 [arg2] "{r3}" (arg2),55 [arg2] "{r3}" (arg2),
60 [arg3] "{r4}" (arg3),56 [arg3] "{r4}" (arg3),
61 [arg4] "{r5}" (arg4),57 [arg4] "{r5}" (arg4),
62 : "memory"58 : .{ .memory = true });
63 );
64}59}
6560
66pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {61pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -72,8 +67,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
72 [arg3] "{r4}" (arg3),67 [arg3] "{r4}" (arg3),
73 [arg4] "{r5}" (arg4),68 [arg4] "{r5}" (arg4),
74 [arg5] "{r6}" (arg5),69 [arg5] "{r6}" (arg5),
75 : "memory"70 : .{ .memory = true });
76 );
77}71}
7872
79pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize, arg6: usize) usize {73pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize, arg6: usize) usize {
...@@ -86,8 +80,7 @@ pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -86,8 +80,7 @@ pub fn syscall6(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
86 [arg4] "{r5}" (arg4),80 [arg4] "{r5}" (arg4),
87 [arg5] "{r6}" (arg5),81 [arg5] "{r6}" (arg5),
88 [arg6] "{r7}" (arg6),82 [arg6] "{r7}" (arg6),
89 : "memory"83 : .{ .memory = true });
90 );
91}84}
9285
93pub fn clone() callconv(.naked) usize {86pub fn clone() callconv(.naked) usize {
...@@ -161,8 +154,7 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -161,8 +154,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
161 \\svc 0154 \\svc 0
162 :155 :
163 : [number] "{r1}" (@intFromEnum(SYS.rt_sigreturn)),156 : [number] "{r1}" (@intFromEnum(SYS.rt_sigreturn)),
164 : "memory"157 : .{ .memory = true });
165 );
166}158}
167159
168pub const F = struct {160pub const F = struct {
lib/std/os/linux/sparc64.zig+10-20
...@@ -32,8 +32,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {...@@ -32,8 +32,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
32 : [ret] "={o0}" (-> usize),32 : [ret] "={o0}" (-> usize),
33 : [number] "{g1}" (@intFromEnum(SYS.pipe)),33 : [number] "{g1}" (@intFromEnum(SYS.pipe)),
34 [arg] "r" (fd),34 [arg] "r" (fd),
35 : "memory", "g3"35 : .{ .memory = true, .g3 = true });
36 );
37}36}
3837
39pub fn syscall_fork() usize {38pub fn syscall_fork() usize {
...@@ -55,8 +54,7 @@ pub fn syscall_fork() usize {...@@ -55,8 +54,7 @@ pub fn syscall_fork() usize {
55 \\ 2:54 \\ 2:
56 : [ret] "={o0}" (-> usize),55 : [ret] "={o0}" (-> usize),
57 : [number] "{g1}" (@intFromEnum(SYS.fork)),56 : [number] "{g1}" (@intFromEnum(SYS.fork)),
58 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"57 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
59 );
60}58}
6159
62pub fn syscall0(number: SYS) usize {60pub fn syscall0(number: SYS) usize {
...@@ -68,8 +66,7 @@ pub fn syscall0(number: SYS) usize {...@@ -68,8 +66,7 @@ pub fn syscall0(number: SYS) usize {
68 \\ 1:66 \\ 1:
69 : [ret] "={o0}" (-> usize),67 : [ret] "={o0}" (-> usize),
70 : [number] "{g1}" (@intFromEnum(number)),68 : [number] "{g1}" (@intFromEnum(number)),
71 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"69 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
72 );
73}70}
7471
75pub fn syscall1(number: SYS, arg1: usize) usize {72pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -82,8 +79,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -82,8 +79,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
82 : [ret] "={o0}" (-> usize),79 : [ret] "={o0}" (-> usize),
83 : [number] "{g1}" (@intFromEnum(number)),80 : [number] "{g1}" (@intFromEnum(number)),
84 [arg1] "{o0}" (arg1),81 [arg1] "{o0}" (arg1),
85 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"82 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
86 );
87}83}
8884
89pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {85pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -97,8 +93,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -97,8 +93,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
97 : [number] "{g1}" (@intFromEnum(number)),93 : [number] "{g1}" (@intFromEnum(number)),
98 [arg1] "{o0}" (arg1),94 [arg1] "{o0}" (arg1),
99 [arg2] "{o1}" (arg2),95 [arg2] "{o1}" (arg2),
100 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"96 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
101 );
102}97}
10398
104pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {99pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -113,8 +108,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -113,8 +108,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
113 [arg1] "{o0}" (arg1),108 [arg1] "{o0}" (arg1),
114 [arg2] "{o1}" (arg2),109 [arg2] "{o1}" (arg2),
115 [arg3] "{o2}" (arg3),110 [arg3] "{o2}" (arg3),
116 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"111 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
117 );
118}112}
119113
120pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {114pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -130,8 +124,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -130,8 +124,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
130 [arg2] "{o1}" (arg2),124 [arg2] "{o1}" (arg2),
131 [arg3] "{o2}" (arg3),125 [arg3] "{o2}" (arg3),
132 [arg4] "{o3}" (arg4),126 [arg4] "{o3}" (arg4),
133 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"127 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
134 );
135}128}
136129
137pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {130pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -148,8 +141,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -148,8 +141,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
148 [arg3] "{o2}" (arg3),141 [arg3] "{o2}" (arg3),
149 [arg4] "{o3}" (arg4),142 [arg4] "{o3}" (arg4),
150 [arg5] "{o4}" (arg5),143 [arg5] "{o4}" (arg5),
151 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"144 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
152 );
153}145}
154146
155pub fn syscall6(147pub fn syscall6(
...@@ -175,8 +167,7 @@ pub fn syscall6(...@@ -175,8 +167,7 @@ pub fn syscall6(
175 [arg4] "{o3}" (arg4),167 [arg4] "{o3}" (arg4),
176 [arg5] "{o4}" (arg5),168 [arg5] "{o4}" (arg5),
177 [arg6] "{o5}" (arg6),169 [arg6] "{o5}" (arg6),
178 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"170 : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
179 );
180}171}
181172
182pub fn clone() callconv(.naked) usize {173pub fn clone() callconv(.naked) usize {
...@@ -242,8 +233,7 @@ pub fn restore_rt() callconv(.c) void {...@@ -242,8 +233,7 @@ pub fn restore_rt() callconv(.c) void {
242 return asm volatile ("t 0x6d"233 return asm volatile ("t 0x6d"
243 :234 :
244 : [number] "{g1}" (@intFromEnum(SYS.rt_sigreturn)),235 : [number] "{g1}" (@intFromEnum(SYS.rt_sigreturn)),
245 : "memory", "xcc", "o0", "o1", "o2", "o3", "o4", "o5", "o7"236 : .{ .memory = true, .xcc = true, .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
246 );
247}237}
248238
249pub const F = struct {239pub const F = struct {
lib/std/os/linux/thumb.zig+8-16
...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
18 \\ ldr r7, [%[tmp], #4]18 \\ ldr r7, [%[tmp], #4]
19 : [ret] "={r0}" (-> usize),19 : [ret] "={r0}" (-> usize),
20 : [tmp] "{r1}" (&buf),20 : [tmp] "{r1}" (&buf),
21 : "memory"21 : .{ .memory = true });
22 );
23}22}
2423
25pub fn syscall1(number: SYS, arg1: usize) usize {24pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -34,8 +33,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -34,8 +33,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
34 : [ret] "={r0}" (-> usize),33 : [ret] "={r0}" (-> usize),
35 : [tmp] "{r1}" (&buf),34 : [tmp] "{r1}" (&buf),
36 [arg1] "{r0}" (arg1),35 [arg1] "{r0}" (arg1),
37 : "memory"36 : .{ .memory = true });
38 );
39}37}
4038
41pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {39pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -51,8 +49,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -51,8 +49,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
51 : [tmp] "{r2}" (&buf),49 : [tmp] "{r2}" (&buf),
52 [arg1] "{r0}" (arg1),50 [arg1] "{r0}" (arg1),
53 [arg2] "{r1}" (arg2),51 [arg2] "{r1}" (arg2),
54 : "memory"52 : .{ .memory = true });
55 );
56}53}
5754
58pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {55pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -69,8 +66,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -69,8 +66,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
69 [arg1] "{r0}" (arg1),66 [arg1] "{r0}" (arg1),
70 [arg2] "{r1}" (arg2),67 [arg2] "{r1}" (arg2),
71 [arg3] "{r2}" (arg3),68 [arg3] "{r2}" (arg3),
72 : "memory"69 : .{ .memory = true });
73 );
74}70}
7571
76pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {72pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -88,8 +84,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -88,8 +84,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
88 [arg2] "{r1}" (arg2),84 [arg2] "{r1}" (arg2),
89 [arg3] "{r2}" (arg3),85 [arg3] "{r2}" (arg3),
90 [arg4] "{r3}" (arg4),86 [arg4] "{r3}" (arg4),
91 : "memory"87 : .{ .memory = true });
92 );
93}88}
9489
95pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {90pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -108,8 +103,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -108,8 +103,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
108 [arg3] "{r2}" (arg3),103 [arg3] "{r2}" (arg3),
109 [arg4] "{r3}" (arg4),104 [arg4] "{r3}" (arg4),
110 [arg5] "{r4}" (arg5),105 [arg5] "{r4}" (arg5),
111 : "memory"106 : .{ .memory = true });
112 );
113}107}
114108
115pub fn syscall6(109pub fn syscall6(
...@@ -137,8 +131,7 @@ pub fn syscall6(...@@ -137,8 +131,7 @@ pub fn syscall6(
137 [arg4] "{r3}" (arg4),131 [arg4] "{r3}" (arg4),
138 [arg5] "{r4}" (arg5),132 [arg5] "{r4}" (arg5),
139 [arg6] "{r5}" (arg6),133 [arg6] "{r5}" (arg6),
140 : "memory"134 : .{ .memory = true });
141 );
142}135}
143136
144pub const clone = @import("arm.zig").clone;137pub const clone = @import("arm.zig").clone;
...@@ -158,6 +151,5 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -158,6 +151,5 @@ pub fn restore_rt() callconv(.naked) noreturn {
158 \\ svc #0151 \\ svc #0
159 :152 :
160 : [number] "I" (@intFromEnum(SYS.rt_sigreturn)),153 : [number] "I" (@intFromEnum(SYS.rt_sigreturn)),
161 : "memory"154 : .{ .memory = true });
162 );
163}155}
lib/std/os/linux/tls.zig+1-2
...@@ -308,8 +308,7 @@ pub fn setThreadPointer(addr: usize) void {...@@ -308,8 +308,7 @@ pub fn setThreadPointer(addr: usize) void {
308 \\ sar %%a0, %%r0308 \\ sar %%a0, %%r0
309 :309 :
310 : [addr] "r" (addr),310 : [addr] "r" (addr),
311 : "r0"311 : .{ .r0 = true });
312 );
313 },312 },
314 .sparc, .sparc64 => {313 .sparc, .sparc64 => {
315 asm volatile (314 asm volatile (
lib/std/os/linux/x86.zig+14-28
...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {...@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
18 return asm volatile ("int $0x80"18 return asm volatile ("int $0x80"
19 : [ret] "={eax}" (-> usize),19 : [ret] "={eax}" (-> usize),
20 : [number] "{eax}" (@intFromEnum(number)),20 : [number] "{eax}" (@intFromEnum(number)),
21 : "memory"21 : .{ .memory = true });
22 );
23}22}
2423
25pub fn syscall1(number: SYS, arg1: usize) usize {24pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
27 : [ret] "={eax}" (-> usize),26 : [ret] "={eax}" (-> usize),
28 : [number] "{eax}" (@intFromEnum(number)),27 : [number] "{eax}" (@intFromEnum(number)),
29 [arg1] "{ebx}" (arg1),28 [arg1] "{ebx}" (arg1),
30 : "memory"29 : .{ .memory = true });
31 );
32}30}
3331
34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {32pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
37 : [number] "{eax}" (@intFromEnum(number)),35 : [number] "{eax}" (@intFromEnum(number)),
38 [arg1] "{ebx}" (arg1),36 [arg1] "{ebx}" (arg1),
39 [arg2] "{ecx}" (arg2),37 [arg2] "{ecx}" (arg2),
40 : "memory"38 : .{ .memory = true });
41 );
42}39}
4340
44pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {41pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -48,8 +45,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -48,8 +45,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
48 [arg1] "{ebx}" (arg1),45 [arg1] "{ebx}" (arg1),
49 [arg2] "{ecx}" (arg2),46 [arg2] "{ecx}" (arg2),
50 [arg3] "{edx}" (arg3),47 [arg3] "{edx}" (arg3),
51 : "memory"48 : .{ .memory = true });
52 );
53}49}
5450
55pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {51pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -60,8 +56,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -60,8 +56,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
60 [arg2] "{ecx}" (arg2),56 [arg2] "{ecx}" (arg2),
61 [arg3] "{edx}" (arg3),57 [arg3] "{edx}" (arg3),
62 [arg4] "{esi}" (arg4),58 [arg4] "{esi}" (arg4),
63 : "memory"59 : .{ .memory = true });
64 );
65}60}
6661
67pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {62pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -73,8 +68,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -73,8 +68,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
73 [arg3] "{edx}" (arg3),68 [arg3] "{edx}" (arg3),
74 [arg4] "{esi}" (arg4),69 [arg4] "{esi}" (arg4),
75 [arg5] "{edi}" (arg5),70 [arg5] "{edi}" (arg5),
76 : "memory"71 : .{ .memory = true });
77 );
78}72}
7973
80pub fn syscall6(74pub fn syscall6(
...@@ -108,8 +102,7 @@ pub fn syscall6(...@@ -108,8 +102,7 @@ pub fn syscall6(
108 [arg4] "{esi}" (arg4),102 [arg4] "{esi}" (arg4),
109 [arg5] "rm" (arg5),103 [arg5] "rm" (arg5),
110 [arg6] "rm" (arg6),104 [arg6] "rm" (arg6),
111 : "memory"105 : .{ .memory = true });
112 );
113}106}
114107
115pub fn socketcall(call: usize, args: [*]const usize) usize {108pub fn socketcall(call: usize, args: [*]const usize) usize {
...@@ -118,8 +111,7 @@ pub fn socketcall(call: usize, args: [*]const usize) usize {...@@ -118,8 +111,7 @@ pub fn socketcall(call: usize, args: [*]const usize) usize {
118 : [number] "{eax}" (@intFromEnum(SYS.socketcall)),111 : [number] "{eax}" (@intFromEnum(SYS.socketcall)),
119 [arg1] "{ebx}" (call),112 [arg1] "{ebx}" (call),
120 [arg2] "{ecx}" (@intFromPtr(args)),113 [arg2] "{ecx}" (@intFromPtr(args)),
121 : "memory"114 : .{ .memory = true });
122 );
123}115}
124116
125pub fn clone() callconv(.naked) usize {117pub fn clone() callconv(.naked) usize {
...@@ -179,14 +171,12 @@ pub fn restore() callconv(.naked) noreturn {...@@ -179,14 +171,12 @@ pub fn restore() callconv(.naked) noreturn {
179 \\ int $0x80171 \\ int $0x80
180 :172 :
181 : [number] "i" (@intFromEnum(SYS.sigreturn)),173 : [number] "i" (@intFromEnum(SYS.sigreturn)),
182 : "memory"174 : .{ .memory = true }),
183 ),
184 else => asm volatile (175 else => asm volatile (
185 \\ int $0x80176 \\ int $0x80
186 :177 :
187 : [number] "{eax}" (@intFromEnum(SYS.sigreturn)),178 : [number] "{eax}" (@intFromEnum(SYS.sigreturn)),
188 : "memory"179 : .{ .memory = true }),
189 ),
190 }180 }
191}181}
192182
...@@ -197,14 +187,12 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -197,14 +187,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
197 \\ int $0x80187 \\ int $0x80
198 :188 :
199 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),189 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
200 : "memory"190 : .{ .memory = true }),
201 ),
202 else => asm volatile (191 else => asm volatile (
203 \\ int $0x80192 \\ int $0x80
204 :193 :
205 : [number] "{eax}" (@intFromEnum(SYS.rt_sigreturn)),194 : [number] "{eax}" (@intFromEnum(SYS.rt_sigreturn)),
206 : "memory"195 : .{ .memory = true }),
207 ),
208 }196 }
209}197}
210198
...@@ -442,8 +430,7 @@ pub fn getContextInternal() callconv(.naked) usize {...@@ -442,8 +430,7 @@ pub fn getContextInternal() callconv(.naked) usize {
442 [sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),430 [sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),
443 [sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),431 [sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),
444 [sigset_size] "i" (linux.NSIG / 8),432 [sigset_size] "i" (linux.NSIG / 8),
445 : "cc", "memory", "eax", "ecx", "edx"433 : .{ .cc = true, .memory = true, .eax = true, .ecx = true, .edx = true });
446 );
447}434}
448435
449pub inline fn getcontext(context: *ucontext_t) usize {436pub inline fn getcontext(context: *ucontext_t) usize {
...@@ -457,6 +444,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {...@@ -457,6 +444,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {
457 [_] "={edx}" (clobber_edx),444 [_] "={edx}" (clobber_edx),
458 : [_] "{edx}" (context),445 : [_] "{edx}" (context),
459 [getContextInternal] "X" (&getContextInternal),446 [getContextInternal] "X" (&getContextInternal),
460 : "cc", "memory", "ecx"447 : .{ .cc = true, .memory = true, .ecx = true });
461 );
462}448}
lib/std/os/linux/x86_64.zig+11-22
...@@ -20,8 +20,7 @@ pub fn syscall0(number: SYS) usize {...@@ -20,8 +20,7 @@ pub fn syscall0(number: SYS) usize {
20 return asm volatile ("syscall"20 return asm volatile ("syscall"
21 : [ret] "={rax}" (-> usize),21 : [ret] "={rax}" (-> usize),
22 : [number] "{rax}" (@intFromEnum(number)),22 : [number] "{rax}" (@intFromEnum(number)),
23 : "rcx", "r11", "memory"23 : .{ .rcx = true, .r11 = true, .memory = true });
24 );
25}24}
2625
27pub fn syscall1(number: SYS, arg1: usize) usize {26pub fn syscall1(number: SYS, arg1: usize) usize {
...@@ -29,8 +28,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {...@@ -29,8 +28,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
29 : [ret] "={rax}" (-> usize),28 : [ret] "={rax}" (-> usize),
30 : [number] "{rax}" (@intFromEnum(number)),29 : [number] "{rax}" (@intFromEnum(number)),
31 [arg1] "{rdi}" (arg1),30 [arg1] "{rdi}" (arg1),
32 : "rcx", "r11", "memory"31 : .{ .rcx = true, .r11 = true, .memory = true });
33 );
34}32}
3533
36pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {34pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
...@@ -39,8 +37,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {...@@ -39,8 +37,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
39 : [number] "{rax}" (@intFromEnum(number)),37 : [number] "{rax}" (@intFromEnum(number)),
40 [arg1] "{rdi}" (arg1),38 [arg1] "{rdi}" (arg1),
41 [arg2] "{rsi}" (arg2),39 [arg2] "{rsi}" (arg2),
42 : "rcx", "r11", "memory"40 : .{ .rcx = true, .r11 = true, .memory = true });
43 );
44}41}
4542
46pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {43pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
...@@ -50,8 +47,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {...@@ -50,8 +47,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
50 [arg1] "{rdi}" (arg1),47 [arg1] "{rdi}" (arg1),
51 [arg2] "{rsi}" (arg2),48 [arg2] "{rsi}" (arg2),
52 [arg3] "{rdx}" (arg3),49 [arg3] "{rdx}" (arg3),
53 : "rcx", "r11", "memory"50 : .{ .rcx = true, .r11 = true, .memory = true });
54 );
55}51}
5652
57pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {53pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
...@@ -62,8 +58,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)...@@ -62,8 +58,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
62 [arg2] "{rsi}" (arg2),58 [arg2] "{rsi}" (arg2),
63 [arg3] "{rdx}" (arg3),59 [arg3] "{rdx}" (arg3),
64 [arg4] "{r10}" (arg4),60 [arg4] "{r10}" (arg4),
65 : "rcx", "r11", "memory"61 : .{ .rcx = true, .r11 = true, .memory = true });
66 );
67}62}
6863
69pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {64pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
...@@ -75,8 +70,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -75,8 +70,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
75 [arg3] "{rdx}" (arg3),70 [arg3] "{rdx}" (arg3),
76 [arg4] "{r10}" (arg4),71 [arg4] "{r10}" (arg4),
77 [arg5] "{r8}" (arg5),72 [arg5] "{r8}" (arg5),
78 : "rcx", "r11", "memory"73 : .{ .rcx = true, .r11 = true, .memory = true });
79 );
80}74}
8175
82pub fn syscall6(76pub fn syscall6(
...@@ -97,8 +91,7 @@ pub fn syscall6(...@@ -97,8 +91,7 @@ pub fn syscall6(
97 [arg4] "{r10}" (arg4),91 [arg4] "{r10}" (arg4),
98 [arg5] "{r8}" (arg5),92 [arg5] "{r8}" (arg5),
99 [arg6] "{r9}" (arg6),93 [arg6] "{r9}" (arg6),
100 : "rcx", "r11", "memory"94 : .{ .rcx = true, .r11 = true, .memory = true });
101 );
102}95}
10396
104pub fn clone() callconv(.naked) usize {97pub fn clone() callconv(.naked) usize {
...@@ -144,14 +137,12 @@ pub fn restore_rt() callconv(.naked) noreturn {...@@ -144,14 +137,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
144 \\ syscall137 \\ syscall
145 :138 :
146 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),139 : [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
147 : "rcx", "r11", "memory"140 : .{ .rcx = true, .r11 = true, .memory = true }),
148 ),
149 else => asm volatile (141 else => asm volatile (
150 \\ syscall142 \\ syscall
151 :143 :
152 : [number] "{rax}" (@intFromEnum(SYS.rt_sigreturn)),144 : [number] "{rax}" (@intFromEnum(SYS.rt_sigreturn)),
153 : "rcx", "r11", "memory"145 : .{ .rcx = true, .r11 = true, .memory = true }),
154 ),
155 }146 }
156}147}
157148
...@@ -440,8 +431,7 @@ fn getContextInternal() callconv(.naked) usize {...@@ -440,8 +431,7 @@ fn getContextInternal() callconv(.naked) usize {
440 [sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),431 [sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),
441 [sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),432 [sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),
442 [sigset_size] "i" (@sizeOf(sigset_t)),433 [sigset_size] "i" (@sizeOf(sigset_t)),
443 : "cc", "memory", "rax", "rcx", "rdx", "rdi", "rsi", "r8", "r10", "r11"434 : .{ .cc = true, .memory = true, .rax = true, .rcx = true, .rdx = true, .rdi = true, .rsi = true, .r8 = true, .r10 = true, .r11 = true });
444 );
445}435}
446436
447pub inline fn getcontext(context: *ucontext_t) usize {437pub inline fn getcontext(context: *ucontext_t) usize {
...@@ -455,6 +445,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {...@@ -455,6 +445,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {
455 [_] "={rdi}" (clobber_rdi),445 [_] "={rdi}" (clobber_rdi),
456 : [_] "{rdi}" (context),446 : [_] "{rdi}" (context),
457 [getContextInternal] "X" (&getContextInternal),447 [getContextInternal] "X" (&getContextInternal),
458 : "cc", "memory", "rcx", "rdx", "rsi", "r8", "r10", "r11"448 : .{ .cc = true, .memory = true, .rcx = true, .rdx = true, .rsi = true, .r8 = true, .r10 = true, .r11 = true });
459 );
460}449}
lib/std/os/plan9/x86_64.zig+4-8
...@@ -11,8 +11,7 @@ pub fn syscall1(sys: plan9.SYS, arg0: usize) usize {...@@ -11,8 +11,7 @@ pub fn syscall1(sys: plan9.SYS, arg0: usize) usize {
11 : [ret] "={rax}" (-> usize),11 : [ret] "={rax}" (-> usize),
12 : [arg0] "{r8}" (arg0),12 : [arg0] "{r8}" (arg0),
13 [syscall_number] "{rbp}" (@intFromEnum(sys)),13 [syscall_number] "{rbp}" (@intFromEnum(sys)),
14 : "rcx", "rax", "rbp", "r11", "memory"14 : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
15 );
16}15}
17pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {16pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {
18 return asm volatile (17 return asm volatile (
...@@ -27,8 +26,7 @@ pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {...@@ -27,8 +26,7 @@ pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {
27 : [arg0] "{r8}" (arg0),26 : [arg0] "{r8}" (arg0),
28 [arg1] "{r9}" (arg1),27 [arg1] "{r9}" (arg1),
29 [syscall_number] "{rbp}" (@intFromEnum(sys)),28 [syscall_number] "{rbp}" (@intFromEnum(sys)),
30 : "rcx", "rax", "rbp", "r11", "memory"29 : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
31 );
32}30}
33pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {31pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {
34 return asm volatile (32 return asm volatile (
...@@ -46,8 +44,7 @@ pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {...@@ -46,8 +44,7 @@ pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {
46 [arg1] "{r9}" (arg1),44 [arg1] "{r9}" (arg1),
47 [arg2] "{r10}" (arg2),45 [arg2] "{r10}" (arg2),
48 [syscall_number] "{rbp}" (@intFromEnum(sys)),46 [syscall_number] "{rbp}" (@intFromEnum(sys)),
49 : "rcx", "rax", "rbp", "r11", "memory"47 : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
50 );
51}48}
52pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {49pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {
53 return asm volatile (50 return asm volatile (
...@@ -68,6 +65,5 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi...@@ -68,6 +65,5 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi
68 [arg2] "{r10}" (arg2),65 [arg2] "{r10}" (arg2),
69 [arg3] "{r11}" (arg3),66 [arg3] "{r11}" (arg3),
70 [syscall_number] "{rbp}" (@intFromEnum(sys)),67 [syscall_number] "{rbp}" (@intFromEnum(sys)),
71 : "rcx", "rax", "rbp", "r11", "memory"68 : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
72 );
73}69}
lib/std/pie.zig+5-10
...@@ -100,8 +100,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {...@@ -100,8 +100,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
100 \\ %[ret] = add(r1, %[ret])100 \\ %[ret] = add(r1, %[ret])
101 : [ret] "=r" (-> [*]const elf.Dyn),101 : [ret] "=r" (-> [*]const elf.Dyn),
102 :102 :
103 : "r1"103 : .{ .r1 = true }),
104 ),
105 .loongarch32, .loongarch64 => asm volatile (104 .loongarch32, .loongarch64 => asm volatile (
106 \\ .weak _DYNAMIC105 \\ .weak _DYNAMIC
107 \\ .hidden _DYNAMIC106 \\ .hidden _DYNAMIC
...@@ -127,8 +126,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {...@@ -127,8 +126,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
127 \\ addu %[ret], %[ret], $gp126 \\ addu %[ret], %[ret], $gp
128 : [ret] "=r" (-> [*]const elf.Dyn),127 : [ret] "=r" (-> [*]const elf.Dyn),
129 :128 :
130 : "lr"129 : .{ .lr = true }),
131 ),
132 .mips64, .mips64el => asm volatile (130 .mips64, .mips64el => asm volatile (
133 \\ .weak _DYNAMIC131 \\ .weak _DYNAMIC
134 \\ .hidden _DYNAMIC132 \\ .hidden _DYNAMIC
...@@ -140,8 +138,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {...@@ -140,8 +138,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
140 \\ daddu %[ret], %[ret], $gp138 \\ daddu %[ret], %[ret], $gp
141 : [ret] "=r" (-> [*]const elf.Dyn),139 : [ret] "=r" (-> [*]const elf.Dyn),
142 :140 :
143 : "lr"141 : .{ .lr = true }),
144 ),
145 .powerpc, .powerpcle => asm volatile (142 .powerpc, .powerpcle => asm volatile (
146 \\ .weak _DYNAMIC143 \\ .weak _DYNAMIC
147 \\ .hidden _DYNAMIC144 \\ .hidden _DYNAMIC
...@@ -153,8 +150,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {...@@ -153,8 +150,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
153 \\ add %[ret], 4, %[ret]150 \\ add %[ret], 4, %[ret]
154 : [ret] "=r" (-> [*]const elf.Dyn),151 : [ret] "=r" (-> [*]const elf.Dyn),
155 :152 :
156 : "lr", "r4"153 : .{ .lr = true, .r4 = true }),
157 ),
158 .powerpc64, .powerpc64le => asm volatile (154 .powerpc64, .powerpc64le => asm volatile (
159 \\ .weak _DYNAMIC155 \\ .weak _DYNAMIC
160 \\ .hidden _DYNAMIC156 \\ .hidden _DYNAMIC
...@@ -166,8 +162,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {...@@ -166,8 +162,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
166 \\ add %[ret], 4, %[ret]162 \\ add %[ret], 4, %[ret]
167 : [ret] "=r" (-> [*]const elf.Dyn),163 : [ret] "=r" (-> [*]const elf.Dyn),
168 :164 :
169 : "lr", "r4"165 : .{ .lr = true, .r4 = true }),
170 ),
171 .riscv32, .riscv64 => asm volatile (166 .riscv32, .riscv64 => asm volatile (
172 \\ .weak _DYNAMIC167 \\ .weak _DYNAMIC
173 \\ .hidden _DYNAMIC168 \\ .hidden _DYNAMIC
lib/std/start.zig+4-8
...@@ -131,32 +131,28 @@ fn exit2(code: usize) noreturn {...@@ -131,32 +131,28 @@ fn exit2(code: usize) noreturn {
131 :131 :
132 : [number] "{rax}" (231),132 : [number] "{rax}" (231),
133 [arg1] "{rdi}" (code),133 [arg1] "{rdi}" (code),
134 : "rcx", "r11", "memory"134 : .{ .rcx = true, .r11 = true, .memory = true });
135 );
136 },135 },
137 .arm => {136 .arm => {
138 asm volatile ("svc #0"137 asm volatile ("svc #0"
139 :138 :
140 : [number] "{r7}" (1),139 : [number] "{r7}" (1),
141 [arg1] "{r0}" (code),140 [arg1] "{r0}" (code),
142 : "memory"141 : .{ .memory = true });
143 );
144 },142 },
145 .aarch64 => {143 .aarch64 => {
146 asm volatile ("svc #0"144 asm volatile ("svc #0"
147 :145 :
148 : [number] "{x8}" (93),146 : [number] "{x8}" (93),
149 [arg1] "{x0}" (code),147 [arg1] "{x0}" (code),
150 : "memory", "cc"148 : .{ .memory = true, .cc = true });
151 );
152 },149 },
153 .sparc64 => {150 .sparc64 => {
154 asm volatile ("ta 0x6d"151 asm volatile ("ta 0x6d"
155 :152 :
156 : [number] "{g1}" (1),153 : [number] "{g1}" (1),
157 [arg1] "{o0}" (code),154 [arg1] "{o0}" (code),
158 : "o0", "o1", "o2", "o3", "o4", "o5", "o6", "o7", "memory"155 : .{ .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o6 = true, .o7 = true, .memory = true });
159 );
160 },156 },
161 else => @compileError("TODO"),157 else => @compileError("TODO"),
162 },158 },
lib/std/valgrind.zig+10-20
...@@ -17,8 +17,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -17,8 +17,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
17 : [_] "={r3}" (-> usize),17 : [_] "={r3}" (-> usize),
18 : [_] "{r4}" (args),18 : [_] "{r4}" (args),
19 [_] "{r3}" (default),19 [_] "{r3}" (default),
20 : "cc", "memory"20 : .{ .cc = true, .memory = true }),
21 ),
22 .aarch64, .aarch64_be => asm volatile (21 .aarch64, .aarch64_be => asm volatile (
23 \\ ror x12, x12, #3 ; ror x12, x12, #1322 \\ ror x12, x12, #3 ; ror x12, x12, #13
24 \\ ror x12, x12, #51 ; ror x12, x12, #6123 \\ ror x12, x12, #51 ; ror x12, x12, #61
...@@ -26,8 +25,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -26,8 +25,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
26 : [_] "={x3}" (-> usize),25 : [_] "={x3}" (-> usize),
27 : [_] "{x4}" (args),26 : [_] "{x4}" (args),
28 [_] "{x3}" (default),27 [_] "{x3}" (default),
29 : "cc", "memory"28 : .{ .cc = true, .memory = true }),
30 ),
31 .mips, .mipsel => asm volatile (29 .mips, .mipsel => asm volatile (
32 \\ srl $0, $0, 1330 \\ srl $0, $0, 13
33 \\ srl $0, $0, 2931 \\ srl $0, $0, 29
...@@ -37,8 +35,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -37,8 +35,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
37 : [_] "={$11}" (-> usize),35 : [_] "={$11}" (-> usize),
38 : [_] "{$12}" (args),36 : [_] "{$12}" (args),
39 [_] "{$11}" (default),37 [_] "{$11}" (default),
40 : "memory"38 : .{ .memory = true }),
41 ),
42 .mips64, .mips64el => asm volatile (39 .mips64, .mips64el => asm volatile (
43 \\ dsll $0, $0, 3 ; dsll $0, $0, 1340 \\ dsll $0, $0, 3 ; dsll $0, $0, 13
44 \\ dsll $0, $0, 29 ; dsll $0, $0, 1941 \\ dsll $0, $0, 29 ; dsll $0, $0, 19
...@@ -46,8 +43,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -46,8 +43,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
46 : [_] "={$11}" (-> usize),43 : [_] "={$11}" (-> usize),
47 : [_] "{$12}" (args),44 : [_] "{$12}" (args),
48 [_] "{$11}" (default),45 [_] "{$11}" (default),
49 : "memory"46 : .{ .memory = true }),
50 ),
51 .powerpc, .powerpcle => asm volatile (47 .powerpc, .powerpcle => asm volatile (
52 \\ rlwinm 0, 0, 3, 0, 31 ; rlwinm 0, 0, 13, 0, 3148 \\ rlwinm 0, 0, 3, 0, 31 ; rlwinm 0, 0, 13, 0, 31
53 \\ rlwinm 0, 0, 29, 0, 31 ; rlwinm 0, 0, 19, 0, 3149 \\ rlwinm 0, 0, 29, 0, 31 ; rlwinm 0, 0, 19, 0, 31
...@@ -55,8 +51,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -55,8 +51,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
55 : [_] "={r3}" (-> usize),51 : [_] "={r3}" (-> usize),
56 : [_] "{r4}" (args),52 : [_] "{r4}" (args),
57 [_] "{r3}" (default),53 [_] "{r3}" (default),
58 : "cc", "memory"54 : .{ .cc = true, .memory = true }),
59 ),
60 .powerpc64, .powerpc64le => asm volatile (55 .powerpc64, .powerpc64le => asm volatile (
61 \\ rotldi 0, 0, 3 ; rotldi 0, 0, 1356 \\ rotldi 0, 0, 3 ; rotldi 0, 0, 13
62 \\ rotldi 0, 0, 61 ; rotldi 0, 0, 5157 \\ rotldi 0, 0, 61 ; rotldi 0, 0, 51
...@@ -64,8 +59,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -64,8 +59,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
64 : [_] "={r3}" (-> usize),59 : [_] "={r3}" (-> usize),
65 : [_] "{r4}" (args),60 : [_] "{r4}" (args),
66 [_] "{r3}" (default),61 [_] "{r3}" (default),
67 : "cc", "memory"62 : .{ .cc = true, .memory = true }),
68 ),
69 .riscv64 => asm volatile (63 .riscv64 => asm volatile (
70 \\ .option push64 \\ .option push
71 \\ .option norvc65 \\ .option norvc
...@@ -78,8 +72,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -78,8 +72,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
78 : [_] "={a3}" (-> usize),72 : [_] "={a3}" (-> usize),
79 : [_] "{a4}" (args),73 : [_] "{a4}" (args),
80 [_] "{a3}" (default),74 [_] "{a3}" (default),
81 : "cc", "memory"75 : .{ .cc = true, .memory = true }),
82 ),
83 .s390x => asm volatile (76 .s390x => asm volatile (
84 \\ lr %%r15, %%r1577 \\ lr %%r15, %%r15
85 \\ lr %%r1, %%r178 \\ lr %%r1, %%r1
...@@ -89,8 +82,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -89,8 +82,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
89 : [_] "={r3}" (-> usize),82 : [_] "={r3}" (-> usize),
90 : [_] "{r2}" (args),83 : [_] "{r2}" (args),
91 [_] "{r3}" (default),84 [_] "{r3}" (default),
92 : "cc", "memory"85 : .{ .cc = true, .memory = true }),
93 ),
94 .x86 => asm volatile (86 .x86 => asm volatile (
95 \\ roll $3, %%edi ; roll $13, %%edi87 \\ roll $3, %%edi ; roll $13, %%edi
96 \\ roll $29, %%edi ; roll $19, %%edi88 \\ roll $29, %%edi ; roll $19, %%edi
...@@ -98,8 +90,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -98,8 +90,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
98 : [_] "={edx}" (-> usize),90 : [_] "={edx}" (-> usize),
99 : [_] "{eax}" (args),91 : [_] "{eax}" (args),
100 [_] "{edx}" (default),92 [_] "{edx}" (default),
101 : "cc", "memory"93 : .{ .cc = true, .memory = true }),
102 ),
103 .x86_64 => asm volatile (94 .x86_64 => asm volatile (
104 \\ rolq $3, %%rdi ; rolq $13, %%rdi95 \\ rolq $3, %%rdi ; rolq $13, %%rdi
105 \\ rolq $61, %%rdi ; rolq $51, %%rdi96 \\ rolq $61, %%rdi ; rolq $51, %%rdi
...@@ -107,8 +98,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:...@@ -107,8 +98,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
107 : [_] "={rdx}" (-> usize),98 : [_] "={rdx}" (-> usize),
108 : [_] "{rax}" (args),99 : [_] "{rax}" (args),
109 [_] "{rdx}" (default),100 [_] "{rdx}" (default),
110 : "cc", "memory"101 : .{ .cc = true, .memory = true }),
111 ),
112 else => default,102 else => default,
113 };103 };
114}104}
lib/std/zig/render.zig+4-2
...@@ -2400,6 +2400,7 @@ fn renderAsmLegacy(...@@ -2400,6 +2400,7 @@ fn renderAsmLegacy(
2400 while (true) : (tok_i += 1) {2400 while (true) : (tok_i += 1) {
2401 try ais.writer().writeAll(".@");2401 try ais.writer().writeAll(".@");
2402 try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));2402 try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));
2403 try ais.writer().writeAll(" = true");
24032404
2404 tok_i += 1;2405 tok_i += 1;
2405 switch (tree.tokenTag(tok_i)) {2406 switch (tree.tokenTag(tok_i)) {
...@@ -2514,7 +2515,7 @@ fn renderAsmLegacy(...@@ -2514,7 +2515,7 @@ fn renderAsmLegacy(
2514 try ais.writer().writeAll(".@");2515 try ais.writer().writeAll(".@");
2515 const lexeme = tokenSliceForRender(tree, tok_i);2516 const lexeme = tokenSliceForRender(tree, tok_i);
2516 try ais.writer().writeAll(lexeme);2517 try ais.writer().writeAll(lexeme);
2517 try ais.writer().writeAll(" }");2518 try ais.writer().writeAll(" = true }");
2518 try renderSpace(r, tok_i, lexeme.len, .newline);2519 try renderSpace(r, tok_i, lexeme.len, .newline);
2519 ais.popIndent();2520 ais.popIndent();
2520 return renderToken(r, tok_i + 1, space);2521 return renderToken(r, tok_i + 1, space);
...@@ -2526,7 +2527,7 @@ fn renderAsmLegacy(...@@ -2526,7 +2527,7 @@ fn renderAsmLegacy(
2526 try ais.writer().writeAll(".@");2527 try ais.writer().writeAll(".@");
2527 const lexeme = tokenSliceForRender(tree, tok_i);2528 const lexeme = tokenSliceForRender(tree, tok_i);
2528 try ais.writer().writeAll(lexeme);2529 try ais.writer().writeAll(lexeme);
2529 try ais.writer().writeAll(" }");2530 try ais.writer().writeAll(" = true }");
2530 try renderSpace(r, tok_i, lexeme.len, .newline);2531 try renderSpace(r, tok_i, lexeme.len, .newline);
2531 ais.popIndent();2532 ais.popIndent();
2532 return renderToken(r, tok_i + 2, space);2533 return renderToken(r, tok_i + 2, space);
...@@ -2534,6 +2535,7 @@ fn renderAsmLegacy(...@@ -2534,6 +2535,7 @@ fn renderAsmLegacy(
2534 else => {2535 else => {
2535 try ais.writer().writeAll(".@");2536 try ais.writer().writeAll(".@");
2536 try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));2537 try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));
2538 try ais.writer().writeAll(" = true");
2537 try renderToken(r, tok_i + 1, .space);2539 try renderToken(r, tok_i + 1, .space);
2538 tok_i += 2;2540 tok_i += 2;
2539 },2541 },
lib/std/zig/system/x86.zig+1-2
...@@ -783,6 +783,5 @@ fn getXCR0() u32 {...@@ -783,6 +783,5 @@ fn getXCR0() u32 {
783 \\ xgetbv783 \\ xgetbv
784 : [_] "={eax}" (-> u32),784 : [_] "={eax}" (-> u32),
785 :785 :
786 : "edx", "ecx"786 : .{ .edx = true, .ecx = true });
787 );
788}787}
test/behavior/asm.zig+3-15
...@@ -55,13 +55,11 @@ test "output constraint modifiers" {...@@ -55,13 +55,11 @@ test "output constraint modifiers" {
55 asm volatile (""55 asm volatile (""
56 : [_] "=m,r" (a),56 : [_] "=m,r" (a),
57 :57 :
58 : ""58 : .{});
59 );
60 asm volatile (""59 asm volatile (""
61 : [_] "=r,m" (a),60 : [_] "=r,m" (a),
62 :61 :
63 : ""62 : .{});
64 );
65}63}
6664
67test "alternative constraints" {65test "alternative constraints" {
...@@ -79,7 +77,6 @@ test "alternative constraints" {...@@ -79,7 +77,6 @@ test "alternative constraints" {
79 asm volatile (""77 asm volatile (""
80 : [_] "=r,m" (a),78 : [_] "=r,m" (a),
81 : [_] "r,m" (a),79 : [_] "r,m" (a),
82 : ""
83 );80 );
84}81}
8582
...@@ -96,42 +93,34 @@ test "sized integer/float in asm input" {...@@ -96,42 +93,34 @@ test "sized integer/float in asm input" {
96 asm volatile (""93 asm volatile (""
97 :94 :
98 : [_] "m" (@as(usize, 3)),95 : [_] "m" (@as(usize, 3)),
99 : ""
100 );96 );
101 asm volatile (""97 asm volatile (""
102 :98 :
103 : [_] "m" (@as(i15, -3)),99 : [_] "m" (@as(i15, -3)),
104 : ""
105 );100 );
106 asm volatile (""101 asm volatile (""
107 :102 :
108 : [_] "m" (@as(u3, 3)),103 : [_] "m" (@as(u3, 3)),
109 : ""
110 );104 );
111 asm volatile (""105 asm volatile (""
112 :106 :
113 : [_] "m" (@as(i3, 3)),107 : [_] "m" (@as(i3, 3)),
114 : ""
115 );108 );
116 asm volatile (""109 asm volatile (""
117 :110 :
118 : [_] "m" (@as(u121, 3)),111 : [_] "m" (@as(u121, 3)),
119 : ""
120 );112 );
121 asm volatile (""113 asm volatile (""
122 :114 :
123 : [_] "m" (@as(i121, 3)),115 : [_] "m" (@as(i121, 3)),
124 : ""
125 );116 );
126 asm volatile (""117 asm volatile (""
127 :118 :
128 : [_] "m" (@as(f32, 3.17)),119 : [_] "m" (@as(f32, 3.17)),
129 : ""
130 );120 );
131 asm volatile (""121 asm volatile (""
132 :122 :
133 : [_] "m" (@as(f64, 3.17)),123 : [_] "m" (@as(f64, 3.17)),
134 : ""
135 );124 );
136}125}
137126
...@@ -172,8 +161,7 @@ test "rw constraint (x86_64)" {...@@ -172,8 +161,7 @@ test "rw constraint (x86_64)" {
172 asm ("addl %[b], %[a]"161 asm ("addl %[b], %[a]"
173 : [a] "+r" (res),162 : [a] "+r" (res),
174 : [b] "r" (@as(i32, 13)),163 : [b] "r" (@as(i32, 13)),
175 : "flags"164 : .{ .flags = true });
176 );
177 try expectEqual(@as(i32, 18), res);165 try expectEqual(@as(i32, 18), res);
178}166}
179167
test/cases/llvm/f_segment_address_space_reading_and_writing.zig+2-2
...@@ -9,7 +9,7 @@ fn setFs(value: c_ulong) void {...@@ -9,7 +9,7 @@ fn setFs(value: c_ulong) void {
9 : [number] "{rax}" (158),9 : [number] "{rax}" (158),
10 [code] "{rdi}" (0x1002),10 [code] "{rdi}" (0x1002),
11 [val] "{rsi}" (value),11 [val] "{rsi}" (value),
12 : "rcx", "r11", "memory"12 : .{ .rcx = true, .r11 = true, .memory = true }
13 );13 );
14}14}
1515
...@@ -21,7 +21,7 @@ fn getFs() c_ulong {...@@ -21,7 +21,7 @@ fn getFs() c_ulong {
21 : [number] "{rax}" (158),21 : [number] "{rax}" (158),
22 [code] "{rdi}" (0x1003),22 [code] "{rdi}" (0x1003),
23 [ptr] "{rsi}" (@intFromPtr(&result)),23 [ptr] "{rsi}" (@intFromPtr(&result)),
24 : "rcx", "r11", "memory"24 : .{ .rcx = true, .r11 = true, .memory = true }
25 );25 );
26 return result;26 return result;
27}27}
test/standalone/stack_iterator/unwind.zig+4-4
...@@ -31,7 +31,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {...@@ -31,7 +31,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
31 \\movl $7, %%edi31 \\movl $7, %%edi
32 \\movl $6, %%esi32 \\movl $6, %%esi
33 \\movl $5, %%ebp33 \\movl $5, %%ebp
34 ::: "ebx", "ecx", "edx", "edi", "esi", "ebp");34 ::: .{ .ebx = true, .ecx = true, .edx = true, .edi = true, .esi = true, .ebp = true });
35 } else {35 } else {
36 asm volatile (36 asm volatile (
37 \\movl $3, %%ebx37 \\movl $3, %%ebx
...@@ -39,7 +39,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {...@@ -39,7 +39,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
39 \\movl $2, %%edx39 \\movl $2, %%edx
40 \\movl $7, %%edi40 \\movl $7, %%edi
41 \\movl $6, %%esi41 \\movl $6, %%esi
42 ::: "ebx", "ecx", "edx", "edi", "esi");42 ::: .{ .ebx = true, .ecx = true, .edx = true, .edi = true, .esi = true });
43 }43 }
44 },44 },
45 .x86_64 => {45 .x86_64 => {
...@@ -51,7 +51,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {...@@ -51,7 +51,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
51 \\movq $14, %%r1451 \\movq $14, %%r14
52 \\movq $15, %%r1552 \\movq $15, %%r15
53 \\movq $6, %%rbp53 \\movq $6, %%rbp
54 ::: "rbx", "r12", "r13", "r14", "r15", "rbp");54 ::: .{ .rbx = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .rbp = true });
55 } else {55 } else {
56 asm volatile (56 asm volatile (
57 \\movq $3, %%rbx57 \\movq $3, %%rbx
...@@ -59,7 +59,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {...@@ -59,7 +59,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
59 \\movq $13, %%r1359 \\movq $13, %%r13
60 \\movq $14, %%r1460 \\movq $14, %%r14
61 \\movq $15, %%r1561 \\movq $15, %%r15
62 ::: "rbx", "r12", "r13", "r14", "r15");62 ::: .{ .rbx = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true });
63 }63 }
64 },64 },
65 else => {},65 else => {},
test/standalone/stack_iterator/unwind_freestanding.zig+1-2
...@@ -58,8 +58,7 @@ export fn _start() callconv(.c) noreturn {...@@ -58,8 +58,7 @@ export fn _start() callconv(.c) noreturn {
58 \\syscall58 \\syscall
59 :59 :
60 : [missed] "{edi}" (missed),60 : [missed] "{edi}" (missed),
61 : "edi", "eax"61 : .{ .edi = true, .eax = true });
62 );
6362
64 while (true) {} // unreached63 while (true) {} // unreached
65}64}