Lines Matching refs:arch
102 return !!(vcpu->arch.pending_exceptions);
154 kvm->arch.gpa_mm.pgd = kvm_pgd_alloc();
155 if (!kvm->arch.gpa_mm.pgd)
188 pgd_free(NULL, kvm->arch.gpa_mm.pgd);
294 vcpu = container_of(timer, struct kvm_vcpu, arch.comparecount_timer);
298 vcpu->arch.wait = 0;
322 hrtimer_init(&vcpu->arch.comparecount_timer, CLOCK_MONOTONIC,
324 vcpu->arch.comparecount_timer.function = kvm_mips_comparecount_wakeup;
357 vcpu->arch.guest_ebase = gebase;
384 vcpu->arch.vcpu_run = p;
391 dump_handler("kvm_vcpu_run", vcpu->arch.vcpu_run, p);
394 dump_handler("kvm_exit", gebase + 0x2000, vcpu->arch.vcpu_run);
404 vcpu->arch.kseg0_commpage = kzalloc(PAGE_SIZE << 1, GFP_KERNEL);
406 if (!vcpu->arch.kseg0_commpage) {
411 kvm_debug("Allocated COMM page @ %p\n", vcpu->arch.kseg0_commpage);
415 vcpu->arch.last_sched_cpu = -1;
416 vcpu->arch.last_exec_cpu = -1;
426 kfree(vcpu->arch.kseg0_commpage);
436 hrtimer_cancel(&vcpu->arch.comparecount_timer);
441 kfree(vcpu->arch.guest_ebase);
442 kfree(vcpu->arch.kseg0_commpage);
526 dvcpu->arch.wait = 0;
601 if (kvm_mips_guest_can_have_fpu(&vcpu->arch)) {
607 if (kvm_mips_guest_can_have_msa(&vcpu->arch))
624 if (kvm_mips_guest_can_have_fpu(&vcpu->arch)) {
647 if (kvm_mips_guest_can_have_msa(&vcpu->arch)) {
667 struct mips_coproc *cop0 = vcpu->arch.cop0;
668 struct mips_fpu_struct *fpu = &vcpu->arch.fpu;
677 v = (long)vcpu->arch.gprs[reg->id - KVM_REG_MIPS_R0];
681 v = (long)vcpu->arch.hi;
684 v = (long)vcpu->arch.lo;
688 v = (long)vcpu->arch.pc;
693 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
703 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
712 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
717 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
724 if (!kvm_mips_guest_has_msa(&vcpu->arch))
741 if (!kvm_mips_guest_has_msa(&vcpu->arch))
746 if (!kvm_mips_guest_has_msa(&vcpu->arch))
779 struct mips_coproc *cop0 = vcpu->arch.cop0;
780 struct mips_fpu_struct *fpu = &vcpu->arch.fpu;
811 vcpu->arch.gprs[reg->id - KVM_REG_MIPS_R0] = v;
815 vcpu->arch.hi = v;
818 vcpu->arch.lo = v;
822 vcpu->arch.pc = v;
827 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
837 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
846 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
851 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
858 if (!kvm_mips_guest_has_msa(&vcpu->arch))
872 if (!kvm_mips_guest_has_msa(&vcpu->arch))
877 if (!kvm_mips_guest_has_msa(&vcpu->arch))
903 vcpu->arch.fpu_enabled = true;
906 vcpu->arch.msa_enabled = true;
1114 kvm_read_c0_guest_cause(vcpu->arch.cop0) & C_TI;
1126 kvm_debug("\tpc = 0x%08lx\n", vcpu->arch.pc);
1127 kvm_debug("\texceptions: %08lx\n", vcpu->arch.pending_exceptions);
1131 vcpu->arch.gprs[i],
1132 vcpu->arch.gprs[i + 1],
1133 vcpu->arch.gprs[i + 2], vcpu->arch.gprs[i + 3]);
1135 kvm_debug("\thi: 0x%08lx\n", vcpu->arch.hi);
1136 kvm_debug("\tlo: 0x%08lx\n", vcpu->arch.lo);
1138 cop0 = vcpu->arch.cop0;
1154 for (i = 1; i < ARRAY_SIZE(vcpu->arch.gprs); i++)
1155 vcpu->arch.gprs[i] = regs->gpr[i];
1156 vcpu->arch.gprs[0] = 0; /* zero is special, and cannot be set. */
1157 vcpu->arch.hi = regs->hi;
1158 vcpu->arch.lo = regs->lo;
1159 vcpu->arch.pc = regs->pc;
1171 for (i = 0; i < ARRAY_SIZE(vcpu->arch.gprs); i++)
1172 regs->gpr[i] = vcpu->arch.gprs[i];
1174 regs->hi = vcpu->arch.hi;
1175 regs->lo = vcpu->arch.lo;
1176 regs->pc = vcpu->arch.pc;
1205 u32 cause = vcpu->arch.host_cp0_cause;
1207 u32 __user *opc = (u32 __user *) vcpu->arch.pc;
1208 unsigned long badvaddr = vcpu->arch.host_cp0_badvaddr;
1280 cause, kvm_read_c0_guest_status(vcpu->arch.cop0), opc,
1352 kvm_read_c0_guest_status(vcpu->arch.cop0));
1401 if (kvm_mips_guest_has_fpu(&vcpu->arch) &&
1403 __kvm_restore_fcsr(&vcpu->arch);
1405 if (kvm_mips_guest_has_msa(&vcpu->arch) &&
1407 __kvm_restore_msacsr(&vcpu->arch);
1420 struct mips_coproc *cop0 = vcpu->arch.cop0;
1438 vcpu->arch.aux_inuse & KVM_MIPS_AUX_MSA)
1453 if (!(vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU)) {
1454 __kvm_restore_fpu(&vcpu->arch);
1455 vcpu->arch.aux_inuse |= KVM_MIPS_AUX_FPU;
1468 struct mips_coproc *cop0 = vcpu->arch.cop0;
1477 if (kvm_mips_guest_has_fpu(&vcpu->arch)) {
1485 (vcpu->arch.aux_inuse & (KVM_MIPS_AUX_FPU |
1500 switch (vcpu->arch.aux_inuse & (KVM_MIPS_AUX_FPU | KVM_MIPS_AUX_MSA)) {
1505 __kvm_restore_msa_upper(&vcpu->arch);
1506 vcpu->arch.aux_inuse |= KVM_MIPS_AUX_MSA;
1511 __kvm_restore_msa(&vcpu->arch);
1512 vcpu->arch.aux_inuse |= KVM_MIPS_AUX_MSA;
1513 if (kvm_mips_guest_has_fpu(&vcpu->arch))
1514 vcpu->arch.aux_inuse |= KVM_MIPS_AUX_FPU;
1531 if (cpu_has_msa && vcpu->arch.aux_inuse & KVM_MIPS_AUX_MSA) {
1534 vcpu->arch.aux_inuse &= ~KVM_MIPS_AUX_MSA;
1536 if (vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU) {
1539 vcpu->arch.aux_inuse &= ~KVM_MIPS_AUX_FPU;
1555 if (cpu_has_msa && vcpu->arch.aux_inuse & KVM_MIPS_AUX_MSA) {
1561 __kvm_save_msa(&vcpu->arch);
1566 if (vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU) {
1570 vcpu->arch.aux_inuse &= ~(KVM_MIPS_AUX_FPU | KVM_MIPS_AUX_MSA);
1571 } else if (vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU) {
1577 __kvm_save_fpu(&vcpu->arch);
1578 vcpu->arch.aux_inuse &= ~KVM_MIPS_AUX_FPU;