GPR_T0
UASM_i_LA(pp, GPR_T0, (long)CKSEG0);
uasm_i_addiu(pp, GPR_T1, GPR_T0, cache_size);
uasm_i_cache(pp, op, 0, GPR_T0);
uasm_i_addiu(pp, GPR_T0, GPR_T0, cache->linesz);
uasm_i_cache(pp, op, i * cache->linesz, GPR_T0);
uasm_i_addiu(pp, GPR_T0, GPR_T0, unroll_lines * cache->linesz);
uasm_il_bne(pp, pr, GPR_T0, GPR_T1, lbl);
uasm_i_addiu(pp, GPR_T0, GPR_ZERO, (perf_event << 5) | 0xf);
uasm_i_mtc0(pp, GPR_T0, 25, (perf_counter * 2) + 0); /* PerfCtlN */
UASM_i_LA(pp, GPR_T0, (long)CKSEG0);
uasm_i_lw(pp, GPR_ZERO, i * line_size * line_stride, GPR_T0);
i * line_size * line_stride, GPR_T0);
i * line_size * line_stride, GPR_T0);
uasm_i_lui(pp, GPR_T0, uasm_rel_hi(0x80000000));
uasm_i_or(pp, GPR_T1, GPR_T1, GPR_T0);
UASM_i_LA(&p, GPR_T0, (long)mips_cps_pm_save);
uasm_i_jalr(&p, GPR_V0, GPR_T0);
uasm_i_lw(&p, GPR_T0, 0, r_nc_count);
uasm_il_bltz(&p, &r, GPR_T0, lbl_secondary_cont);
uasm_i_addiu(&p, GPR_T0, GPR_ZERO, TCHALT_H);
uasm_i_mtc0(&p, GPR_T0, 2, 4);
uasm_i_addiu(&p, GPR_T0, GPR_ZERO, 1 << vpe_id);
uasm_i_sw(&p, GPR_T0, 0, GPR_T1);
uasm_i_addiu(&p, GPR_T0, GPR_ZERO, 1 << cpu_core(&cpu_data[cpu]));
uasm_i_sw(&p, GPR_T0, 0, r_pcohctl);
uasm_i_lw(&p, GPR_T0, 0, r_pcohctl);
uasm_i_lw(&p, GPR_T0, 0, r_pcohctl);
UASM_i_LA(&p, GPR_T0, (long)addr_cpc_cl_cmd());
uasm_i_sw(&p, GPR_T1, 0, GPR_T0);
uasm_i_addiu(&p, GPR_T0, GPR_ZERO, mips_cm_revision() < CM_REV_CM3
uasm_i_sw(&p, GPR_T0, 0, r_pcohctl);
uasm_i_lw(&p, GPR_T0, 0, r_pcohctl);
UASM_i_LW(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, pc), GPR_K1);
UASM_i_MTC0(&p, GPR_T0, C0_EPC);
uasm_i_mfc0(&p, GPR_T0, C0_GUESTCTL1);
uasm_i_ext(&p, GPR_T1, GPR_T0, MIPS_GCTL1_ID_SHIFT,
uasm_i_ins(&p, GPR_T0, GPR_T1, MIPS_GCTL1_RID_SHIFT,
uasm_i_mtc0(&p, GPR_T0, C0_GUESTCTL1);
uasm_i_mfhi(&p, GPR_T0);
UASM_i_SW(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, hi), GPR_K1);
uasm_i_mflo(&p, GPR_T0);
UASM_i_SW(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, lo), GPR_K1);
UASM_i_MFC0(&p, GPR_T0, scratch_tmp[0], scratch_tmp[1]);
UASM_i_SW(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, gprs[GPR_K1]), GPR_K1);
uasm_i_cfc1(&p, GPR_T0, 31);
uasm_i_sw(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, fpu.fcr31),
uasm_i_mfc0(&p, GPR_T0, C0_CONFIG5);
uasm_i_ext(&p, GPR_T0, GPR_T0, 27, 1); /* MIPS_CONF5_MSAEN */
uasm_il_beqz(&p, &r, GPR_T0, label_msa_1);
uasm_i_cfcmsa(&p, GPR_T0, MSA_CSR);
uasm_i_sw(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, fpu.msacsr),
uasm_i_mfc0(&p, GPR_T0, C0_GUESTCTL1);
uasm_i_ins(&p, GPR_T0, GPR_ZERO, MIPS_GCTL1_RID_SHIFT,
uasm_i_mtc0(&p, GPR_T0, C0_GUESTCTL1);
uasm_i_andi(&p, GPR_T0, GPR_V0, RESUME_HOST);
uasm_il_bnez(&p, &r, GPR_T0, label_return_to_host);
UASM_i_LW(&p, GPR_T0, offsetof(struct kvm_vcpu_arch, guest_ebase), GPR_K1);
build_set_exc_base(&p, GPR_T0);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);
build_copy_load(&buf, GPR_T0, off);
build_copy_store(&buf, GPR_T0, off);