csr_xchg32
csr_xchg32(CSR_EUEN_LSXEN, CSR_EUEN_LSXEN, LOONGARCH_CSR_EUEN);
csr_xchg32(0, CSR_EUEN_LSXEN, LOONGARCH_CSR_EUEN);
csr_xchg32(CSR_EUEN_LASXEN, CSR_EUEN_LASXEN, LOONGARCH_CSR_EUEN);
csr_xchg32(0, CSR_EUEN_LASXEN, LOONGARCH_CSR_EUEN);
csr_xchg32(CSR_EUEN_LBTEN, CSR_EUEN_LBTEN, LOONGARCH_CSR_EUEN);
csr_xchg32(0, CSR_EUEN_LBTEN, LOONGARCH_CSR_EUEN);
csr_xchg32(idx, CSR_TLBIDX_IDXM, LOONGARCH_CSR_TLBIDX);
csr_xchg32(size << CSR_TLBIDX_SIZE, CSR_TLBIDX_SIZEM, LOONGARCH_CSR_TLBIDX);
csr_xchg32(val, val, LOONGARCH_CSR_ESTAT)
csr_xchg32(~(val), val, LOONGARCH_CSR_ESTAT)
#define csr_xchg(val, mask, reg) csr_xchg32(val, mask, reg)
csr_xchg32(val, CSR_STFILL, LOONGARCH_CSR_IMPCTL1);
csr_xchg32(val, CSR_LDSTORDER_MASK, LOONGARCH_CSR_IMPCTL1);
*euen_curr = csr_xchg32(euen_mask, euen_mask, LOONGARCH_CSR_EUEN);
*euen_curr = csr_xchg32(*euen_curr, euen_mask, LOONGARCH_CSR_EUEN);
csr_xchg32(0, CSR_CRMD_WE, LOONGARCH_CSR_CRMD);
csr_xchg32(0, CSR_CRMD_WE, LOONGARCH_CSR_CRMD);
csr_xchg32(activated ? CSR_CRMD_WE : 0, CSR_CRMD_WE, LOONGARCH_CSR_CRMD);
csr_xchg32(vs<<CSR_ECFG_VS_SHIFT, CSR_ECFG_VS, LOONGARCH_CSR_ECFG);