Lines Matching refs:arch

46 	struct kvm_vcpu_arch *arch = &vcpu->arch;
66 arch->gprs[insn.r_format.rd] = epc + 8;
69 nextpc = arch->gprs[insn.r_format.rs];
85 if ((long)arch->gprs[insn.i_format.rs] < 0)
94 if ((long)arch->gprs[insn.i_format.rs] >= 0)
103 arch->gprs[31] = epc + 8;
104 if ((long)arch->gprs[insn.i_format.rs] < 0)
113 arch->gprs[31] = epc + 8;
114 if ((long)arch->gprs[insn.i_format.rs] >= 0)
142 arch->gprs[31] = instpc + 8;
155 if (arch->gprs[insn.i_format.rs] ==
156 arch->gprs[insn.i_format.rt])
165 if (arch->gprs[insn.i_format.rs] !=
166 arch->gprs[insn.i_format.rt])
179 if ((long)arch->gprs[insn.i_format.rs] <= 0)
192 if ((long)arch->gprs[insn.i_format.rs] > 0)
249 err = kvm_compute_return_epc(vcpu, vcpu->arch.pc,
250 &vcpu->arch.pc);
254 vcpu->arch.pc += 4;
257 kvm_debug("update_pc(): New PC: %#lx\n", vcpu->arch.pc);
276 *out = vcpu->arch.host_cp0_badinstr;
297 *out = vcpu->arch.host_cp0_badinstrp;
314 struct mips_coproc *cop0 = vcpu->arch.cop0;
316 return (vcpu->arch.count_ctl & KVM_REG_MIPS_COUNT_CTL_DC) ||
323 * Caches the dynamic nanosecond bias in vcpu->arch.count_dyn_bias.
333 delta = now_ns + vcpu->arch.count_dyn_bias;
335 if (delta >= vcpu->arch.count_period) {
337 periods = div64_s64(now_ns, vcpu->arch.count_period);
338 vcpu->arch.count_dyn_bias = -periods * vcpu->arch.count_period;
340 delta = now_ns + vcpu->arch.count_dyn_bias;
353 return div_u64(delta * vcpu->arch.count_hz, NSEC_PER_SEC);
368 if (unlikely(vcpu->arch.count_ctl & KVM_REG_MIPS_COUNT_CTL_DC))
369 return vcpu->arch.count_resume;
386 struct mips_coproc *cop0 = vcpu->arch.cop0;
392 count = vcpu->arch.count_bias + kvm_mips_ktime_to_count(vcpu, now);
408 expires = hrtimer_get_expires(&vcpu->arch.comparecount_timer);
409 threshold = ktime_add_ns(now, vcpu->arch.count_period / 4);
415 running = hrtimer_cancel(&vcpu->arch.comparecount_timer);
426 vcpu->arch.count_period);
427 hrtimer_start(&vcpu->arch.comparecount_timer, expires,
446 struct mips_coproc *cop0 = vcpu->arch.cop0;
476 hrtimer_cancel(&vcpu->arch.comparecount_timer);
504 struct mips_coproc *cop0 = vcpu->arch.cop0;
512 delta = div_u64(delta * NSEC_PER_SEC, vcpu->arch.count_hz);
516 hrtimer_cancel(&vcpu->arch.comparecount_timer);
517 hrtimer_start(&vcpu->arch.comparecount_timer, expire, HRTIMER_MODE_ABS);
551 before_count = vcpu->arch.count_bias +
564 vcpu->arch.count_bias += drift;
571 now_count = vcpu->arch.count_bias + kvm_mips_ktime_to_count(vcpu, now);
580 vcpu->arch.count_bias += drift;
587 delta = div_u64(delta * NSEC_PER_SEC, vcpu->arch.count_hz);
605 struct mips_coproc *cop0 = vcpu->arch.cop0;
610 vcpu->arch.count_bias = count - kvm_mips_ktime_to_count(vcpu, now);
630 vcpu->arch.count_hz = count_hz;
631 vcpu->arch.count_period = div_u64((u64)NSEC_PER_SEC << 32, count_hz);
632 vcpu->arch.count_dyn_bias = 0;
651 struct mips_coproc *cop0 = vcpu->arch.cop0;
660 if (vcpu->arch.count_hz == count_hz)
673 vcpu->arch.count_hz = count_hz;
674 vcpu->arch.count_period = div_u64((u64)NSEC_PER_SEC << 32, count_hz);
675 vcpu->arch.count_dyn_bias = 0;
678 vcpu->arch.count_bias = count - kvm_mips_ktime_to_count(vcpu, now);
698 struct mips_coproc *cop0 = vcpu->arch.cop0;
783 struct mips_coproc *cop0 = vcpu->arch.cop0;
788 hrtimer_cancel(&vcpu->arch.comparecount_timer);
810 struct mips_coproc *cop0 = vcpu->arch.cop0;
813 if (!(vcpu->arch.count_ctl & KVM_REG_MIPS_COUNT_CTL_DC))
830 struct mips_coproc *cop0 = vcpu->arch.cop0;
856 struct mips_coproc *cop0 = vcpu->arch.cop0;
857 s64 changed = count_ctl ^ vcpu->arch.count_ctl;
867 vcpu->arch.count_ctl = count_ctl;
875 vcpu->arch.count_resume = ktime_get();
878 vcpu->arch.count_resume = kvm_mips_count_disable(vcpu);
888 vcpu->arch.count_hz);
889 expire = ktime_add_ns(vcpu->arch.count_resume, delta);
926 vcpu->arch.count_resume = ns_to_ktime(count_resume);
941 hrtimer_add_expires_ns(&vcpu->arch.comparecount_timer,
942 vcpu->arch.count_period);
948 struct mips_coproc *cop0 = vcpu->arch.cop0;
953 vcpu->arch.pc = kvm_read_c0_guest_errorepc(cop0);
955 kvm_debug("[%#lx] ERET to %#lx\n", vcpu->arch.pc,
958 vcpu->arch.pc = kvm_read_c0_guest_epc(cop0);
962 vcpu->arch.pc);
971 kvm_debug("[%#lx] !!!WAIT!!! (%#lx)\n", vcpu->arch.pc,
972 vcpu->arch.pending_exceptions);
976 if (!vcpu->arch.pending_exceptions) {
978 vcpu->arch.wait = 1;
997 struct mips_coproc *cop0 = vcpu->arch.cop0;
998 struct mm_struct *kern_mm = &vcpu->arch.guest_kernel_mm;
1031 struct mips_coproc *cop0 = vcpu->arch.cop0;
1033 unsigned long pc = vcpu->arch.pc;
1043 tlb = &vcpu->arch.guest_tlb[index];
1063 struct mm_struct *kern_mm = &vcpu->arch.guest_kernel_mm;
1064 struct mm_struct *user_mm = &vcpu->arch.guest_user_mm;
1104 struct mips_coproc *cop0 = vcpu->arch.cop0;
1107 unsigned long pc = vcpu->arch.pc;
1119 tlb = &vcpu->arch.guest_tlb[index];
1140 struct mips_coproc *cop0 = vcpu->arch.cop0;
1142 unsigned long pc = vcpu->arch.pc;
1146 tlb = &vcpu->arch.guest_tlb[index];
1165 struct mips_coproc *cop0 = vcpu->arch.cop0;
1167 unsigned long pc = vcpu->arch.pc;
1192 if (kvm_mips_guest_can_have_fpu(&vcpu->arch))
1211 if (kvm_mips_guest_can_have_msa(&vcpu->arch))
1247 if (kvm_mips_guest_has_msa(&vcpu->arch))
1254 if (kvm_mips_guest_has_fpu(&vcpu->arch)) {
1267 struct mips_coproc *cop0 = vcpu->arch.cop0;
1276 curr_pc = vcpu->arch.pc;
1320 vcpu->arch.gprs[rt] =
1323 vcpu->arch.gprs[rt] = 0x0;
1328 vcpu->arch.gprs[rt] = (s32)cop0->reg[rd][sel];
1337 vcpu->arch.gprs[rt]);
1341 vcpu->arch.gprs[rt] = cop0->reg[rd][sel];
1345 vcpu->arch.gprs[rt]);
1354 vcpu->arch.gprs[rt]);
1357 && (vcpu->arch.gprs[rt] >=
1360 vcpu->arch.gprs[rt]);
1370 vcpu->arch.gprs[rt]);
1373 vcpu->arch.gprs[rt]);
1377 kvm_mips_write_count(vcpu, vcpu->arch.gprs[rt]);
1383 vcpu->arch.gprs[rt],
1389 val = vcpu->arch.gprs[rt];
1400 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
1431 vcpu->arch.aux_inuse & KVM_MIPS_AUX_MSA)
1442 vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU)
1454 if (!kvm_mips_guest_has_fpu(&vcpu->arch))
1461 val = vcpu->arch.gprs[rt];
1477 vcpu->arch.aux_inuse & KVM_MIPS_AUX_FPU)
1487 vcpu->arch.aux_inuse & KVM_MIPS_AUX_MSA)
1498 new_cause = vcpu->arch.gprs[rt];
1518 cop0->reg[rd][sel] = vcpu->arch.gprs[rt] & mask;
1520 cop0->reg[rd][sel] = vcpu->arch.gprs[rt];
1529 vcpu->arch.pc, rt, rd, sel);
1532 vcpu->arch.gprs[rt]);
1541 vcpu->arch.gprs[rt] =
1546 vcpu->arch.pc);
1550 vcpu->arch.pc);
1570 vcpu->arch.gprs[rt]);
1571 vcpu->arch.gprs[rd] = vcpu->arch.gprs[rt];
1576 vcpu->arch.pc, inst.c0r_format.rs);
1585 vcpu->arch.pc = curr_pc;
1613 curr_pc = vcpu->arch.pc;
1621 vcpu->arch.host_cp0_badvaddr);
1629 *(u64 *)data = vcpu->arch.gprs[rt];
1632 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1633 vcpu->arch.gprs[rt], *(u64 *)data);
1639 *(u32 *)data = vcpu->arch.gprs[rt];
1642 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1643 vcpu->arch.gprs[rt], *(u32 *)data);
1648 *(u16 *)data = vcpu->arch.gprs[rt];
1651 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1652 vcpu->arch.gprs[rt], *(u16 *)data);
1657 *(u8 *)data = vcpu->arch.gprs[rt];
1660 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1661 vcpu->arch.gprs[rt], *(u8 *)data);
1666 vcpu->arch.host_cp0_badvaddr) & (~0x3);
1668 imme = vcpu->arch.host_cp0_badvaddr & 0x3;
1672 (vcpu->arch.gprs[rt] >> 24);
1676 (vcpu->arch.gprs[rt] >> 16);
1680 (vcpu->arch.gprs[rt] >> 8);
1683 *(u32 *)data = vcpu->arch.gprs[rt];
1690 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1691 vcpu->arch.gprs[rt], *(u32 *)data);
1696 vcpu->arch.host_cp0_badvaddr) & (~0x3);
1698 imme = vcpu->arch.host_cp0_badvaddr & 0x3;
1701 *(u32 *)data = vcpu->arch.gprs[rt];
1705 (vcpu->arch.gprs[rt] << 8);
1709 (vcpu->arch.gprs[rt] << 16);
1713 (vcpu->arch.gprs[rt] << 24);
1720 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1721 vcpu->arch.gprs[rt], *(u32 *)data);
1727 vcpu->arch.host_cp0_badvaddr) & (~0x7);
1730 imme = vcpu->arch.host_cp0_badvaddr & 0x7;
1734 ((vcpu->arch.gprs[rt] >> 56) & 0xff);
1738 ((vcpu->arch.gprs[rt] >> 48) & 0xffff);
1742 ((vcpu->arch.gprs[rt] >> 40) & 0xffffff);
1746 ((vcpu->arch.gprs[rt] >> 32) & 0xffffffff);
1750 ((vcpu->arch.gprs[rt] >> 24) & 0xffffffffff);
1754 ((vcpu->arch.gprs[rt] >> 16) & 0xffffffffffff);
1758 ((vcpu->arch.gprs[rt] >> 8) & 0xffffffffffffff);
1761 *(u64 *)data = vcpu->arch.gprs[rt];
1768 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1769 vcpu->arch.gprs[rt], *(u64 *)data);
1774 vcpu->arch.host_cp0_badvaddr) & (~0x7);
1777 imme = vcpu->arch.host_cp0_badvaddr & 0x7;
1780 *(u64 *)data = vcpu->arch.gprs[rt];
1784 (vcpu->arch.gprs[rt] << 8);
1788 (vcpu->arch.gprs[rt] << 16);
1792 (vcpu->arch.gprs[rt] << 24);
1796 (vcpu->arch.gprs[rt] << 32);
1800 (vcpu->arch.gprs[rt] << 40);
1804 (vcpu->arch.gprs[rt] << 48);
1808 (vcpu->arch.gprs[rt] << 56);
1815 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1816 vcpu->arch.gprs[rt], *(u64 *)data);
1834 *(u8 *)data = vcpu->arch.gprs[rt];
1837 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1838 vcpu->arch.gprs[rt], *(u8 *)data);
1842 *(u16 *)data = vcpu->arch.gprs[rt];
1845 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1846 vcpu->arch.gprs[rt], *(u16 *)data);
1850 *(u32 *)data = vcpu->arch.gprs[rt];
1853 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1854 vcpu->arch.gprs[rt], *(u32 *)data);
1858 *(u64 *)data = vcpu->arch.gprs[rt];
1861 vcpu->arch.pc, vcpu->arch.host_cp0_badvaddr,
1862 vcpu->arch.gprs[rt], *(u64 *)data);
1893 vcpu->arch.pc = curr_pc;
1915 curr_pc = vcpu->arch.pc;
1919 vcpu->arch.io_pc = vcpu->arch.pc;
1920 vcpu->arch.pc = curr_pc;
1922 vcpu->arch.io_gpr = rt;
1925 vcpu->arch.host_cp0_badvaddr);
1960 vcpu->arch.host_cp0_badvaddr) & (~0x3);
1963 imme = vcpu->arch.host_cp0_badvaddr & 0x3;
1984 vcpu->arch.host_cp0_badvaddr) & (~0x3);
1987 imme = vcpu->arch.host_cp0_badvaddr & 0x3;
2009 vcpu->arch.host_cp0_badvaddr) & (~0x7);
2012 imme = vcpu->arch.host_cp0_badvaddr & 0x7;
2045 vcpu->arch.host_cp0_badvaddr) & (~0x7);
2048 imme = vcpu->arch.host_cp0_badvaddr & 0x7;
2167 vcpu->arch.host_cp0_badvaddr = addr;
2168 vcpu->arch.pc = curr_pc;
2173 vcpu->arch.host_cp0_badvaddr = addr;
2174 vcpu->arch.pc = curr_pc;
2190 struct kvm_vcpu_arch *arch = &vcpu->arch;
2198 curr_pc = vcpu->arch.pc;
2212 va = arch->gprs[base] + offset;
2215 cache, op, base, arch->gprs[base], offset);
2224 vcpu->arch.pc, vcpu->arch.gprs[31], cache, op, base,
2225 arch->gprs[base], offset);
2301 cache, op, base, arch->gprs[base], offset);
2308 vcpu->arch.pc = curr_pc;
2377 struct mips_coproc *cop0 = vcpu->arch.cop0;
2389 struct mips_coproc *cop0 = vcpu->arch.cop0;
2390 struct kvm_vcpu_arch *arch = &vcpu->arch;
2395 kvm_write_c0_guest_epc(cop0, arch->pc);
2403 kvm_debug("Delivering SYSCALL @ pc %#lx\n", arch->pc);
2409 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2423 struct mips_coproc *cop0 = vcpu->arch.cop0;
2424 struct kvm_vcpu_arch *arch = &vcpu->arch;
2425 unsigned long entryhi = (vcpu->arch. host_cp0_badvaddr & VPN2_MASK) |
2430 kvm_write_c0_guest_epc(cop0, arch->pc);
2439 arch->pc);
2442 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x0;
2446 arch->pc);
2448 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2455 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2466 struct mips_coproc *cop0 = vcpu->arch.cop0;
2467 struct kvm_vcpu_arch *arch = &vcpu->arch;
2469 (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
2474 kvm_write_c0_guest_epc(cop0, arch->pc);
2483 arch->pc);
2486 arch->pc);
2490 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2496 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2507 struct mips_coproc *cop0 = vcpu->arch.cop0;
2508 struct kvm_vcpu_arch *arch = &vcpu->arch;
2509 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
2514 kvm_write_c0_guest_epc(cop0, arch->pc);
2523 arch->pc);
2526 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x0;
2529 arch->pc);
2530 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2537 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2548 struct mips_coproc *cop0 = vcpu->arch.cop0;
2549 struct kvm_vcpu_arch *arch = &vcpu->arch;
2550 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
2555 kvm_write_c0_guest_epc(cop0, arch->pc);
2564 arch->pc);
2567 arch->pc);
2571 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2577 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2588 struct mips_coproc *cop0 = vcpu->arch.cop0;
2589 unsigned long entryhi = (vcpu->arch.host_cp0_badvaddr & VPN2_MASK) |
2591 struct kvm_vcpu_arch *arch = &vcpu->arch;
2595 kvm_write_c0_guest_epc(cop0, arch->pc);
2604 arch->pc);
2607 arch->pc);
2610 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2616 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2627 struct mips_coproc *cop0 = vcpu->arch.cop0;
2628 struct kvm_vcpu_arch *arch = &vcpu->arch;
2632 kvm_write_c0_guest_epc(cop0, arch->pc);
2642 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2655 struct mips_coproc *cop0 = vcpu->arch.cop0;
2656 struct kvm_vcpu_arch *arch = &vcpu->arch;
2661 kvm_write_c0_guest_epc(cop0, arch->pc);
2669 kvm_debug("Delivering RI @ pc %#lx\n", arch->pc);
2675 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2689 struct mips_coproc *cop0 = vcpu->arch.cop0;
2690 struct kvm_vcpu_arch *arch = &vcpu->arch;
2695 kvm_write_c0_guest_epc(cop0, arch->pc);
2703 kvm_debug("Delivering BP @ pc %#lx\n", arch->pc);
2709 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2723 struct mips_coproc *cop0 = vcpu->arch.cop0;
2724 struct kvm_vcpu_arch *arch = &vcpu->arch;
2729 kvm_write_c0_guest_epc(cop0, arch->pc);
2737 kvm_debug("Delivering TRAP @ pc %#lx\n", arch->pc);
2743 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2757 struct mips_coproc *cop0 = vcpu->arch.cop0;
2758 struct kvm_vcpu_arch *arch = &vcpu->arch;
2763 kvm_write_c0_guest_epc(cop0, arch->pc);
2771 kvm_debug("Delivering MSAFPE @ pc %#lx\n", arch->pc);
2777 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2791 struct mips_coproc *cop0 = vcpu->arch.cop0;
2792 struct kvm_vcpu_arch *arch = &vcpu->arch;
2797 kvm_write_c0_guest_epc(cop0, arch->pc);
2805 kvm_debug("Delivering FPE @ pc %#lx\n", arch->pc);
2811 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2825 struct mips_coproc *cop0 = vcpu->arch.cop0;
2826 struct kvm_vcpu_arch *arch = &vcpu->arch;
2831 kvm_write_c0_guest_epc(cop0, arch->pc);
2839 kvm_debug("Delivering MSADIS @ pc %#lx\n", arch->pc);
2845 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
2858 struct mips_coproc *cop0 = vcpu->arch.cop0;
2859 struct kvm_vcpu_arch *arch = &vcpu->arch;
2869 curr_pc = vcpu->arch.pc;
2900 arch->gprs[rt] = vcpu->vcpu_id;
2903 arch->gprs[rt] = min(current_cpu_data.dcache.linesz,
2907 arch->gprs[rt] = (s32)kvm_mips_read_count(vcpu);
2913 arch->gprs[rt] = 1;
2916 arch->gprs[rt] = 2;
2920 arch->gprs[rt] = kvm_read_c0_guest_userlocal(cop0);
2929 vcpu->arch.gprs[rt]);
2943 vcpu->arch.pc = curr_pc;
2950 unsigned long *gpr = &vcpu->arch.gprs[vcpu->arch.io_gpr];
2960 vcpu->arch.pc = vcpu->arch.io_pc;
2966 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffffffff) |
2970 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffffff) |
2974 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffff) |
2978 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffff) |
2982 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffff) |
2986 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffff) |
2990 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xff) |
2998 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xff00000000000000) |
3002 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffff000000000000) |
3006 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffff0000000000) |
3010 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffff00000000) |
3014 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffff000000) |
3018 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffffff0000) |
3022 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffffffffffff00) |
3039 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffff) |
3043 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffff) |
3047 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xff) |
3055 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xff000000) |
3059 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffff0000) |
3063 *gpr = (vcpu->arch.gprs[vcpu->arch.io_gpr] & 0xffffff00) |
3095 struct mips_coproc *cop0 = vcpu->arch.cop0;
3096 struct kvm_vcpu_arch *arch = &vcpu->arch;
3101 kvm_write_c0_guest_epc(cop0, arch->pc);
3113 arch->pc = kvm_mips_guest_exception_base(vcpu) + 0x180;
3114 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
3133 unsigned long badvaddr = vcpu->arch.host_cp0_badvaddr;
3229 unsigned long va = vcpu->arch.host_cp0_badvaddr;
3233 vcpu->arch.host_cp0_badvaddr);
3243 (kvm_read_c0_guest_entryhi(vcpu->arch.cop0) &
3256 struct kvm_mips_tlb *tlb = &vcpu->arch.guest_tlb[index];