Commit 76d04c1662
Changed files (36)
lib
std
crypto
debug
os
zig
system
test
behavior
standalone
stack_iterator
lib/compiler_rt/aarch64_outline_atomics.zig
@@ -28,8 +28,7 @@ fn __aarch64_cas1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp1_relax() align(16) callconv(.naked) void {
@@ -48,8 +47,7 @@ fn __aarch64_swp1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {
@@ -69,8 +67,7 @@ fn __aarch64_ldadd1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {
@@ -90,8 +87,7 @@ fn __aarch64_ldclr1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {
@@ -111,8 +107,7 @@ fn __aarch64_ldeor1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {
@@ -132,8 +127,7 @@ fn __aarch64_ldset1_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas1_acq() align(16) callconv(.naked) void {
@@ -154,8 +148,7 @@ fn __aarch64_cas1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp1_acq() align(16) callconv(.naked) void {
@@ -174,8 +167,7 @@ fn __aarch64_swp1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {
@@ -195,8 +187,7 @@ fn __aarch64_ldadd1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {
@@ -216,8 +207,7 @@ fn __aarch64_ldclr1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {
@@ -237,8 +227,7 @@ fn __aarch64_ldeor1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {
@@ -258,8 +247,7 @@ fn __aarch64_ldset1_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas1_rel() align(16) callconv(.naked) void {
@@ -280,8 +268,7 @@ fn __aarch64_cas1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp1_rel() align(16) callconv(.naked) void {
@@ -300,8 +287,7 @@ fn __aarch64_swp1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {
@@ -321,8 +307,7 @@ fn __aarch64_ldadd1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {
@@ -342,8 +327,7 @@ fn __aarch64_ldclr1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {
@@ -363,8 +347,7 @@ fn __aarch64_ldeor1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {
@@ -384,8 +367,7 @@ fn __aarch64_ldset1_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {
@@ -406,8 +388,7 @@ fn __aarch64_cas1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {
@@ -426,8 +407,7 @@ fn __aarch64_swp1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {
@@ -447,8 +427,7 @@ fn __aarch64_ldadd1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {
@@ -468,8 +447,7 @@ fn __aarch64_ldclr1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {
@@ -489,8 +467,7 @@ fn __aarch64_ldeor1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {
@@ -510,8 +487,7 @@ fn __aarch64_ldset1_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas2_relax() align(16) callconv(.naked) void {
@@ -532,8 +508,7 @@ fn __aarch64_cas2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp2_relax() align(16) callconv(.naked) void {
@@ -552,8 +527,7 @@ fn __aarch64_swp2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {
@@ -573,8 +547,7 @@ fn __aarch64_ldadd2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {
@@ -594,8 +567,7 @@ fn __aarch64_ldclr2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {
@@ -615,8 +587,7 @@ fn __aarch64_ldeor2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {
@@ -636,8 +607,7 @@ fn __aarch64_ldset2_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas2_acq() align(16) callconv(.naked) void {
@@ -658,8 +628,7 @@ fn __aarch64_cas2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp2_acq() align(16) callconv(.naked) void {
@@ -678,8 +647,7 @@ fn __aarch64_swp2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {
@@ -699,8 +667,7 @@ fn __aarch64_ldadd2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {
@@ -720,8 +687,7 @@ fn __aarch64_ldclr2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {
@@ -741,8 +707,7 @@ fn __aarch64_ldeor2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {
@@ -762,8 +727,7 @@ fn __aarch64_ldset2_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas2_rel() align(16) callconv(.naked) void {
@@ -784,8 +748,7 @@ fn __aarch64_cas2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp2_rel() align(16) callconv(.naked) void {
@@ -804,8 +767,7 @@ fn __aarch64_swp2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {
@@ -825,8 +787,7 @@ fn __aarch64_ldadd2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {
@@ -846,8 +807,7 @@ fn __aarch64_ldclr2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {
@@ -867,8 +827,7 @@ fn __aarch64_ldeor2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {
@@ -888,8 +847,7 @@ fn __aarch64_ldset2_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {
@@ -910,8 +868,7 @@ fn __aarch64_cas2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {
@@ -930,8 +887,7 @@ fn __aarch64_swp2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {
@@ -951,8 +907,7 @@ fn __aarch64_ldadd2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {
@@ -972,8 +927,7 @@ fn __aarch64_ldclr2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {
@@ -993,8 +947,7 @@ fn __aarch64_ldeor2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {
@@ -1014,8 +967,7 @@ fn __aarch64_ldset2_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas4_relax() align(16) callconv(.naked) void {
@@ -1036,8 +988,7 @@ fn __aarch64_cas4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp4_relax() align(16) callconv(.naked) void {
@@ -1056,8 +1007,7 @@ fn __aarch64_swp4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {
@@ -1077,8 +1027,7 @@ fn __aarch64_ldadd4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {
@@ -1098,8 +1047,7 @@ fn __aarch64_ldclr4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {
@@ -1119,8 +1067,7 @@ fn __aarch64_ldeor4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {
@@ -1140,8 +1087,7 @@ fn __aarch64_ldset4_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas4_acq() align(16) callconv(.naked) void {
@@ -1162,8 +1108,7 @@ fn __aarch64_cas4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp4_acq() align(16) callconv(.naked) void {
@@ -1182,8 +1127,7 @@ fn __aarch64_swp4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {
@@ -1203,8 +1147,7 @@ fn __aarch64_ldadd4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {
@@ -1224,8 +1167,7 @@ fn __aarch64_ldclr4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {
@@ -1245,8 +1187,7 @@ fn __aarch64_ldeor4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {
@@ -1266,8 +1207,7 @@ fn __aarch64_ldset4_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas4_rel() align(16) callconv(.naked) void {
@@ -1288,8 +1228,7 @@ fn __aarch64_cas4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp4_rel() align(16) callconv(.naked) void {
@@ -1308,8 +1247,7 @@ fn __aarch64_swp4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {
@@ -1329,8 +1267,7 @@ fn __aarch64_ldadd4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {
@@ -1350,8 +1287,7 @@ fn __aarch64_ldclr4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {
@@ -1371,8 +1307,7 @@ fn __aarch64_ldeor4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {
@@ -1392,8 +1327,7 @@ fn __aarch64_ldset4_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {
@@ -1414,8 +1348,7 @@ fn __aarch64_cas4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {
@@ -1434,8 +1367,7 @@ fn __aarch64_swp4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {
@@ -1455,8 +1387,7 @@ fn __aarch64_ldadd4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {
@@ -1476,8 +1407,7 @@ fn __aarch64_ldclr4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {
@@ -1497,8 +1427,7 @@ fn __aarch64_ldeor4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {
@@ -1518,8 +1447,7 @@ fn __aarch64_ldset4_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas8_relax() align(16) callconv(.naked) void {
@@ -1540,8 +1468,7 @@ fn __aarch64_cas8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp8_relax() align(16) callconv(.naked) void {
@@ -1560,8 +1487,7 @@ fn __aarch64_swp8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {
@@ -1581,8 +1507,7 @@ fn __aarch64_ldadd8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {
@@ -1602,8 +1527,7 @@ fn __aarch64_ldclr8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {
@@ -1623,8 +1547,7 @@ fn __aarch64_ldeor8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {
@@ -1644,8 +1567,7 @@ fn __aarch64_ldset8_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas8_acq() align(16) callconv(.naked) void {
@@ -1666,8 +1588,7 @@ fn __aarch64_cas8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp8_acq() align(16) callconv(.naked) void {
@@ -1686,8 +1607,7 @@ fn __aarch64_swp8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {
@@ -1707,8 +1627,7 @@ fn __aarch64_ldadd8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {
@@ -1728,8 +1647,7 @@ fn __aarch64_ldclr8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {
@@ -1749,8 +1667,7 @@ fn __aarch64_ldeor8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {
@@ -1770,8 +1687,7 @@ fn __aarch64_ldset8_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas8_rel() align(16) callconv(.naked) void {
@@ -1792,8 +1708,7 @@ fn __aarch64_cas8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp8_rel() align(16) callconv(.naked) void {
@@ -1812,8 +1727,7 @@ fn __aarch64_swp8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {
@@ -1833,8 +1747,7 @@ fn __aarch64_ldadd8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {
@@ -1854,8 +1767,7 @@ fn __aarch64_ldclr8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {
@@ -1875,8 +1787,7 @@ fn __aarch64_ldeor8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {
@@ -1896,8 +1807,7 @@ fn __aarch64_ldset8_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {
@@ -1918,8 +1828,7 @@ fn __aarch64_cas8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {
@@ -1938,8 +1847,7 @@ fn __aarch64_swp8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {
@@ -1959,8 +1867,7 @@ fn __aarch64_ldadd8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {
@@ -1980,8 +1887,7 @@ fn __aarch64_ldclr8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {
@@ -2001,8 +1907,7 @@ fn __aarch64_ldeor8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {
@@ -2022,8 +1927,7 @@ fn __aarch64_ldset8_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas16_relax() align(16) callconv(.naked) void {
@@ -2046,8 +1950,7 @@ fn __aarch64_cas16_relax() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas16_acq() align(16) callconv(.naked) void {
@@ -2070,8 +1973,7 @@ fn __aarch64_cas16_acq() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas16_rel() align(16) callconv(.naked) void {
@@ -2094,8 +1996,7 @@ fn __aarch64_cas16_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {
@@ -2118,8 +2019,7 @@ fn __aarch64_cas16_acq_rel() align(16) callconv(.naked) void {
\\ ret
:
: [__aarch64_have_lse_atomics] "{w16}" (__aarch64_have_lse_atomics),
- : "w15", "w16", "w17", "memory"
- );
+ : .{ .w15 = true, .w16 = true, .w17 = true, .memory = true });
unreachable;
}
lib/compiler_rt/arm.zig
@@ -142,8 +142,7 @@ pub fn __aeabi_uidivmod() callconv(.naked) void {
\\ pop {pc}
:
: [__udivmodsi4] "X" (&__udivmodsi4),
- : "memory"
- );
+ : .{ .memory = true });
unreachable;
}
@@ -162,8 +161,7 @@ pub fn __aeabi_uldivmod() callconv(.naked) void {
\\ pop {r4, pc}
:
: [__udivmoddi4] "X" (&__udivmoddi4),
- : "memory"
- );
+ : .{ .memory = true });
unreachable;
}
@@ -180,8 +178,7 @@ pub fn __aeabi_idivmod() callconv(.naked) void {
\\ pop {pc}
:
: [__divmodsi4] "X" (&__divmodsi4),
- : "memory"
- );
+ : .{ .memory = true });
unreachable;
}
@@ -200,8 +197,7 @@ pub fn __aeabi_ldivmod() callconv(.naked) void {
\\ pop {r4, pc}
:
: [__divmoddi4] "X" (&__divmoddi4),
- : "memory"
- );
+ : .{ .memory = true });
unreachable;
}
lib/compiler_rt/atomics.zig
@@ -71,8 +71,7 @@ const SpinlockTable = struct {
break :flag asm volatile ("ldstub [%[addr]], %[flag]"
: [flag] "=r" (-> @TypeOf(self.v)),
: [addr] "r" (&self.v),
- : "memory"
- );
+ : .{ .memory = true });
} else flag: {
break :flag @atomicRmw(@TypeOf(self.v), &self.v, .Xchg, .Locked, .acquire);
};
@@ -88,8 +87,7 @@ const SpinlockTable = struct {
_ = asm volatile ("clrb [%[addr]]"
:
: [addr] "r" (&self.v),
- : "memory"
- );
+ : .{ .memory = true });
} else {
@atomicStore(@TypeOf(self.v), &self.v, .Unlocked, .release);
}
lib/compiler_rt/clear_cache.zig
@@ -103,8 +103,7 @@ fn clear_cache(start: usize, end: usize) callconv(.c) void {
: [_] "{$2}" (165), // nr = SYS_sysarch
[_] "{$4}" (0), // op = MIPS_CACHEFLUSH
[_] "{$5}" (&cfa), // args = &cfa
- : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
exportIt();
} else if (mips and os == .openbsd) {
// TODO
lib/std/crypto/sha2.zig
@@ -229,8 +229,7 @@ fn Sha2x32(comptime iv: Iv32, digest_bits: comptime_int) type {
: [_] "0" (x),
[_] "1" (y),
[w] "w" (w),
- : "v0"
- );
+ : .{ .v0 = true });
}
d.s[0..4].* = x +% @as(V4u32, d.s[0..4].*);
lib/std/debug/SelfInfo.zig
@@ -1547,8 +1547,7 @@ pub inline fn stripInstructionPtrAuthCode(ptr: usize) usize {
\\mov x30, x16
: [ret] "={x15}" (-> usize),
: [ptr] "{x15}" (ptr),
- : "x16"
- );
+ : .{ .x16 = true });
}
return ptr;
lib/std/os/linux/aarch64.zig
@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("svc #0"
: [ret] "={x0}" (-> usize),
: [number] "{x8}" (@intFromEnum(number)),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={x0}" (-> usize),
: [number] "{x8}" (@intFromEnum(number)),
[arg1] "{x0}" (arg1),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{x8}" (@intFromEnum(number)),
[arg1] "{x0}" (arg1),
[arg2] "{x1}" (arg2),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
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 {
[arg1] "{x0}" (arg1),
[arg2] "{x1}" (arg2),
[arg3] "{x2}" (arg3),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub 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)
[arg2] "{x1}" (arg2),
[arg3] "{x2}" (arg3),
[arg4] "{x3}" (arg4),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub 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,
[arg3] "{x2}" (arg3),
[arg4] "{x3}" (arg4),
[arg5] "{x4}" (arg5),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub fn syscall6(
@@ -95,8 +89,7 @@ pub fn syscall6(
[arg4] "{x3}" (arg4),
[arg5] "{x4}" (arg5),
[arg6] "{x5}" (arg6),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
}
pub fn clone() callconv(.naked) usize {
@@ -148,14 +141,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ svc #0
:
: [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory", "cc"
- ),
+ : .{ .memory = true, .cc = true }),
else => asm volatile (
\\ svc #0
:
: [number] "{x8}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory", "cc"
- ),
+ : .{ .memory = true, .cc = true }),
}
}
lib/std/os/linux/arm.zig
@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("svc #0"
: [ret] "={r0}" (-> usize),
: [number] "{r7}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r0}" (-> usize),
: [number] "{r7}" (@intFromEnum(number)),
[arg1] "{r0}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{r7}" (@intFromEnum(number)),
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -94,8 +88,7 @@ pub fn syscall6(
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
[arg6] "{r5}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -141,14 +134,12 @@ pub fn restore() callconv(.naked) noreturn {
\\ svc #0
:
: [number] "I" (@intFromEnum(SYS.sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
else => asm volatile (
\\ svc #0
:
: [number] "{r7}" (@intFromEnum(SYS.sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
}
}
@@ -159,14 +150,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ svc #0
:
: [number] "I" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
else => asm volatile (
\\ svc #0
:
: [number] "{r7}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
}
}
lib/std/os/linux/hexagon.zig
@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("trap0(#1)"
: [ret] "={r0}" (-> usize),
: [number] "{r6}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r0}" (-> usize),
: [number] "{r6}" (@intFromEnum(number)),
[arg1] "{r0}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{r6}" (@intFromEnum(number)),
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -92,8 +86,7 @@ pub fn syscall6(
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
[arg6] "{r5}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -142,8 +135,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ trap0(#0)
:
: [number] "{r6}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const F = struct {
lib/std/os/linux/loongarch64.zig
@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
\\ syscall 0
: [ret] "={$r4}" (-> usize),
: [number] "{$r11}" (@intFromEnum(number)),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={$r4}" (-> usize),
: [number] "{$r11}" (@intFromEnum(number)),
[arg1] "{$r4}" (arg1),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -38,8 +36,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{$r11}" (@intFromEnum(number)),
[arg1] "{$r4}" (arg1),
[arg2] "{$r5}" (arg2),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
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 {
[arg1] "{$r4}" (arg1),
[arg2] "{$r5}" (arg2),
[arg3] "{$r6}" (arg3),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub 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)
[arg2] "{$r5}" (arg2),
[arg3] "{$r6}" (arg3),
[arg4] "{$r7}" (arg4),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub 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,
[arg3] "{$r6}" (arg3),
[arg4] "{$r7}" (arg4),
[arg5] "{$r8}" (arg5),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub fn syscall6(
@@ -100,8 +94,7 @@ pub fn syscall6(
[arg4] "{$r7}" (arg4),
[arg5] "{$r8}" (arg5),
[arg6] "{$r9}" (arg6),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -150,8 +143,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ syscall 0
:
: [number] "r" (@intFromEnum(SYS.rt_sigreturn)),
- : "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "memory"
- );
+ : .{ .@"$t0" = true, .@"$t1" = true, .@"$t2" = true, .@"$t3" = true, .@"$t4" = true, .@"$t5" = true, .@"$t6" = true, .@"$t7" = true, .@"$t8" = true, .memory = true });
}
pub const msghdr = extern struct {
lib/std/os/linux/m68k.zig
@@ -15,8 +15,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("trap #0"
: [ret] "={d0}" (-> usize),
: [number] "{d0}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -24,8 +23,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={d0}" (-> usize),
: [number] "{d0}" (@intFromEnum(number)),
[arg1] "{d1}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -34,8 +32,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{d0}" (@intFromEnum(number)),
[arg1] "{d1}" (arg1),
[arg2] "{d2}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{d1}" (arg1),
[arg2] "{d2}" (arg2),
[arg3] "{d3}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{d2}" (arg2),
[arg3] "{d3}" (arg3),
[arg4] "{d4}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{d3}" (arg3),
[arg4] "{d4}" (arg4),
[arg5] "{d5}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -92,8 +86,7 @@ pub fn syscall6(
[arg4] "{d4}" (arg4),
[arg5] "{d5}" (arg5),
[arg6] "{a0}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -155,8 +148,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
asm volatile ("trap #0"
:
: [number] "{d0}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const F = struct {
lib/std/os/linux/mips.zig
@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {
\\ 1:
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(number)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall_pipe(fd: *[2]i32) usize {
@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(SYS.pipe)),
[fd] "{$4}" (fd),
- : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -55,8 +53,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(number)),
[arg1] "{$4}" (arg1),
- : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -70,8 +67,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{$2}" (@intFromEnum(number)),
[arg1] "{$4}" (arg1),
[arg2] "{$5}" (arg2),
- : "$1", "$3", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
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 {
[arg1] "{$4}" (arg1),
[arg2] "{$5}" (arg2),
[arg3] "{$6}" (arg3),
- : "$1", "$3", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub 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)
[arg2] "{$5}" (arg2),
[arg3] "{$6}" (arg3),
[arg4] "{$7}" (arg4),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub 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,
[arg3] "{$6}" (arg3),
[arg4] "{$7}" (arg4),
[arg5] "r" (arg5),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
// NOTE: The o32 calling convention requires the callee to reserve 16 bytes for
@@ -160,8 +153,7 @@ pub fn syscall6(
[arg4] "{$7}" (arg4),
[arg5] "r" (arg5),
[arg6] "r" (arg6),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall7(
@@ -195,8 +187,7 @@ pub fn syscall7(
[arg5] "r" (arg5),
[arg6] "r" (arg6),
[arg7] "r" (arg7),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn clone() callconv(.naked) usize {
@@ -255,8 +246,7 @@ pub fn restore() callconv(.naked) noreturn {
\\ syscall
:
: [number] "{$2}" (@intFromEnum(SYS.sigreturn)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn restore_rt() callconv(.naked) noreturn {
@@ -264,8 +254,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ syscall
:
: [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub const F = struct {
lib/std/os/linux/mips64.zig
@@ -21,8 +21,7 @@ pub fn syscall0(number: SYS) usize {
\\ 1:
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(number)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall_pipe(fd: *[2]i32) usize {
@@ -41,8 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(SYS.pipe)),
[fd] "{$4}" (fd),
- : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -56,8 +54,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={$2}" (-> usize),
: [number] "{$2}" (@intFromEnum(number)),
[arg1] "{$4}" (arg1),
- : "$1", "$3", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -71,8 +68,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{$2}" (@intFromEnum(number)),
[arg1] "{$4}" (arg1),
[arg2] "{$5}" (arg2),
- : "$1", "$3", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
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 {
[arg1] "{$4}" (arg1),
[arg2] "{$5}" (arg2),
[arg3] "{$6}" (arg3),
- : "$1", "$3", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub 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)
[arg2] "{$5}" (arg2),
[arg3] "{$6}" (arg3),
[arg4] "{$7}" (arg4),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub 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,
[arg3] "{$6}" (arg3),
[arg4] "{$7}" (arg4),
[arg5] "{$8}" (arg5),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall6(
@@ -149,8 +142,7 @@ pub fn syscall6(
[arg4] "{$7}" (arg4),
[arg5] "{$8}" (arg5),
[arg6] "{$9}" (arg6),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn syscall7(
@@ -178,8 +170,7 @@ pub fn syscall7(
[arg5] "{$8}" (arg5),
[arg6] "{$9}" (arg6),
[arg7] "{$10}" (arg7),
- : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn clone() callconv(.naked) usize {
@@ -234,8 +225,7 @@ pub fn restore() callconv(.naked) noreturn {
\\ syscall
:
: [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub fn restore_rt() callconv(.naked) noreturn {
@@ -243,8 +233,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ syscall
:
: [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
- : "$1", "$3", "$4", "$5", "$6", "$7", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", "$25", "hi", "lo", "memory"
- );
+ : .{ .@"$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 });
}
pub const F = struct {
lib/std/os/linux/powerpc.zig
@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {
\\ 1:
: [ret] "={r3}" (-> usize),
: [number] "{r0}" (@intFromEnum(number)),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r3}" (-> usize),
: [number] "{r0}" (@intFromEnum(number)),
[arg1] "{r3}" (arg1),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{r0}" (@intFromEnum(number)),
[arg1] "{r3}" (arg1),
[arg2] "{r4}" (arg2),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
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 {
[arg1] "{r3}" (arg1),
[arg2] "{r4}" (arg2),
[arg3] "{r5}" (arg3),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub 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)
[arg2] "{r4}" (arg2),
[arg3] "{r5}" (arg3),
[arg4] "{r6}" (arg4),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub 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,
[arg3] "{r5}" (arg3),
[arg4] "{r6}" (arg4),
[arg5] "{r7}" (arg5),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall6(
@@ -123,8 +117,7 @@ pub fn syscall6(
[arg4] "{r6}" (arg4),
[arg5] "{r7}" (arg5),
[arg6] "{r8}" (arg6),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn clone() callconv(.naked) usize {
@@ -204,8 +197,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ sc
:
: [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory", "cr0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub const F = struct {
lib/std/os/linux/powerpc64.zig
@@ -22,8 +22,7 @@ pub fn syscall0(number: SYS) usize {
\\ 1:
: [ret] "={r3}" (-> usize),
: [number] "{r0}" (@intFromEnum(number)),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -35,8 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r3}" (-> usize),
: [number] "{r0}" (@intFromEnum(number)),
[arg1] "{r3}" (arg1),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -49,8 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{r0}" (@intFromEnum(number)),
[arg1] "{r3}" (arg1),
[arg2] "{r4}" (arg2),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
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 {
[arg1] "{r3}" (arg1),
[arg2] "{r4}" (arg2),
[arg3] "{r5}" (arg3),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub 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)
[arg2] "{r4}" (arg2),
[arg3] "{r5}" (arg3),
[arg4] "{r6}" (arg4),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub 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,
[arg3] "{r5}" (arg3),
[arg4] "{r6}" (arg4),
[arg5] "{r7}" (arg5),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn syscall6(
@@ -123,8 +117,7 @@ pub fn syscall6(
[arg4] "{r6}" (arg4),
[arg5] "{r7}" (arg5),
[arg6] "{r8}" (arg6),
- : "memory", "cr0", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub fn clone() callconv(.naked) usize {
@@ -189,8 +182,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ sc
:
: [number] "{r0}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory", "cr0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
- );
+ : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
}
pub const F = struct {
lib/std/os/linux/riscv32.zig
@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("ecall"
: [ret] "={x10}" (-> usize),
: [number] "{x17}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={x10}" (-> usize),
: [number] "{x17}" (@intFromEnum(number)),
[arg1] "{x10}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{x17}" (@intFromEnum(number)),
[arg1] "{x10}" (arg1),
[arg2] "{x11}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{x10}" (arg1),
[arg2] "{x11}" (arg2),
[arg3] "{x12}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{x11}" (arg2),
[arg3] "{x12}" (arg3),
[arg4] "{x13}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{x12}" (arg3),
[arg4] "{x13}" (arg4),
[arg5] "{x14}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -94,8 +88,7 @@ pub fn syscall6(
[arg4] "{x13}" (arg4),
[arg5] "{x14}" (arg5),
[arg6] "{x15}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ ecall
:
: [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const F = struct {
lib/std/os/linux/riscv64.zig
@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("ecall"
: [ret] "={x10}" (-> usize),
: [number] "{x17}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={x10}" (-> usize),
: [number] "{x17}" (@intFromEnum(number)),
[arg1] "{x10}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{x17}" (@intFromEnum(number)),
[arg1] "{x10}" (arg1),
[arg2] "{x11}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{x10}" (arg1),
[arg2] "{x11}" (arg2),
[arg3] "{x12}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{x11}" (arg2),
[arg3] "{x12}" (arg3),
[arg4] "{x13}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{x12}" (arg3),
[arg4] "{x13}" (arg4),
[arg5] "{x14}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -94,8 +88,7 @@ pub fn syscall6(
[arg4] "{x13}" (arg4),
[arg5] "{x14}" (arg5),
[arg6] "{x15}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -149,8 +142,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ ecall
:
: [number] "{x17}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const F = struct {
lib/std/os/linux/s390x.zig
@@ -17,8 +17,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("svc 0"
: [ret] "={r2}" (-> usize),
: [number] "{r1}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -26,8 +25,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r2}" (-> usize),
: [number] "{r1}" (@intFromEnum(number)),
[arg1] "{r2}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -36,8 +34,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{r1}" (@intFromEnum(number)),
[arg1] "{r2}" (arg1),
[arg2] "{r3}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{r2}" (arg1),
[arg2] "{r3}" (arg2),
[arg3] "{r4}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{r3}" (arg2),
[arg3] "{r4}" (arg3),
[arg4] "{r5}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{r4}" (arg3),
[arg4] "{r5}" (arg4),
[arg5] "{r6}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg4] "{r5}" (arg4),
[arg5] "{r6}" (arg5),
[arg6] "{r7}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -161,8 +154,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\svc 0
:
: [number] "{r1}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const F = struct {
lib/std/os/linux/sparc64.zig
@@ -32,8 +32,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
: [ret] "={o0}" (-> usize),
: [number] "{g1}" (@intFromEnum(SYS.pipe)),
[arg] "r" (fd),
- : "memory", "g3"
- );
+ : .{ .memory = true, .g3 = true });
}
pub fn syscall_fork() usize {
@@ -55,8 +54,7 @@ pub fn syscall_fork() usize {
\\ 2:
: [ret] "={o0}" (-> usize),
: [number] "{g1}" (@intFromEnum(SYS.fork)),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub fn syscall0(number: SYS) usize {
@@ -68,8 +66,7 @@ pub fn syscall0(number: SYS) usize {
\\ 1:
: [ret] "={o0}" (-> usize),
: [number] "{g1}" (@intFromEnum(number)),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -82,8 +79,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={o0}" (-> usize),
: [number] "{g1}" (@intFromEnum(number)),
[arg1] "{o0}" (arg1),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -97,8 +93,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{g1}" (@intFromEnum(number)),
[arg1] "{o0}" (arg1),
[arg2] "{o1}" (arg2),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
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 {
[arg1] "{o0}" (arg1),
[arg2] "{o1}" (arg2),
[arg3] "{o2}" (arg3),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub 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)
[arg2] "{o1}" (arg2),
[arg3] "{o2}" (arg3),
[arg4] "{o3}" (arg4),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub 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,
[arg3] "{o2}" (arg3),
[arg4] "{o3}" (arg4),
[arg5] "{o4}" (arg5),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub fn syscall6(
@@ -175,8 +167,7 @@ pub fn syscall6(
[arg4] "{o3}" (arg4),
[arg5] "{o4}" (arg5),
[arg6] "{o5}" (arg6),
- : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub fn clone() callconv(.naked) usize {
@@ -242,8 +233,7 @@ pub fn restore_rt() callconv(.c) void {
return asm volatile ("t 0x6d"
:
: [number] "{g1}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory", "xcc", "o0", "o1", "o2", "o3", "o4", "o5", "o7"
- );
+ : .{ .memory = true, .xcc = true, .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true });
}
pub const F = struct {
lib/std/os/linux/thumb.zig
@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
\\ ldr r7, [%[tmp], #4]
: [ret] "={r0}" (-> usize),
: [tmp] "{r1}" (&buf),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -34,8 +33,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={r0}" (-> usize),
: [tmp] "{r1}" (&buf),
[arg1] "{r0}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -51,8 +49,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [tmp] "{r2}" (&buf),
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{r0}" (arg1),
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{r1}" (arg2),
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{r2}" (arg3),
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -137,8 +131,7 @@ pub fn syscall6(
[arg4] "{r3}" (arg4),
[arg5] "{r4}" (arg5),
[arg6] "{r5}" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub const clone = @import("arm.zig").clone;
@@ -158,6 +151,5 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ svc #0
:
: [number] "I" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- );
+ : .{ .memory = true });
}
lib/std/os/linux/tls.zig
@@ -308,8 +308,7 @@ pub fn setThreadPointer(addr: usize) void {
\\ sar %%a0, %%r0
:
: [addr] "r" (addr),
- : "r0"
- );
+ : .{ .r0 = true });
},
.sparc, .sparc64 => {
asm volatile (
lib/std/os/linux/x86.zig
@@ -18,8 +18,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("int $0x80"
: [ret] "={eax}" (-> usize),
: [number] "{eax}" (@intFromEnum(number)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -27,8 +26,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={eax}" (-> usize),
: [number] "{eax}" (@intFromEnum(number)),
[arg1] "{ebx}" (arg1),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -37,8 +35,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{eax}" (@intFromEnum(number)),
[arg1] "{ebx}" (arg1),
[arg2] "{ecx}" (arg2),
- : "memory"
- );
+ : .{ .memory = true });
}
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 {
[arg1] "{ebx}" (arg1),
[arg2] "{ecx}" (arg2),
[arg3] "{edx}" (arg3),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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)
[arg2] "{ecx}" (arg2),
[arg3] "{edx}" (arg3),
[arg4] "{esi}" (arg4),
- : "memory"
- );
+ : .{ .memory = true });
}
pub 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,
[arg3] "{edx}" (arg3),
[arg4] "{esi}" (arg4),
[arg5] "{edi}" (arg5),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn syscall6(
@@ -108,8 +102,7 @@ pub fn syscall6(
[arg4] "{esi}" (arg4),
[arg5] "rm" (arg5),
[arg6] "rm" (arg6),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn socketcall(call: usize, args: [*]const usize) usize {
@@ -118,8 +111,7 @@ pub fn socketcall(call: usize, args: [*]const usize) usize {
: [number] "{eax}" (@intFromEnum(SYS.socketcall)),
[arg1] "{ebx}" (call),
[arg2] "{ecx}" (@intFromPtr(args)),
- : "memory"
- );
+ : .{ .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -179,14 +171,12 @@ pub fn restore() callconv(.naked) noreturn {
\\ int $0x80
:
: [number] "i" (@intFromEnum(SYS.sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
else => asm volatile (
\\ int $0x80
:
: [number] "{eax}" (@intFromEnum(SYS.sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
}
}
@@ -197,14 +187,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ int $0x80
:
: [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
else => asm volatile (
\\ int $0x80
:
: [number] "{eax}" (@intFromEnum(SYS.rt_sigreturn)),
- : "memory"
- ),
+ : .{ .memory = true }),
}
}
@@ -442,8 +430,7 @@ pub fn getContextInternal() callconv(.naked) usize {
[sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),
[sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),
[sigset_size] "i" (linux.NSIG / 8),
- : "cc", "memory", "eax", "ecx", "edx"
- );
+ : .{ .cc = true, .memory = true, .eax = true, .ecx = true, .edx = true });
}
pub inline fn getcontext(context: *ucontext_t) usize {
@@ -457,6 +444,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {
[_] "={edx}" (clobber_edx),
: [_] "{edx}" (context),
[getContextInternal] "X" (&getContextInternal),
- : "cc", "memory", "ecx"
- );
+ : .{ .cc = true, .memory = true, .ecx = true });
}
lib/std/os/linux/x86_64.zig
@@ -20,8 +20,7 @@ pub fn syscall0(number: SYS) usize {
return asm volatile ("syscall"
: [ret] "={rax}" (-> usize),
: [number] "{rax}" (@intFromEnum(number)),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -29,8 +28,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
: [ret] "={rax}" (-> usize),
: [number] "{rax}" (@intFromEnum(number)),
[arg1] "{rdi}" (arg1),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -39,8 +37,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
: [number] "{rax}" (@intFromEnum(number)),
[arg1] "{rdi}" (arg1),
[arg2] "{rsi}" (arg2),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
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 {
[arg1] "{rdi}" (arg1),
[arg2] "{rsi}" (arg2),
[arg3] "{rdx}" (arg3),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub 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)
[arg2] "{rsi}" (arg2),
[arg3] "{rdx}" (arg3),
[arg4] "{r10}" (arg4),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub 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,
[arg3] "{rdx}" (arg3),
[arg4] "{r10}" (arg4),
[arg5] "{r8}" (arg5),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub fn syscall6(
@@ -97,8 +91,7 @@ pub fn syscall6(
[arg4] "{r10}" (arg4),
[arg5] "{r8}" (arg5),
[arg6] "{r9}" (arg6),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
}
pub fn clone() callconv(.naked) usize {
@@ -144,14 +137,12 @@ pub fn restore_rt() callconv(.naked) noreturn {
\\ syscall
:
: [number] "i" (@intFromEnum(SYS.rt_sigreturn)),
- : "rcx", "r11", "memory"
- ),
+ : .{ .rcx = true, .r11 = true, .memory = true }),
else => asm volatile (
\\ syscall
:
: [number] "{rax}" (@intFromEnum(SYS.rt_sigreturn)),
- : "rcx", "r11", "memory"
- ),
+ : .{ .rcx = true, .r11 = true, .memory = true }),
}
}
@@ -440,8 +431,7 @@ fn getContextInternal() callconv(.naked) usize {
[sigprocmask] "i" (@intFromEnum(linux.SYS.rt_sigprocmask)),
[sigmask_offset] "i" (@offsetOf(ucontext_t, "sigmask")),
[sigset_size] "i" (@sizeOf(sigset_t)),
- : "cc", "memory", "rax", "rcx", "rdx", "rdi", "rsi", "r8", "r10", "r11"
- );
+ : .{ .cc = true, .memory = true, .rax = true, .rcx = true, .rdx = true, .rdi = true, .rsi = true, .r8 = true, .r10 = true, .r11 = true });
}
pub inline fn getcontext(context: *ucontext_t) usize {
@@ -455,6 +445,5 @@ pub inline fn getcontext(context: *ucontext_t) usize {
[_] "={rdi}" (clobber_rdi),
: [_] "{rdi}" (context),
[getContextInternal] "X" (&getContextInternal),
- : "cc", "memory", "rcx", "rdx", "rsi", "r8", "r10", "r11"
- );
+ : .{ .cc = true, .memory = true, .rcx = true, .rdx = true, .rsi = true, .r8 = true, .r10 = true, .r11 = true });
}
lib/std/os/plan9/x86_64.zig
@@ -11,8 +11,7 @@ pub fn syscall1(sys: plan9.SYS, arg0: usize) usize {
: [ret] "={rax}" (-> usize),
: [arg0] "{r8}" (arg0),
[syscall_number] "{rbp}" (@intFromEnum(sys)),
- : "rcx", "rax", "rbp", "r11", "memory"
- );
+ : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
}
pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {
return asm volatile (
@@ -27,8 +26,7 @@ pub fn syscall2(sys: plan9.SYS, arg0: usize, arg1: usize) usize {
: [arg0] "{r8}" (arg0),
[arg1] "{r9}" (arg1),
[syscall_number] "{rbp}" (@intFromEnum(sys)),
- : "rcx", "rax", "rbp", "r11", "memory"
- );
+ : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
}
pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {
return asm volatile (
@@ -46,8 +44,7 @@ pub fn syscall3(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize) usize {
[arg1] "{r9}" (arg1),
[arg2] "{r10}" (arg2),
[syscall_number] "{rbp}" (@intFromEnum(sys)),
- : "rcx", "rax", "rbp", "r11", "memory"
- );
+ : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
}
pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {
return asm volatile (
@@ -68,6 +65,5 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi
[arg2] "{r10}" (arg2),
[arg3] "{r11}" (arg3),
[syscall_number] "{rbp}" (@intFromEnum(sys)),
- : "rcx", "rax", "rbp", "r11", "memory"
- );
+ : .{ .rcx = true, .rax = true, .rbp = true, .r11 = true, .memory = true });
}
lib/std/zig/system/x86.zig
@@ -783,6 +783,5 @@ fn getXCR0() u32 {
\\ xgetbv
: [_] "={eax}" (-> u32),
:
- : "edx", "ecx"
- );
+ : .{ .edx = true, .ecx = true });
}
lib/std/zig/render.zig
@@ -2400,6 +2400,7 @@ fn renderAsmLegacy(
while (true) : (tok_i += 1) {
try ais.writer().writeAll(".@");
try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));
+ try ais.writer().writeAll(" = true");
tok_i += 1;
switch (tree.tokenTag(tok_i)) {
@@ -2514,7 +2515,7 @@ fn renderAsmLegacy(
try ais.writer().writeAll(".@");
const lexeme = tokenSliceForRender(tree, tok_i);
try ais.writer().writeAll(lexeme);
- try ais.writer().writeAll(" }");
+ try ais.writer().writeAll(" = true }");
try renderSpace(r, tok_i, lexeme.len, .newline);
ais.popIndent();
return renderToken(r, tok_i + 1, space);
@@ -2526,7 +2527,7 @@ fn renderAsmLegacy(
try ais.writer().writeAll(".@");
const lexeme = tokenSliceForRender(tree, tok_i);
try ais.writer().writeAll(lexeme);
- try ais.writer().writeAll(" }");
+ try ais.writer().writeAll(" = true }");
try renderSpace(r, tok_i, lexeme.len, .newline);
ais.popIndent();
return renderToken(r, tok_i + 2, space);
@@ -2534,6 +2535,7 @@ fn renderAsmLegacy(
else => {
try ais.writer().writeAll(".@");
try ais.writer().writeAll(tokenSliceForRender(tree, tok_i));
+ try ais.writer().writeAll(" = true");
try renderToken(r, tok_i + 1, .space);
tok_i += 2;
},
lib/std/debug.zig
@@ -785,7 +785,7 @@ pub const StackIterator = struct {
"flushw"
else
"ta 3" // ST_FLUSH_WINDOWS
- ::: "memory");
+ ::: .{ .memory = true });
}
return StackIterator{
lib/std/mem.zig
@@ -4497,8 +4497,7 @@ pub fn doNotOptimizeAway(val: anytype) void {
asm volatile (""
:
: [val] "m" (val),
- : "memory"
- );
+ : .{ .memory = true });
}
},
.array => {
lib/std/pie.zig
@@ -100,8 +100,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
\\ %[ret] = add(r1, %[ret])
: [ret] "=r" (-> [*]const elf.Dyn),
:
- : "r1"
- ),
+ : .{ .r1 = true }),
.loongarch32, .loongarch64 => asm volatile (
\\ .weak _DYNAMIC
\\ .hidden _DYNAMIC
@@ -127,8 +126,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
\\ addu %[ret], %[ret], $gp
: [ret] "=r" (-> [*]const elf.Dyn),
:
- : "lr"
- ),
+ : .{ .lr = true }),
.mips64, .mips64el => asm volatile (
\\ .weak _DYNAMIC
\\ .hidden _DYNAMIC
@@ -140,8 +138,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
\\ daddu %[ret], %[ret], $gp
: [ret] "=r" (-> [*]const elf.Dyn),
:
- : "lr"
- ),
+ : .{ .lr = true }),
.powerpc, .powerpcle => asm volatile (
\\ .weak _DYNAMIC
\\ .hidden _DYNAMIC
@@ -153,8 +150,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
\\ add %[ret], 4, %[ret]
: [ret] "=r" (-> [*]const elf.Dyn),
:
- : "lr", "r4"
- ),
+ : .{ .lr = true, .r4 = true }),
.powerpc64, .powerpc64le => asm volatile (
\\ .weak _DYNAMIC
\\ .hidden _DYNAMIC
@@ -166,8 +162,7 @@ inline fn getDynamicSymbol() [*]const elf.Dyn {
\\ add %[ret], 4, %[ret]
: [ret] "=r" (-> [*]const elf.Dyn),
:
- : "lr", "r4"
- ),
+ : .{ .lr = true, .r4 = true }),
.riscv32, .riscv64 => asm volatile (
\\ .weak _DYNAMIC
\\ .hidden _DYNAMIC
lib/std/start.zig
@@ -131,32 +131,28 @@ fn exit2(code: usize) noreturn {
:
: [number] "{rax}" (231),
[arg1] "{rdi}" (code),
- : "rcx", "r11", "memory"
- );
+ : .{ .rcx = true, .r11 = true, .memory = true });
},
.arm => {
asm volatile ("svc #0"
:
: [number] "{r7}" (1),
[arg1] "{r0}" (code),
- : "memory"
- );
+ : .{ .memory = true });
},
.aarch64 => {
asm volatile ("svc #0"
:
: [number] "{x8}" (93),
[arg1] "{x0}" (code),
- : "memory", "cc"
- );
+ : .{ .memory = true, .cc = true });
},
.sparc64 => {
asm volatile ("ta 0x6d"
:
: [number] "{g1}" (1),
[arg1] "{o0}" (code),
- : "o0", "o1", "o2", "o3", "o4", "o5", "o6", "o7", "memory"
- );
+ : .{ .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o6 = true, .o7 = true, .memory = true });
},
else => @compileError("TODO"),
},
lib/std/Thread.zig
@@ -1198,8 +1198,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.x86_64 => asm volatile (
\\ movq $11, %%rax # SYS_munmap
\\ syscall
@@ -1221,8 +1220,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.aarch64, .aarch64_be => asm volatile (
\\ mov x8, #215 // SYS_munmap
\\ mov x0, %[ptr]
@@ -1234,8 +1232,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.hexagon => asm volatile (
\\ r6 = #215 // SYS_munmap
\\ r0 = %[ptr]
@@ -1247,8 +1244,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
// We set `sp` to the address of the current function as a workaround for a Linux
// kernel bug that caused syscalls to return EFAULT if the stack pointer is invalid.
// The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in
@@ -1265,8 +1261,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.mips64, .mips64el => asm volatile (
\\ li $2, 5011 # SYS_munmap
\\ move $4, %[ptr]
@@ -1278,8 +1273,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.powerpc, .powerpcle, .powerpc64, .powerpc64le => asm volatile (
\\ li 0, 91 # SYS_munmap
\\ mr 3, %[ptr]
@@ -1292,8 +1286,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.riscv32, .riscv64 => asm volatile (
\\ li a7, 215 # SYS_munmap
\\ mv a0, %[ptr]
@@ -1305,8 +1298,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.s390x => asm volatile (
\\ lgr %%r2, %[ptr]
\\ lgr %%r3, %[len]
@@ -1316,8 +1308,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.sparc => asm volatile (
\\ # See sparc64 comments below.
\\ 1:
@@ -1338,8 +1329,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.sparc64 => asm volatile (
\\ # SPARCs really don't like it when active stack frames
\\ # is unmapped (it will result in a segfault), so we
@@ -1365,8 +1355,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
.loongarch32, .loongarch64 => asm volatile (
\\ or $a0, $zero, %[ptr]
\\ or $a1, $zero, %[len]
@@ -1378,8 +1367,7 @@ const LinuxThreadImpl = struct {
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
- : "memory"
- ),
+ : .{ .memory = true }),
else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)),
}
unreachable;
lib/std/valgrind.zig
@@ -17,8 +17,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={r3}" (-> usize),
: [_] "{r4}" (args),
[_] "{r3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.aarch64, .aarch64_be => asm volatile (
\\ ror x12, x12, #3 ; ror x12, x12, #13
\\ ror x12, x12, #51 ; ror x12, x12, #61
@@ -26,8 +25,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={x3}" (-> usize),
: [_] "{x4}" (args),
[_] "{x3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.mips, .mipsel => asm volatile (
\\ srl $0, $0, 13
\\ srl $0, $0, 29
@@ -37,8 +35,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={$11}" (-> usize),
: [_] "{$12}" (args),
[_] "{$11}" (default),
- : "memory"
- ),
+ : .{ .memory = true }),
.mips64, .mips64el => asm volatile (
\\ dsll $0, $0, 3 ; dsll $0, $0, 13
\\ dsll $0, $0, 29 ; dsll $0, $0, 19
@@ -46,8 +43,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={$11}" (-> usize),
: [_] "{$12}" (args),
[_] "{$11}" (default),
- : "memory"
- ),
+ : .{ .memory = true }),
.powerpc, .powerpcle => asm volatile (
\\ rlwinm 0, 0, 3, 0, 31 ; rlwinm 0, 0, 13, 0, 31
\\ 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:
: [_] "={r3}" (-> usize),
: [_] "{r4}" (args),
[_] "{r3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.powerpc64, .powerpc64le => asm volatile (
\\ rotldi 0, 0, 3 ; rotldi 0, 0, 13
\\ rotldi 0, 0, 61 ; rotldi 0, 0, 51
@@ -64,8 +59,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={r3}" (-> usize),
: [_] "{r4}" (args),
[_] "{r3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.riscv64 => asm volatile (
\\ .option push
\\ .option norvc
@@ -78,8 +72,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={a3}" (-> usize),
: [_] "{a4}" (args),
[_] "{a3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.s390x => asm volatile (
\\ lr %%r15, %%r15
\\ lr %%r1, %%r1
@@ -89,8 +82,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={r3}" (-> usize),
: [_] "{r2}" (args),
[_] "{r3}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.x86 => asm volatile (
\\ roll $3, %%edi ; roll $13, %%edi
\\ roll $29, %%edi ; roll $19, %%edi
@@ -98,8 +90,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={edx}" (-> usize),
: [_] "{eax}" (args),
[_] "{edx}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
.x86_64 => asm volatile (
\\ rolq $3, %%rdi ; rolq $13, %%rdi
\\ rolq $61, %%rdi ; rolq $51, %%rdi
@@ -107,8 +98,7 @@ pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3:
: [_] "={rdx}" (-> usize),
: [_] "{rax}" (args),
[_] "{rdx}" (default),
- : "cc", "memory"
- ),
+ : .{ .cc = true, .memory = true }),
else => default,
};
}
test/behavior/asm.zig
@@ -55,13 +55,11 @@ test "output constraint modifiers" {
asm volatile (""
: [_] "=m,r" (a),
:
- : ""
- );
+ : .{});
asm volatile (""
: [_] "=r,m" (a),
:
- : ""
- );
+ : .{});
}
test "alternative constraints" {
@@ -79,7 +77,6 @@ test "alternative constraints" {
asm volatile (""
: [_] "=r,m" (a),
: [_] "r,m" (a),
- : ""
);
}
@@ -96,42 +93,34 @@ test "sized integer/float in asm input" {
asm volatile (""
:
: [_] "m" (@as(usize, 3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(i15, -3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(u3, 3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(i3, 3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(u121, 3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(i121, 3)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(f32, 3.17)),
- : ""
);
asm volatile (""
:
: [_] "m" (@as(f64, 3.17)),
- : ""
);
}
@@ -172,8 +161,7 @@ test "rw constraint (x86_64)" {
asm ("addl %[b], %[a]"
: [a] "+r" (res),
: [b] "r" (@as(i32, 13)),
- : "flags"
- );
+ : .{ .flags = true });
try expectEqual(@as(i32, 18), res);
}
test/cases/llvm/f_segment_address_space_reading_and_writing.zig
@@ -9,7 +9,7 @@ fn setFs(value: c_ulong) void {
: [number] "{rax}" (158),
[code] "{rdi}" (0x1002),
[val] "{rsi}" (value),
- : "rcx", "r11", "memory"
+ : .{ .rcx = true, .r11 = true, .memory = true }
);
}
@@ -21,7 +21,7 @@ fn getFs() c_ulong {
: [number] "{rax}" (158),
[code] "{rdi}" (0x1003),
[ptr] "{rsi}" (@intFromPtr(&result)),
- : "rcx", "r11", "memory"
+ : .{ .rcx = true, .r11 = true, .memory = true }
);
return result;
}
test/standalone/stack_iterator/unwind.zig
@@ -31,7 +31,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
\\movl $7, %%edi
\\movl $6, %%esi
\\movl $5, %%ebp
- ::: "ebx", "ecx", "edx", "edi", "esi", "ebp");
+ ::: .{ .ebx = true, .ecx = true, .edx = true, .edi = true, .esi = true, .ebp = true });
} else {
asm volatile (
\\movl $3, %%ebx
@@ -39,7 +39,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
\\movl $2, %%edx
\\movl $7, %%edi
\\movl $6, %%esi
- ::: "ebx", "ecx", "edx", "edi", "esi");
+ ::: .{ .ebx = true, .ecx = true, .edx = true, .edi = true, .esi = true });
}
},
.x86_64 => {
@@ -51,7 +51,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
\\movq $14, %%r14
\\movq $15, %%r15
\\movq $6, %%rbp
- ::: "rbx", "r12", "r13", "r14", "r15", "rbp");
+ ::: .{ .rbx = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .rbp = true });
} else {
asm volatile (
\\movq $3, %%rbx
@@ -59,7 +59,7 @@ noinline fn frame2(expected: *[4]usize, unwound: *[4]usize) void {
\\movq $13, %%r13
\\movq $14, %%r14
\\movq $15, %%r15
- ::: "rbx", "r12", "r13", "r14", "r15");
+ ::: .{ .rbx = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true });
}
},
else => {},
test/standalone/stack_iterator/unwind_freestanding.zig
@@ -58,8 +58,7 @@ export fn _start() callconv(.c) noreturn {
\\syscall
:
: [missed] "{edi}" (missed),
- : "edi", "eax"
- );
+ : .{ .edi = true, .eax = true });
while (true) {} // unreached
}