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, }, };