GPR_V0
uasm_i_jalr(&p, GPR_V0, GPR_T0);
uasm_i_andi(&p, GPR_V0, GPR_T1, (1 << fls(smp_num_siblings)) - 1);
uasm_i_mfc0(&p, GPR_V0, C0_STATUS);
UASM_i_SW(&p, GPR_V0, offsetof(struct pt_regs, cp0_status), GPR_K1);
uasm_i_andi(&p, GPR_V0, GPR_V0, ST0_IM);
uasm_i_or(&p, GPR_K0, GPR_K0, GPR_V0);
uasm_i_mfc0(&p, GPR_V0, C0_STATUS);
uasm_i_or(&p, GPR_K0, GPR_V0, GPR_AT);
uasm_i_and(&p, GPR_V1, GPR_V0, GPR_AT);
uasm_i_and(&p, GPR_V0, GPR_V0, GPR_AT);
uasm_i_or(&p, GPR_V0, GPR_V0, GPR_AT);
uasm_i_ori(&p, GPR_V0, GPR_V0, ST0_SX | ST0_UX);
uasm_i_mtc0(&p, GPR_V0, C0_STATUS);
uasm_i_andi(&p, GPR_T0, GPR_V0, RESUME_HOST);
uasm_i_sra(&p, GPR_K0, GPR_V0, 2);
uasm_i_move(&p, GPR_V0, GPR_K0);