Commit 3628137442

Andrew Kelley <andrew@ziglang.org>
2025-07-16 01:43:09
add clobbers for more architectures
1 parent 54f0733
Changed files (1)
lib
std
builtin
lib/std/builtin/assembly.zig
@@ -999,6 +999,1187 @@ pub const Clobbers = switch (@import("builtin").cpu.arch) {
         fp6: bool = false,
         fp7: bool = false,
     },
+    .sparc, .sparc64 => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        psr: bool = false,
+        ccr: bool = false,
+        gsr: bool = false,
+        y: bool = false,
+
+        g1: bool = false,
+        g2: bool = false,
+        g3: bool = false,
+        g4: bool = false,
+        g5: bool = false,
+        g6: bool = false,
+        g7: bool = false,
+
+        o0: bool = false,
+        o1: bool = false,
+        o2: bool = false,
+        o3: bool = false,
+        o4: bool = false,
+        o5: bool = false,
+        o6: bool = false,
+        o7: bool = false,
+
+        l0: bool = false,
+        l1: bool = false,
+        l2: bool = false,
+        l3: bool = false,
+        l4: bool = false,
+        l5: bool = false,
+        l6: bool = false,
+        l7: bool = false,
+
+        i0: bool = false,
+        i1: bool = false,
+        i2: bool = false,
+        i3: bool = false,
+        i4: bool = false,
+        i5: bool = false,
+        i6: bool = false,
+        i7: bool = false,
+
+        fsr: bool = false,
+        fprs: 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,
+    },
+    .bpfel, .bpfeb => 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,
+
+        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,
+    },
+    .hexagon => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        sa0: bool = false,
+        sa1: bool = false,
+        lc0: bool = false,
+        lc1: bool = false,
+        m0: bool = false,
+        m1: bool = false,
+        usr: bool = false,
+        ugp: bool = false,
+        gp: bool = false,
+        cs0: bool = false,
+        cs1: bool = false,
+        framelimit: bool = false,
+        framekey: bool = false,
+
+        p0: bool = false,
+        p1: bool = false,
+        p2: bool = false,
+        p3: 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,
+
+        q0: bool = false,
+        q1: bool = false,
+        q2: bool = false,
+        q3: 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,
+    },
+    .s390x => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        ps: 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,
+
+        fpc: 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,
+
+        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,
+    },
+    .ve => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        psw: 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,
+        s32: bool = false,
+        s33: bool = false,
+        s34: bool = false,
+        s35: bool = false,
+        s36: bool = false,
+        s37: bool = false,
+        s38: bool = false,
+        s39: bool = false,
+        s40: bool = false,
+        s41: bool = false,
+        s42: bool = false,
+        s43: bool = false,
+        s44: bool = false,
+        s45: bool = false,
+        s46: bool = false,
+        s47: bool = false,
+        s48: bool = false,
+        s49: bool = false,
+        s50: bool = false,
+        s51: bool = false,
+        s52: bool = false,
+        s53: bool = false,
+        s54: bool = false,
+        s55: bool = false,
+        s56: bool = false,
+        s57: bool = false,
+        s58: bool = false,
+        s59: bool = false,
+        s60: bool = false,
+        s61: bool = false,
+        s62: bool = false,
+        s63: bool = false,
+
+        vixr: bool = false,
+        vl: bool = false,
+
+        vm0: bool = false,
+        vm1: bool = false,
+        vm2: bool = false,
+        vm3: bool = false,
+        vm4: bool = false,
+        vm5: bool = false,
+        vm6: bool = false,
+        vm7: bool = false,
+        vm8: bool = false,
+        vm9: bool = false,
+        vm10: bool = false,
+        vm11: bool = false,
+        vm12: bool = false,
+        vm13: bool = false,
+        vm14: bool = false,
+        vm15: 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,
+        v32: bool = false,
+        v33: bool = false,
+        v34: bool = false,
+        v35: bool = false,
+        v36: bool = false,
+        v37: bool = false,
+        v38: bool = false,
+        v39: bool = false,
+        v40: bool = false,
+        v41: bool = false,
+        v42: bool = false,
+        v43: bool = false,
+        v44: bool = false,
+        v45: bool = false,
+        v46: bool = false,
+        v47: bool = false,
+        v48: bool = false,
+        v49: bool = false,
+        v50: bool = false,
+        v51: bool = false,
+        v52: bool = false,
+        v53: bool = false,
+        v54: bool = false,
+        v55: bool = false,
+        v56: bool = false,
+        v57: bool = false,
+        v58: bool = false,
+        v59: bool = false,
+        v60: bool = false,
+        v61: bool = false,
+        v62: bool = false,
+        v63: bool = false,
+    },
+    .kalimba => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        i0: bool = false,
+        i1: bool = false,
+        i2: bool = false,
+        i3: bool = false,
+        i4: bool = false,
+        i5: bool = false,
+        i6: bool = false,
+        i7: bool = false,
+
+        m0: bool = false,
+        m1: bool = false,
+        m2: bool = false,
+        m3: bool = false,
+        l0: bool = false,
+        l1: bool = false,
+        l2: bool = false,
+        l3: bool = false,
+        l4: bool = false,
+        l5: bool = false,
+        doloopstart: bool = false,
+        doloopend: bool = false,
+        divresult: bool = false,
+        divremainder: bool = false,
+        rmac: bool = false,
+        rmac0: bool = false,
+        rmac1: bool = false,
+        rmac2: bool = false,
+        rlink: bool = false,
+        rflags: 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,
+    },
+    .or1k => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        maclo: bool = false,
+        machi: bool = false,
+        fpcsr: bool = false,
+        fpmaddlo: bool = false,
+        fpmaddhi: bool = false,
+        vmaclo: bool = false,
+        vmachi: 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,
+    },
+    .csky => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        psr: bool = false,
+        hi: bool = false,
+        lo: 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,
+
+        vr0: bool = false,
+        vr1: bool = false,
+        vr2: bool = false,
+        vr3: bool = false,
+        vr4: bool = false,
+        vr5: bool = false,
+        vr6: bool = false,
+        vr7: bool = false,
+        vr8: bool = false,
+        vr9: bool = false,
+        vr10: bool = false,
+        vr11: bool = false,
+        vr12: bool = false,
+        vr13: bool = false,
+        vr14: bool = false,
+        vr15: bool = false,
+        vr16: bool = false,
+        vr17: bool = false,
+        vr18: bool = false,
+        vr19: bool = false,
+        vr20: bool = false,
+        vr21: bool = false,
+        vr22: bool = false,
+        vr23: bool = false,
+        vr24: bool = false,
+        vr25: bool = false,
+        vr26: bool = false,
+        vr27: bool = false,
+        vr28: bool = false,
+        vr29: bool = false,
+        vr30: bool = false,
+        vr31: bool = false,
+    },
+    .arc => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        status32: bool = false,
+        aux_macmode: bool = false,
+        mulhi: bool = false,
+        lp_start: bool = false,
+        lp_end: bool = false,
+        jli_base: bool = false,
+        ldi_base: bool = false,
+        ei_base: 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,
+        r32: bool = false,
+        r33: bool = false,
+        r34: bool = false,
+        r35: bool = false,
+        r36: bool = false,
+        r37: bool = false,
+        r38: bool = false,
+        r39: bool = false,
+        r40: bool = false,
+        r41: bool = false,
+        r42: bool = false,
+        r43: bool = false,
+        r44: bool = false,
+        r45: bool = false,
+        r46: bool = false,
+        r47: bool = false,
+        r48: bool = false,
+        r49: bool = false,
+        r50: bool = false,
+        r51: bool = false,
+        r52: bool = false,
+        r53: bool = false,
+        r54: bool = false,
+        r55: bool = false,
+        r56: bool = false,
+        r57: bool = false,
+        r58: bool = false,
+        r59: bool = false,
+        r60: bool = false,
+
+        fmp_ctrl: bool = false,
+        dsp_ctrl: bool = false,
+        acc0_lo: bool = false,
+        acc0_glo: bool = false,
+        acc0_hi: bool = false,
+        acc0_ghi: bool = false,
+        fp_ctrl: bool = false,
+        fpu_status: bool = false,
+        vfpu_status: 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,
+    },
+    .loongarch32, .loongarch64 => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: 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,
+
+        fcc0: bool = false,
+        fcc1: bool = false,
+        fcc2: bool = false,
+        fcc3: bool = false,
+        fcc4: bool = false,
+        fcc5: bool = false,
+        fcc6: bool = false,
+        fcc7: bool = false,
+
+        fcsr0: bool = false,
+        fcsr1: bool = false,
+        fcsr2: bool = false,
+        fcsr3: bool = false,
+
+        xr0: bool = false,
+        xr1: bool = false,
+        xr2: bool = false,
+        xr3: bool = false,
+        xr4: bool = false,
+        xr5: bool = false,
+        xr6: bool = false,
+        xr7: bool = false,
+        xr8: bool = false,
+        xr9: bool = false,
+        xr10: bool = false,
+        xr11: bool = false,
+        xr12: bool = false,
+        xr13: bool = false,
+        xr14: bool = false,
+        xr15: bool = false,
+        xr16: bool = false,
+        xr17: bool = false,
+        xr18: bool = false,
+        xr19: bool = false,
+        xr20: bool = false,
+        xr21: bool = false,
+        xr22: bool = false,
+        xr23: bool = false,
+        xr24: bool = false,
+        xr25: bool = false,
+        xr26: bool = false,
+        xr27: bool = false,
+        xr28: bool = false,
+        xr29: bool = false,
+        xr30: bool = false,
+        xr31: bool = false,
+
+        vr0: bool = false,
+        vr1: bool = false,
+        vr2: bool = false,
+        vr3: bool = false,
+        vr4: bool = false,
+        vr5: bool = false,
+        vr6: bool = false,
+        vr7: bool = false,
+        vr8: bool = false,
+        vr9: bool = false,
+        vr10: bool = false,
+        vr11: bool = false,
+        vr12: bool = false,
+        vr13: bool = false,
+        vr14: bool = false,
+        vr15: bool = false,
+        vr16: bool = false,
+        vr17: bool = false,
+        vr18: bool = false,
+        vr19: bool = false,
+        vr20: bool = false,
+        vr21: bool = false,
+        vr22: bool = false,
+        vr23: bool = false,
+        vr24: bool = false,
+        vr25: bool = false,
+        vr26: bool = false,
+        vr27: bool = false,
+        vr28: bool = false,
+        vr29: bool = false,
+        vr30: bool = false,
+        vr31: 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,
+    },
+    .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        cr0: bool = false,
+        cr1: bool = false,
+        cr2: bool = false,
+        cr3: bool = false,
+        cr4: bool = false,
+        cr5: bool = false,
+        cr6: bool = false,
+        cr7: bool = false,
+
+        xer: bool = false,
+        ctr: bool = false,
+        lr: 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,
+
+        fpscr: bool = false,
+        vscr: bool = false,
+
+        vs0: bool = false,
+        vs1: bool = false,
+        vs2: bool = false,
+        vs3: bool = false,
+        vs4: bool = false,
+        vs5: bool = false,
+        vs6: bool = false,
+        vs7: bool = false,
+        vs8: bool = false,
+        vs9: bool = false,
+        vs10: bool = false,
+        vs11: bool = false,
+        vs12: bool = false,
+        vs13: bool = false,
+        vs14: bool = false,
+        vs15: bool = false,
+        vs16: bool = false,
+        vs17: bool = false,
+        vs18: bool = false,
+        vs19: bool = false,
+        vs20: bool = false,
+        vs21: bool = false,
+        vs22: bool = false,
+        vs23: bool = false,
+        vs24: bool = false,
+        vs25: bool = false,
+        vs26: bool = false,
+        vs27: bool = false,
+        vs28: bool = false,
+        vs29: bool = false,
+        vs30: bool = false,
+        vs31: bool = false,
+        vs32: bool = false,
+        vs33: bool = false,
+        vs34: bool = false,
+        vs35: bool = false,
+        vs36: bool = false,
+        vs37: bool = false,
+        vs38: bool = false,
+        vs39: bool = false,
+        vs40: bool = false,
+        vs41: bool = false,
+        vs42: bool = false,
+        vs43: bool = false,
+        vs44: bool = false,
+        vs45: bool = false,
+        vs46: bool = false,
+        vs47: bool = false,
+        vs48: bool = false,
+        vs49: bool = false,
+        vs50: bool = false,
+        vs51: bool = false,
+        vs52: bool = false,
+        vs53: bool = false,
+        vs54: bool = false,
+        vs55: bool = false,
+        vs56: bool = false,
+        vs57: bool = false,
+        vs58: bool = false,
+        vs59: bool = false,
+        vs60: bool = false,
+        vs61: bool = false,
+        vs62: bool = false,
+        vs63: 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,
+
+        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,
+
+        acc0: bool = false,
+        acc1: bool = false,
+        acc2: bool = false,
+        acc3: bool = false,
+        acc4: bool = false,
+        acc5: bool = false,
+        acc6: bool = false,
+        acc7: bool = false,
+
+        acc: bool = false,
+        spefsc: bool = false,
+    },
+    .mips, .mipsel, .mips64, .mips64el => packed struct {
+        /// Whether the inline assembly code may perform stores to memory
+        /// addresses other than those derived from input pointer provenance.
+        memory: bool = false,
+
+        hi: bool = false,
+        lo: bool = false,
+        ac0: bool = false,
+        ac1: bool = false,
+        ac2: bool = false,
+        ac3: bool = false,
+        acx: 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,
+
+        fcsr: bool = false,
+        fcc0: bool = false,
+        fcc1: bool = false,
+        fcc2: bool = false,
+        fcc3: bool = false,
+        fcc4: bool = false,
+        fcc5: bool = false,
+        fcc6: bool = false,
+        fcc7: 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,
+        w30: bool = false,
+        w31: 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,
+
+        mpl0: bool = false,
+        mpl1: bool = false,
+        mpl2: bool = false,
+
+        p0: bool = false,
+        p1: bool = false,
+        p2: bool = false,
+    },
     else => packed struct {
         /// Whether the inline assembly code may perform stores to memory
         /// addresses other than those derived from input pointer provenance.