Lines Matching defs:cop0
314 struct mips_coproc *cop0 = vcpu->arch.cop0;
317 (kvm_read_c0_guest_cause(cop0) & CAUSEF_DC);
386 struct mips_coproc *cop0 = vcpu->arch.cop0;
393 compare = kvm_read_c0_guest_compare(cop0);
446 struct mips_coproc *cop0 = vcpu->arch.cop0;
450 return kvm_read_c0_guest_count(cop0);
504 struct mips_coproc *cop0 = vcpu->arch.cop0;
510 compare = kvm_read_c0_guest_compare(cop0);
605 struct mips_coproc *cop0 = vcpu->arch.cop0;
614 kvm_write_c0_guest_count(cop0, count);
651 struct mips_coproc *cop0 = vcpu->arch.cop0;
667 count = kvm_read_c0_guest_count(cop0);
698 struct mips_coproc *cop0 = vcpu->arch.cop0;
700 u32 old_compare = kvm_read_c0_guest_compare(cop0);
711 kvm_write_c0_guest_compare(cop0, compare);
742 cause = kvm_read_c0_guest_cause(cop0);
744 kvm_write_c0_guest_compare(cop0, compare);
753 kvm_write_c0_guest_cause(cop0, cause);
783 struct mips_coproc *cop0 = vcpu->arch.cop0;
793 kvm_write_c0_guest_count(cop0, count);
810 struct mips_coproc *cop0 = vcpu->arch.cop0;
812 kvm_set_c0_guest_cause(cop0, CAUSEF_DC);
830 struct mips_coproc *cop0 = vcpu->arch.cop0;
833 kvm_clear_c0_guest_cause(cop0, CAUSEF_DC);
840 count = kvm_read_c0_guest_count(cop0);
856 struct mips_coproc *cop0 = vcpu->arch.cop0;
872 if (kvm_read_c0_guest_cause(cop0) & CAUSEF_DC) {
884 count = kvm_read_c0_guest_count(cop0);
885 compare = kvm_read_c0_guest_compare(cop0);
948 struct mips_coproc *cop0 = vcpu->arch.cop0;
951 if (kvm_read_c0_guest_status(cop0) & ST0_ERL) {
952 kvm_clear_c0_guest_status(cop0, ST0_ERL);
953 vcpu->arch.pc = kvm_read_c0_guest_errorepc(cop0);
954 } else if (kvm_read_c0_guest_status(cop0) & ST0_EXL) {
956 kvm_read_c0_guest_epc(cop0));
957 kvm_clear_c0_guest_status(cop0, ST0_EXL);
958 vcpu->arch.pc = kvm_read_c0_guest_epc(cop0);
997 struct mips_coproc *cop0 = vcpu->arch.cop0;
1002 if (((kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID) != nasid)) {
1003 trace_kvm_asid_change(vcpu, kvm_read_c0_guest_entryhi(cop0) &
1026 kvm_write_c0_guest_entryhi(cop0, entryhi);
1031 struct mips_coproc *cop0 = vcpu->arch.cop0;
1036 index = kvm_read_c0_guest_index(cop0);
1044 kvm_write_c0_guest_pagemask(cop0, tlb->tlb_mask);
1045 kvm_write_c0_guest_entrylo0(cop0, tlb->tlb_lo[0]);
1046 kvm_write_c0_guest_entrylo1(cop0, tlb->tlb_lo[1]);
1104 struct mips_coproc *cop0 = vcpu->arch.cop0;
1105 int index = kvm_read_c0_guest_index(cop0);
1112 pc, index, kvm_read_c0_guest_entryhi(cop0),
1113 kvm_read_c0_guest_entrylo0(cop0),
1114 kvm_read_c0_guest_entrylo1(cop0),
1115 kvm_read_c0_guest_pagemask(cop0));
1123 tlb->tlb_mask = kvm_read_c0_guest_pagemask(cop0);
1124 tlb->tlb_hi = kvm_read_c0_guest_entryhi(cop0);
1125 tlb->tlb_lo[0] = kvm_read_c0_guest_entrylo0(cop0);
1126 tlb->tlb_lo[1] = kvm_read_c0_guest_entrylo1(cop0);
1129 pc, index, kvm_read_c0_guest_entryhi(cop0),
1130 kvm_read_c0_guest_entrylo0(cop0),
1131 kvm_read_c0_guest_entrylo1(cop0),
1132 kvm_read_c0_guest_pagemask(cop0));
1140 struct mips_coproc *cop0 = vcpu->arch.cop0;
1150 tlb->tlb_mask = kvm_read_c0_guest_pagemask(cop0);
1151 tlb->tlb_hi = kvm_read_c0_guest_entryhi(cop0);
1152 tlb->tlb_lo[0] = kvm_read_c0_guest_entrylo0(cop0);
1153 tlb->tlb_lo[1] = kvm_read_c0_guest_entrylo1(cop0);
1156 pc, index, kvm_read_c0_guest_entryhi(cop0),
1157 kvm_read_c0_guest_entrylo0(cop0),
1158 kvm_read_c0_guest_entrylo1(cop0));
1165 struct mips_coproc *cop0 = vcpu->arch.cop0;
1166 long entryhi = kvm_read_c0_guest_entryhi(cop0);
1172 kvm_write_c0_guest_index(cop0, index);
1267 struct mips_coproc *cop0 = vcpu->arch.cop0;
1316 cop0->stat[rd][sel]++;
1328 vcpu->arch.gprs[rt] = (s32)cop0->reg[rd][sel];
1341 vcpu->arch.gprs[rt] = cop0->reg[rd][sel];
1350 cop0->stat[rd][sel]++;
1369 kvm_change_c0_guest_ebase(cop0, 0x1ffff000,
1388 old_val = kvm_read_c0_guest_status(cop0);
1447 kvm_write_c0_guest_status(cop0, val);
1460 old_val = kvm_read_c0_guest_config5(cop0);
1493 kvm_write_c0_guest_config5(cop0, val);
1497 old_cause = kvm_read_c0_guest_cause(cop0);
1500 kvm_change_c0_guest_cause(cop0, 0x08800300,
1515 if (kvm_read_c0_guest_config3(cop0) &
1518 cop0->reg[rd][sel] = vcpu->arch.gprs[rt] & mask;
1520 cop0->reg[rd][sel] = vcpu->arch.gprs[rt];
1538 cop0->stat[MIPS_CP0_STATUS][0]++;
1542 kvm_read_c0_guest_status(cop0);
1547 kvm_set_c0_guest_status(cop0, ST0_IE);
1551 kvm_clear_c0_guest_status(cop0, ST0_IE);
1558 u32 css = cop0->reg[MIPS_CP0_STATUS][2] & 0xf;
1560 (cop0->reg[MIPS_CP0_STATUS][2] >> 6) & 0xf;
2377 struct mips_coproc *cop0 = vcpu->arch.cop0;
2379 if (kvm_read_c0_guest_status(cop0) & ST0_BEV)
2382 return kvm_read_c0_guest_ebase(cop0) & MIPS_EBASE_BASE;
2389 struct mips_coproc *cop0 = vcpu->arch.cop0;
2393 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2395 kvm_write_c0_guest_epc(cop0, arch->pc);
2396 kvm_set_c0_guest_status(cop0, ST0_EXL);
2399 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2401 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2405 kvm_change_c0_guest_cause(cop0, (0xff),
2423 struct mips_coproc *cop0 = vcpu->arch.cop0;
2426 (kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID);
2428 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2430 kvm_write_c0_guest_epc(cop0, arch->pc);
2431 kvm_set_c0_guest_status(cop0, ST0_EXL);
2434 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2436 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2451 kvm_change_c0_guest_cause(cop0, (0xff),
2455 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2457 kvm_write_c0_guest_entryhi(cop0, entryhi);
2466 struct mips_coproc *cop0 = vcpu->arch.cop0;
2470 (kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID);
2472 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2474 kvm_write_c0_guest_epc(cop0, arch->pc);
2475 kvm_set_c0_guest_status(cop0, ST0_EXL);
2478 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2480 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2492 kvm_change_c0_guest_cause(cop0, (0xff),
2496 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2498 kvm_write_c0_guest_entryhi(cop0, entryhi);
2507 struct mips_coproc *cop0 = vcpu->arch.cop0;
2510 (kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID);
2512 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2514 kvm_write_c0_guest_epc(cop0, arch->pc);
2515 kvm_set_c0_guest_status(cop0, ST0_EXL);
2518 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2520 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2533 kvm_change_c0_guest_cause(cop0, (0xff),
2537 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2539 kvm_write_c0_guest_entryhi(cop0, entryhi);
2548 struct mips_coproc *cop0 = vcpu->arch.cop0;
2551 (kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID);
2553 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2555 kvm_write_c0_guest_epc(cop0, arch->pc);
2556 kvm_set_c0_guest_status(cop0, ST0_EXL);
2559 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2561 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2573 kvm_change_c0_guest_cause(cop0, (0xff),
2577 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2579 kvm_write_c0_guest_entryhi(cop0, entryhi);
2588 struct mips_coproc *cop0 = vcpu->arch.cop0;
2590 (kvm_read_c0_guest_entryhi(cop0) & KVM_ENTRYHI_ASID);
2593 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2595 kvm_write_c0_guest_epc(cop0, arch->pc);
2596 kvm_set_c0_guest_status(cop0, ST0_EXL);
2599 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2601 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2612 kvm_change_c0_guest_cause(cop0, (0xff),
2616 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
2618 kvm_write_c0_guest_entryhi(cop0, entryhi);
2627 struct mips_coproc *cop0 = vcpu->arch.cop0;
2630 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2632 kvm_write_c0_guest_epc(cop0, arch->pc);
2633 kvm_set_c0_guest_status(cop0, ST0_EXL);
2636 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2638 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2644 kvm_change_c0_guest_cause(cop0, (0xff),
2646 kvm_change_c0_guest_cause(cop0, (CAUSEF_CE), (0x1 << CAUSEB_CE));
2655 struct mips_coproc *cop0 = vcpu->arch.cop0;
2659 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2661 kvm_write_c0_guest_epc(cop0, arch->pc);
2662 kvm_set_c0_guest_status(cop0, ST0_EXL);
2665 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2667 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2671 kvm_change_c0_guest_cause(cop0, (0xff),
2689 struct mips_coproc *cop0 = vcpu->arch.cop0;
2693 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2695 kvm_write_c0_guest_epc(cop0, arch->pc);
2696 kvm_set_c0_guest_status(cop0, ST0_EXL);
2699 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2701 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2705 kvm_change_c0_guest_cause(cop0, (0xff),
2723 struct mips_coproc *cop0 = vcpu->arch.cop0;
2727 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2729 kvm_write_c0_guest_epc(cop0, arch->pc);
2730 kvm_set_c0_guest_status(cop0, ST0_EXL);
2733 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2735 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2739 kvm_change_c0_guest_cause(cop0, (0xff),
2757 struct mips_coproc *cop0 = vcpu->arch.cop0;
2761 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2763 kvm_write_c0_guest_epc(cop0, arch->pc);
2764 kvm_set_c0_guest_status(cop0, ST0_EXL);
2767 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2769 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2773 kvm_change_c0_guest_cause(cop0, (0xff),
2791 struct mips_coproc *cop0 = vcpu->arch.cop0;
2795 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2797 kvm_write_c0_guest_epc(cop0, arch->pc);
2798 kvm_set_c0_guest_status(cop0, ST0_EXL);
2801 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2803 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2807 kvm_change_c0_guest_cause(cop0, (0xff),
2825 struct mips_coproc *cop0 = vcpu->arch.cop0;
2829 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
2831 kvm_write_c0_guest_epc(cop0, arch->pc);
2832 kvm_set_c0_guest_status(cop0, ST0_EXL);
2835 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
2837 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
2841 kvm_change_c0_guest_cause(cop0, (0xff),
2858 struct mips_coproc *cop0 = vcpu->arch.cop0;
2893 if (usermode && !(kvm_read_c0_guest_hwrena(cop0) & BIT(rd))) {
2920 arch->gprs[rt] = kvm_read_c0_guest_userlocal(cop0);
3095 struct mips_coproc *cop0 = vcpu->arch.cop0;
3099 if ((kvm_read_c0_guest_status(cop0) & ST0_EXL) == 0) {
3101 kvm_write_c0_guest_epc(cop0, arch->pc);
3102 kvm_set_c0_guest_status(cop0, ST0_EXL);
3105 kvm_set_c0_guest_cause(cop0, CAUSEF_BD);
3107 kvm_clear_c0_guest_cause(cop0, CAUSEF_BD);
3109 kvm_change_c0_guest_cause(cop0, (0xff),
3114 kvm_write_c0_guest_badvaddr(cop0, vcpu->arch.host_cp0_badvaddr);
3117 exccode, kvm_read_c0_guest_epc(cop0),
3118 kvm_read_c0_guest_badvaddr(cop0));
3243 (kvm_read_c0_guest_entryhi(vcpu->arch.cop0) &