mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
LLVM always assumes these are on. Zig backends do not observe them. If Zig backends want to start using them, they can be introduced, one arch at a time, with proper documentation.
1008 lines
26 KiB
Zig
1008 lines
26 KiB
Zig
pub const Clobbers = switch (@import("builtin").cpu.arch) {
|
|
.x86, .x86_64 => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
/// Condition codes. Subset of the bits in `eflags` and `rflags`.
|
|
cc: bool = false,
|
|
dirflag: bool = false,
|
|
eflags: bool = false,
|
|
flags: bool = false,
|
|
fpcr: bool = false,
|
|
fpsr: bool = false,
|
|
mxcsr: bool = false,
|
|
rflags: bool = false,
|
|
|
|
rax: bool = false,
|
|
rcx: bool = false,
|
|
rdx: bool = false,
|
|
rbx: bool = false,
|
|
rsp: bool = false,
|
|
rbp: bool = false,
|
|
rsi: bool = false,
|
|
rdi: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
r12: bool = false,
|
|
r13: bool = false,
|
|
r14: bool = false,
|
|
r15: bool = false,
|
|
eax: bool = false,
|
|
ecx: bool = false,
|
|
edx: bool = false,
|
|
ebx: bool = false,
|
|
esp: bool = false,
|
|
ebp: bool = false,
|
|
esi: bool = false,
|
|
edi: bool = false,
|
|
r8d: bool = false,
|
|
r9d: bool = false,
|
|
r10d: bool = false,
|
|
r11d: bool = false,
|
|
r12d: bool = false,
|
|
r13d: bool = false,
|
|
r14d: bool = false,
|
|
r15d: bool = false,
|
|
ax: bool = false,
|
|
cx: bool = false,
|
|
dx: bool = false,
|
|
bx: bool = false,
|
|
sp: bool = false,
|
|
bp: bool = false,
|
|
si: bool = false,
|
|
di: bool = false,
|
|
r8w: bool = false,
|
|
r9w: bool = false,
|
|
r10w: bool = false,
|
|
r11w: bool = false,
|
|
r12w: bool = false,
|
|
r13w: bool = false,
|
|
r14w: bool = false,
|
|
r15w: bool = false,
|
|
al: bool = false,
|
|
cl: bool = false,
|
|
dl: bool = false,
|
|
bl: bool = false,
|
|
spl: bool = false,
|
|
bpl: bool = false,
|
|
sil: bool = false,
|
|
dil: bool = false,
|
|
r8b: bool = false,
|
|
r9b: bool = false,
|
|
r10b: bool = false,
|
|
r11b: bool = false,
|
|
r12b: bool = false,
|
|
r13b: bool = false,
|
|
r14b: bool = false,
|
|
r15b: bool = false,
|
|
ah: bool = false,
|
|
ch: bool = false,
|
|
dh: bool = false,
|
|
bh: bool = false,
|
|
zmm0: bool = false,
|
|
zmm1: bool = false,
|
|
zmm2: bool = false,
|
|
zmm3: bool = false,
|
|
zmm4: bool = false,
|
|
zmm5: bool = false,
|
|
zmm6: bool = false,
|
|
zmm7: bool = false,
|
|
zmm8: bool = false,
|
|
zmm9: bool = false,
|
|
zmm10: bool = false,
|
|
zmm11: bool = false,
|
|
zmm12: bool = false,
|
|
zmm13: bool = false,
|
|
zmm14: bool = false,
|
|
zmm15: bool = false,
|
|
zmm16: bool = false,
|
|
zmm17: bool = false,
|
|
zmm18: bool = false,
|
|
zmm19: bool = false,
|
|
zmm20: bool = false,
|
|
zmm21: bool = false,
|
|
zmm22: bool = false,
|
|
zmm23: bool = false,
|
|
zmm24: bool = false,
|
|
zmm25: bool = false,
|
|
zmm26: bool = false,
|
|
zmm27: bool = false,
|
|
zmm28: bool = false,
|
|
zmm29: bool = false,
|
|
zmm30: bool = false,
|
|
zmm31: bool = false,
|
|
ymm0: bool = false,
|
|
ymm1: bool = false,
|
|
ymm2: bool = false,
|
|
ymm3: bool = false,
|
|
ymm4: bool = false,
|
|
ymm5: bool = false,
|
|
ymm6: bool = false,
|
|
ymm7: bool = false,
|
|
ymm8: bool = false,
|
|
ymm9: bool = false,
|
|
ymm10: bool = false,
|
|
ymm11: bool = false,
|
|
ymm12: bool = false,
|
|
ymm13: bool = false,
|
|
ymm14: bool = false,
|
|
ymm15: bool = false,
|
|
ymm16: bool = false,
|
|
ymm17: bool = false,
|
|
ymm18: bool = false,
|
|
ymm19: bool = false,
|
|
ymm20: bool = false,
|
|
ymm21: bool = false,
|
|
ymm22: bool = false,
|
|
ymm23: bool = false,
|
|
ymm24: bool = false,
|
|
ymm25: bool = false,
|
|
ymm26: bool = false,
|
|
ymm27: bool = false,
|
|
ymm28: bool = false,
|
|
ymm29: bool = false,
|
|
ymm30: bool = false,
|
|
ymm31: bool = false,
|
|
xmm0: bool = false,
|
|
xmm1: bool = false,
|
|
xmm2: bool = false,
|
|
xmm3: bool = false,
|
|
xmm4: bool = false,
|
|
xmm5: bool = false,
|
|
xmm6: bool = false,
|
|
xmm7: bool = false,
|
|
xmm8: bool = false,
|
|
xmm9: bool = false,
|
|
xmm10: bool = false,
|
|
xmm11: bool = false,
|
|
xmm12: bool = false,
|
|
xmm13: bool = false,
|
|
xmm14: bool = false,
|
|
xmm15: bool = false,
|
|
xmm16: bool = false,
|
|
xmm17: bool = false,
|
|
xmm18: bool = false,
|
|
xmm19: bool = false,
|
|
xmm20: bool = false,
|
|
xmm21: bool = false,
|
|
xmm22: bool = false,
|
|
xmm23: bool = false,
|
|
xmm24: bool = false,
|
|
xmm25: bool = false,
|
|
xmm26: bool = false,
|
|
xmm27: bool = false,
|
|
xmm28: bool = false,
|
|
xmm29: bool = false,
|
|
xmm30: bool = false,
|
|
xmm31: bool = false,
|
|
mm0: bool = false,
|
|
mm1: bool = false,
|
|
mm2: bool = false,
|
|
mm3: bool = false,
|
|
mm4: bool = false,
|
|
mm5: bool = false,
|
|
mm6: bool = false,
|
|
mm7: bool = false,
|
|
st0: bool = false,
|
|
st1: bool = false,
|
|
st2: bool = false,
|
|
st3: bool = false,
|
|
st4: bool = false,
|
|
st5: bool = false,
|
|
st6: bool = false,
|
|
st7: bool = false,
|
|
es: bool = false,
|
|
cs: bool = false,
|
|
ss: bool = false,
|
|
ds: bool = false,
|
|
fs: bool = false,
|
|
gs: bool = false,
|
|
},
|
|
.aarch64, .aarch64_be => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
nzcv: bool = false,
|
|
|
|
x0: bool = false,
|
|
x1: bool = false,
|
|
x2: bool = false,
|
|
x3: bool = false,
|
|
x4: bool = false,
|
|
x5: bool = false,
|
|
x6: bool = false,
|
|
x7: bool = false,
|
|
x8: bool = false,
|
|
x9: bool = false,
|
|
x10: bool = false,
|
|
x11: bool = false,
|
|
x12: bool = false,
|
|
x13: bool = false,
|
|
x14: bool = false,
|
|
x15: bool = false,
|
|
x16: bool = false,
|
|
x17: bool = false,
|
|
x18: bool = false,
|
|
x19: bool = false,
|
|
x20: bool = false,
|
|
x21: bool = false,
|
|
x22: bool = false,
|
|
x23: bool = false,
|
|
x24: bool = false,
|
|
x25: bool = false,
|
|
x26: bool = false,
|
|
x27: bool = false,
|
|
x28: bool = false,
|
|
x29: bool = false,
|
|
x30: bool = false,
|
|
|
|
w0: bool = false,
|
|
w1: bool = false,
|
|
w2: bool = false,
|
|
w3: bool = false,
|
|
w4: bool = false,
|
|
w5: bool = false,
|
|
w6: bool = false,
|
|
w7: bool = false,
|
|
w8: bool = false,
|
|
w9: bool = false,
|
|
w10: bool = false,
|
|
w11: bool = false,
|
|
w12: bool = false,
|
|
w13: bool = false,
|
|
w14: bool = false,
|
|
w15: bool = false,
|
|
w16: bool = false,
|
|
w17: bool = false,
|
|
w18: bool = false,
|
|
w19: bool = false,
|
|
w20: bool = false,
|
|
w21: bool = false,
|
|
w22: bool = false,
|
|
w23: bool = false,
|
|
w24: bool = false,
|
|
w25: bool = false,
|
|
w26: bool = false,
|
|
w27: bool = false,
|
|
w28: bool = false,
|
|
w29: bool = false,
|
|
|
|
lr: bool = false,
|
|
sp: bool = false,
|
|
wsp: bool = false,
|
|
fpcr: bool = false,
|
|
fpmr: bool = false,
|
|
fpsr: bool = false,
|
|
ffr: bool = false,
|
|
|
|
p0: bool = false,
|
|
p1: bool = false,
|
|
p2: bool = false,
|
|
p3: bool = false,
|
|
p4: bool = false,
|
|
p5: bool = false,
|
|
p6: bool = false,
|
|
p7: bool = false,
|
|
p8: bool = false,
|
|
p9: bool = false,
|
|
p10: bool = false,
|
|
p11: bool = false,
|
|
p12: bool = false,
|
|
p13: bool = false,
|
|
p14: bool = false,
|
|
p15: bool = false,
|
|
|
|
z0: bool = false,
|
|
z1: bool = false,
|
|
z2: bool = false,
|
|
z3: bool = false,
|
|
z4: bool = false,
|
|
z5: bool = false,
|
|
z6: bool = false,
|
|
z7: bool = false,
|
|
z8: bool = false,
|
|
z9: bool = false,
|
|
z10: bool = false,
|
|
z11: bool = false,
|
|
z12: bool = false,
|
|
z13: bool = false,
|
|
z14: bool = false,
|
|
z15: bool = false,
|
|
z16: bool = false,
|
|
z17: bool = false,
|
|
z18: bool = false,
|
|
z19: bool = false,
|
|
z20: bool = false,
|
|
z21: bool = false,
|
|
z22: bool = false,
|
|
z23: bool = false,
|
|
z24: bool = false,
|
|
z25: bool = false,
|
|
z26: bool = false,
|
|
z27: bool = false,
|
|
z28: bool = false,
|
|
z29: bool = false,
|
|
z30: bool = false,
|
|
z31: bool = false,
|
|
|
|
v0: bool = false,
|
|
v1: bool = false,
|
|
v2: bool = false,
|
|
v3: bool = false,
|
|
v4: bool = false,
|
|
v5: bool = false,
|
|
v6: bool = false,
|
|
v7: bool = false,
|
|
v8: bool = false,
|
|
v9: bool = false,
|
|
v10: bool = false,
|
|
v11: bool = false,
|
|
v12: bool = false,
|
|
v13: bool = false,
|
|
v14: bool = false,
|
|
v15: bool = false,
|
|
v16: bool = false,
|
|
v17: bool = false,
|
|
v18: bool = false,
|
|
v19: bool = false,
|
|
v20: bool = false,
|
|
v21: bool = false,
|
|
v22: bool = false,
|
|
v23: bool = false,
|
|
v24: bool = false,
|
|
v25: bool = false,
|
|
v26: bool = false,
|
|
v27: bool = false,
|
|
v28: bool = false,
|
|
v29: bool = false,
|
|
v30: bool = false,
|
|
v31: bool = false,
|
|
|
|
d0: bool = false,
|
|
d1: bool = false,
|
|
d2: bool = false,
|
|
d3: bool = false,
|
|
d4: bool = false,
|
|
d5: bool = false,
|
|
d6: bool = false,
|
|
d7: bool = false,
|
|
d8: bool = false,
|
|
d9: bool = false,
|
|
d10: bool = false,
|
|
d11: bool = false,
|
|
d12: bool = false,
|
|
d13: bool = false,
|
|
d14: bool = false,
|
|
d15: bool = false,
|
|
d16: bool = false,
|
|
d17: bool = false,
|
|
d18: bool = false,
|
|
d19: bool = false,
|
|
d20: bool = false,
|
|
d21: bool = false,
|
|
d22: bool = false,
|
|
d23: bool = false,
|
|
d24: bool = false,
|
|
d25: bool = false,
|
|
d26: bool = false,
|
|
d27: bool = false,
|
|
d28: bool = false,
|
|
d29: bool = false,
|
|
d30: bool = false,
|
|
d31: bool = false,
|
|
|
|
s0: bool = false,
|
|
s1: bool = false,
|
|
s2: bool = false,
|
|
s3: bool = false,
|
|
s4: bool = false,
|
|
s5: bool = false,
|
|
s6: bool = false,
|
|
s7: bool = false,
|
|
s8: bool = false,
|
|
s9: bool = false,
|
|
s10: bool = false,
|
|
s11: bool = false,
|
|
s12: bool = false,
|
|
s13: bool = false,
|
|
s14: bool = false,
|
|
s15: bool = false,
|
|
s16: bool = false,
|
|
s17: bool = false,
|
|
s18: bool = false,
|
|
s19: bool = false,
|
|
s20: bool = false,
|
|
s21: bool = false,
|
|
s22: bool = false,
|
|
s23: bool = false,
|
|
s24: bool = false,
|
|
s25: bool = false,
|
|
s26: bool = false,
|
|
s27: bool = false,
|
|
s28: bool = false,
|
|
s29: bool = false,
|
|
s30: bool = false,
|
|
s31: bool = false,
|
|
|
|
h0: bool = false,
|
|
h1: bool = false,
|
|
h2: bool = false,
|
|
h3: bool = false,
|
|
h4: bool = false,
|
|
h5: bool = false,
|
|
h6: bool = false,
|
|
h7: bool = false,
|
|
h8: bool = false,
|
|
h9: bool = false,
|
|
h10: bool = false,
|
|
h11: bool = false,
|
|
h12: bool = false,
|
|
h13: bool = false,
|
|
h14: bool = false,
|
|
h15: bool = false,
|
|
h16: bool = false,
|
|
h17: bool = false,
|
|
h18: bool = false,
|
|
h19: bool = false,
|
|
h20: bool = false,
|
|
h21: bool = false,
|
|
h22: bool = false,
|
|
h23: bool = false,
|
|
h24: bool = false,
|
|
h25: bool = false,
|
|
h26: bool = false,
|
|
h27: bool = false,
|
|
h28: bool = false,
|
|
h29: bool = false,
|
|
h30: bool = false,
|
|
h31: bool = false,
|
|
|
|
b0: bool = false,
|
|
b1: bool = false,
|
|
b2: bool = false,
|
|
b3: bool = false,
|
|
b4: bool = false,
|
|
b5: bool = false,
|
|
b6: bool = false,
|
|
b7: bool = false,
|
|
b8: bool = false,
|
|
b9: bool = false,
|
|
b10: bool = false,
|
|
b11: bool = false,
|
|
b12: bool = false,
|
|
b13: bool = false,
|
|
b14: bool = false,
|
|
b15: bool = false,
|
|
b16: bool = false,
|
|
b17: bool = false,
|
|
b18: bool = false,
|
|
b19: bool = false,
|
|
b20: bool = false,
|
|
b21: bool = false,
|
|
b22: bool = false,
|
|
b23: bool = false,
|
|
b24: bool = false,
|
|
b25: bool = false,
|
|
b26: bool = false,
|
|
b27: bool = false,
|
|
b28: bool = false,
|
|
b29: bool = false,
|
|
b30: bool = false,
|
|
b31: bool = false,
|
|
|
|
za0q: bool = false,
|
|
za1q: bool = false,
|
|
za2q: bool = false,
|
|
za3q: bool = false,
|
|
za4q: bool = false,
|
|
za5q: bool = false,
|
|
za6q: bool = false,
|
|
za7q: bool = false,
|
|
za8q: bool = false,
|
|
za9q: bool = false,
|
|
za10q: bool = false,
|
|
za11q: bool = false,
|
|
za12q: bool = false,
|
|
za13q: bool = false,
|
|
za14q: bool = false,
|
|
za15q: bool = false,
|
|
|
|
za0d: bool = false,
|
|
za1d: bool = false,
|
|
za2d: bool = false,
|
|
za3d: bool = false,
|
|
za4d: bool = false,
|
|
za5d: bool = false,
|
|
za6d: bool = false,
|
|
za7d: bool = false,
|
|
|
|
za0s: bool = false,
|
|
za1s: bool = false,
|
|
za2s: bool = false,
|
|
za3s: bool = false,
|
|
|
|
za0h: bool = false,
|
|
za1h: bool = false,
|
|
za0b: bool = false,
|
|
|
|
zt0: bool = false,
|
|
},
|
|
.arm, .armeb, .thumb, .thumbeb => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
apsr: bool = false,
|
|
cpsr: bool = false,
|
|
spsr: bool = false,
|
|
r0: bool = false,
|
|
r1: bool = false,
|
|
r2: bool = false,
|
|
r3: bool = false,
|
|
r4: bool = false,
|
|
r5: bool = false,
|
|
r6: bool = false,
|
|
r7: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
r12: bool = false,
|
|
r13: bool = false,
|
|
r14: bool = false,
|
|
|
|
fpscr: bool = false,
|
|
vpr: bool = false,
|
|
|
|
d0: bool = false,
|
|
d1: bool = false,
|
|
d2: bool = false,
|
|
d3: bool = false,
|
|
d4: bool = false,
|
|
d5: bool = false,
|
|
d6: bool = false,
|
|
d7: bool = false,
|
|
d8: bool = false,
|
|
d9: bool = false,
|
|
d10: bool = false,
|
|
d11: bool = false,
|
|
d12: bool = false,
|
|
d13: bool = false,
|
|
d14: bool = false,
|
|
d15: bool = false,
|
|
d16: bool = false,
|
|
d17: bool = false,
|
|
d18: bool = false,
|
|
d19: bool = false,
|
|
d20: bool = false,
|
|
d21: bool = false,
|
|
d22: bool = false,
|
|
d23: bool = false,
|
|
d24: bool = false,
|
|
d25: bool = false,
|
|
d26: bool = false,
|
|
d27: bool = false,
|
|
d28: bool = false,
|
|
d29: bool = false,
|
|
d30: bool = false,
|
|
d31: bool = false,
|
|
|
|
s0: bool = false,
|
|
s1: bool = false,
|
|
s2: bool = false,
|
|
s3: bool = false,
|
|
s4: bool = false,
|
|
s5: bool = false,
|
|
s6: bool = false,
|
|
s7: bool = false,
|
|
s8: bool = false,
|
|
s9: bool = false,
|
|
s10: bool = false,
|
|
s11: bool = false,
|
|
s12: bool = false,
|
|
s13: bool = false,
|
|
s14: bool = false,
|
|
s15: bool = false,
|
|
s16: bool = false,
|
|
s17: bool = false,
|
|
s18: bool = false,
|
|
s19: bool = false,
|
|
s20: bool = false,
|
|
s21: bool = false,
|
|
s22: bool = false,
|
|
s23: bool = false,
|
|
s24: bool = false,
|
|
s25: bool = false,
|
|
s26: bool = false,
|
|
s27: bool = false,
|
|
s28: bool = false,
|
|
s29: bool = false,
|
|
s30: bool = false,
|
|
s31: bool = false,
|
|
|
|
q0: bool = false,
|
|
q1: bool = false,
|
|
q2: bool = false,
|
|
q3: bool = false,
|
|
q4: bool = false,
|
|
q5: bool = false,
|
|
q6: bool = false,
|
|
q7: bool = false,
|
|
q8: bool = false,
|
|
q9: bool = false,
|
|
q10: bool = false,
|
|
q11: bool = false,
|
|
q12: bool = false,
|
|
q13: bool = false,
|
|
q14: bool = false,
|
|
q15: bool = false,
|
|
},
|
|
.riscv32, .riscv64 => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
ssp: bool = false,
|
|
|
|
x1: bool = false,
|
|
x2: bool = false,
|
|
x3: bool = false,
|
|
x4: bool = false,
|
|
x5: bool = false,
|
|
x6: bool = false,
|
|
x7: bool = false,
|
|
x8: bool = false,
|
|
x9: bool = false,
|
|
x10: bool = false,
|
|
x11: bool = false,
|
|
x12: bool = false,
|
|
x13: bool = false,
|
|
x14: bool = false,
|
|
x15: bool = false,
|
|
x16: bool = false,
|
|
x17: bool = false,
|
|
x18: bool = false,
|
|
x19: bool = false,
|
|
x20: bool = false,
|
|
x21: bool = false,
|
|
x22: bool = false,
|
|
x23: bool = false,
|
|
x24: bool = false,
|
|
x25: bool = false,
|
|
x26: bool = false,
|
|
x27: bool = false,
|
|
x28: bool = false,
|
|
x29: bool = false,
|
|
x30: bool = false,
|
|
x31: bool = false,
|
|
|
|
fflags: bool = false,
|
|
frm: bool = false,
|
|
|
|
f0: bool = false,
|
|
f1: bool = false,
|
|
f2: bool = false,
|
|
f3: bool = false,
|
|
f4: bool = false,
|
|
f5: bool = false,
|
|
f6: bool = false,
|
|
f7: bool = false,
|
|
f8: bool = false,
|
|
f9: bool = false,
|
|
f10: bool = false,
|
|
f11: bool = false,
|
|
f12: bool = false,
|
|
f13: bool = false,
|
|
f14: bool = false,
|
|
f15: bool = false,
|
|
f16: bool = false,
|
|
f17: bool = false,
|
|
f18: bool = false,
|
|
f19: bool = false,
|
|
f20: bool = false,
|
|
f21: bool = false,
|
|
f22: bool = false,
|
|
f23: bool = false,
|
|
f24: bool = false,
|
|
f25: bool = false,
|
|
f26: bool = false,
|
|
f27: bool = false,
|
|
f28: bool = false,
|
|
f29: bool = false,
|
|
f30: bool = false,
|
|
f31: bool = false,
|
|
|
|
vtype: bool = false,
|
|
vl: bool = false,
|
|
vxsat: bool = false,
|
|
vxrm: bool = false,
|
|
vcsr: bool = false,
|
|
|
|
v0: bool = false,
|
|
v1: bool = false,
|
|
v2: bool = false,
|
|
v3: bool = false,
|
|
v4: bool = false,
|
|
v5: bool = false,
|
|
v6: bool = false,
|
|
v7: bool = false,
|
|
v8: bool = false,
|
|
v9: bool = false,
|
|
v10: bool = false,
|
|
v11: bool = false,
|
|
v12: bool = false,
|
|
v13: bool = false,
|
|
v14: bool = false,
|
|
v15: bool = false,
|
|
v16: bool = false,
|
|
v17: bool = false,
|
|
v18: bool = false,
|
|
v19: bool = false,
|
|
v20: bool = false,
|
|
v21: bool = false,
|
|
v22: bool = false,
|
|
v23: bool = false,
|
|
v24: bool = false,
|
|
v25: bool = false,
|
|
v26: bool = false,
|
|
v27: bool = false,
|
|
v28: bool = false,
|
|
v29: bool = false,
|
|
v30: bool = false,
|
|
v31: bool = false,
|
|
},
|
|
.xcore => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
r0: bool = false,
|
|
r1: bool = false,
|
|
r2: bool = false,
|
|
r3: bool = false,
|
|
r4: bool = false,
|
|
r5: bool = false,
|
|
r6: bool = false,
|
|
r7: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
|
|
cp: bool = false,
|
|
dp: bool = false,
|
|
sp: bool = false,
|
|
lr: bool = false,
|
|
sr: bool = false,
|
|
},
|
|
.xtensa => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
sar: bool = false,
|
|
lbeg: bool = false,
|
|
lend: bool = false,
|
|
lcount: bool = false,
|
|
atomctl: bool = false,
|
|
scompare1: bool = false,
|
|
threadptr: bool = false,
|
|
litbase: bool = false,
|
|
windowbase: bool = false,
|
|
windowstart: bool = false,
|
|
ps: bool = false,
|
|
|
|
a0: bool = false,
|
|
a1: bool = false,
|
|
a2: bool = false,
|
|
a3: bool = false,
|
|
a4: bool = false,
|
|
a5: bool = false,
|
|
a6: bool = false,
|
|
a7: bool = false,
|
|
a8: bool = false,
|
|
a9: bool = false,
|
|
a10: bool = false,
|
|
a11: bool = false,
|
|
a12: bool = false,
|
|
a13: bool = false,
|
|
a14: bool = false,
|
|
a15: bool = false,
|
|
|
|
br: bool = false,
|
|
b0: bool = false,
|
|
b1: bool = false,
|
|
b2: bool = false,
|
|
b3: bool = false,
|
|
b4: bool = false,
|
|
b5: bool = false,
|
|
b6: bool = false,
|
|
b7: bool = false,
|
|
b8: bool = false,
|
|
b9: bool = false,
|
|
b10: bool = false,
|
|
b11: bool = false,
|
|
b12: bool = false,
|
|
b13: bool = false,
|
|
b14: bool = false,
|
|
b15: bool = false,
|
|
|
|
acchi: bool = false,
|
|
acclo: bool = false,
|
|
m0: bool = false,
|
|
m1: bool = false,
|
|
m2: bool = false,
|
|
m3: bool = false,
|
|
fcr: bool = false,
|
|
fsr: bool = false,
|
|
|
|
f0: bool = false,
|
|
f1: bool = false,
|
|
f2: bool = false,
|
|
f3: bool = false,
|
|
f4: bool = false,
|
|
f5: bool = false,
|
|
f6: bool = false,
|
|
f7: bool = false,
|
|
f8: bool = false,
|
|
f9: bool = false,
|
|
f10: bool = false,
|
|
f11: bool = false,
|
|
f12: bool = false,
|
|
f13: bool = false,
|
|
f14: bool = false,
|
|
f15: bool = false,
|
|
},
|
|
.lanai => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
/// Condition flags which aren't accessible outside of conditional execution.
|
|
sw: bool = false,
|
|
|
|
r3: bool = false,
|
|
r4: bool = false,
|
|
r5: bool = false,
|
|
r6: bool = false,
|
|
r7: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
r12: bool = false,
|
|
r13: bool = false,
|
|
r14: bool = false,
|
|
r15: bool = false,
|
|
r16: bool = false,
|
|
r17: bool = false,
|
|
r18: bool = false,
|
|
r19: bool = false,
|
|
r20: bool = false,
|
|
r21: bool = false,
|
|
r22: bool = false,
|
|
r23: bool = false,
|
|
r24: bool = false,
|
|
r25: bool = false,
|
|
r26: bool = false,
|
|
r27: bool = false,
|
|
r28: bool = false,
|
|
r29: bool = false,
|
|
r30: bool = false,
|
|
r31: bool = false,
|
|
},
|
|
.avr => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
flags: bool = false,
|
|
r0: bool = false,
|
|
r1: bool = false,
|
|
r2: bool = false,
|
|
r3: bool = false,
|
|
r4: bool = false,
|
|
r5: bool = false,
|
|
r6: bool = false,
|
|
r7: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
r12: bool = false,
|
|
r13: bool = false,
|
|
r14: bool = false,
|
|
r15: bool = false,
|
|
r16: bool = false,
|
|
r17: bool = false,
|
|
r18: bool = false,
|
|
r19: bool = false,
|
|
r20: bool = false,
|
|
r21: bool = false,
|
|
r22: bool = false,
|
|
r23: bool = false,
|
|
r24: bool = false,
|
|
r25: bool = false,
|
|
r26: bool = false,
|
|
r27: bool = false,
|
|
r28: bool = false,
|
|
r29: bool = false,
|
|
r30: bool = false,
|
|
r31: bool = false,
|
|
},
|
|
.msp430 => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
r0: bool = false,
|
|
r1: bool = false,
|
|
r2: bool = false,
|
|
|
|
r4: bool = false,
|
|
r5: bool = false,
|
|
r6: bool = false,
|
|
r7: bool = false,
|
|
r8: bool = false,
|
|
r9: bool = false,
|
|
r10: bool = false,
|
|
r11: bool = false,
|
|
r12: bool = false,
|
|
r13: bool = false,
|
|
r14: bool = false,
|
|
r15: bool = false,
|
|
},
|
|
.m68k => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
|
|
ccr: bool = false,
|
|
|
|
d0: bool = false,
|
|
d1: bool = false,
|
|
d2: bool = false,
|
|
d3: bool = false,
|
|
d4: bool = false,
|
|
d5: bool = false,
|
|
d6: bool = false,
|
|
d7: bool = false,
|
|
|
|
a0: bool = false,
|
|
a1: bool = false,
|
|
a2: bool = false,
|
|
a3: bool = false,
|
|
a4: bool = false,
|
|
a5: bool = false,
|
|
a6: bool = false,
|
|
a7: bool = false,
|
|
|
|
macsr: bool = false,
|
|
acc: bool = false,
|
|
acc0: bool = false,
|
|
acc1: bool = false,
|
|
acc2: bool = false,
|
|
acc3: bool = false,
|
|
|
|
mask: bool = false,
|
|
fpcr: bool = false,
|
|
fpsr: bool = false,
|
|
|
|
fp0: bool = false,
|
|
fp1: bool = false,
|
|
fp2: bool = false,
|
|
fp3: bool = false,
|
|
fp4: bool = false,
|
|
fp5: bool = false,
|
|
fp6: bool = false,
|
|
fp7: bool = false,
|
|
},
|
|
else => packed struct {
|
|
/// Whether the inline assembly code may perform stores to memory
|
|
/// addresses other than those derived from input pointer provenance.
|
|
memory: bool = false,
|
|
},
|
|
};
|