Lines Matching refs:vcpu
150 static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt) in kvmppc_sync_qpr() argument
152 kvm_cvt_df(&VCPU_FPR(vcpu, rt), &vcpu->arch.qpr[rt]); in kvmppc_sync_qpr()
155 static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store) in kvmppc_inject_pf() argument
158 u64 msr = kvmppc_get_msr(vcpu); in kvmppc_inject_pf()
162 kvmppc_set_msr(vcpu, msr); in kvmppc_inject_pf()
163 kvmppc_set_dar(vcpu, eaddr); in kvmppc_inject_pf()
168 kvmppc_set_dsisr(vcpu, dsisr); in kvmppc_inject_pf()
169 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_DATA_STORAGE); in kvmppc_inject_pf()
172 static int kvmppc_emulate_fpr_load(struct kvm_vcpu *vcpu, in kvmppc_emulate_fpr_load() argument
184 r = kvmppc_ld(vcpu, &addr, len, tmp, true); in kvmppc_emulate_fpr_load()
185 vcpu->arch.paddr_accessed = addr; in kvmppc_emulate_fpr_load()
188 kvmppc_inject_pf(vcpu, addr, false); in kvmppc_emulate_fpr_load()
191 emulated = kvmppc_handle_load(vcpu, KVM_MMIO_REG_FPR | rs, in kvmppc_emulate_fpr_load()
201 kvm_cvt_fd((u32*)tmp, &VCPU_FPR(vcpu, rs)); in kvmppc_emulate_fpr_load()
202 vcpu->arch.qpr[rs] = *((u32*)tmp); in kvmppc_emulate_fpr_load()
205 VCPU_FPR(vcpu, rs) = *((u64*)tmp); in kvmppc_emulate_fpr_load()
216 static int kvmppc_emulate_fpr_store(struct kvm_vcpu *vcpu, in kvmppc_emulate_fpr_store() argument
227 kvm_cvt_df(&VCPU_FPR(vcpu, rs), (u32*)tmp); in kvmppc_emulate_fpr_store()
232 *((u32*)tmp) = VCPU_FPR(vcpu, rs); in kvmppc_emulate_fpr_store()
233 val = VCPU_FPR(vcpu, rs) & 0xffffffff; in kvmppc_emulate_fpr_store()
237 *((u64*)tmp) = VCPU_FPR(vcpu, rs); in kvmppc_emulate_fpr_store()
238 val = VCPU_FPR(vcpu, rs); in kvmppc_emulate_fpr_store()
246 r = kvmppc_st(vcpu, &addr, len, tmp, true); in kvmppc_emulate_fpr_store()
247 vcpu->arch.paddr_accessed = addr; in kvmppc_emulate_fpr_store()
249 kvmppc_inject_pf(vcpu, addr, true); in kvmppc_emulate_fpr_store()
251 emulated = kvmppc_handle_store(vcpu, val, len, 1); in kvmppc_emulate_fpr_store()
262 static int kvmppc_emulate_psq_load(struct kvm_vcpu *vcpu, in kvmppc_emulate_psq_load() argument
272 r = kvmppc_ld(vcpu, &addr, sizeof(u32), tmp, true); in kvmppc_emulate_psq_load()
275 r = kvmppc_ld(vcpu, &addr, sizeof(u32) * 2, tmp, true); in kvmppc_emulate_psq_load()
277 vcpu->arch.paddr_accessed = addr; in kvmppc_emulate_psq_load()
279 kvmppc_inject_pf(vcpu, addr, false); in kvmppc_emulate_psq_load()
282 emulated = kvmppc_handle_load(vcpu, KVM_MMIO_REG_FPR | rs, in kvmppc_emulate_psq_load()
284 vcpu->arch.qpr[rs] = tmp[1]; in kvmppc_emulate_psq_load()
287 emulated = kvmppc_handle_load(vcpu, KVM_MMIO_REG_FQPR | rs, in kvmppc_emulate_psq_load()
295 kvm_cvt_fd(&tmp[0], &VCPU_FPR(vcpu, rs)); in kvmppc_emulate_psq_load()
296 vcpu->arch.qpr[rs] = tmp[1]; in kvmppc_emulate_psq_load()
305 static int kvmppc_emulate_psq_store(struct kvm_vcpu *vcpu, in kvmppc_emulate_psq_store() argument
313 kvm_cvt_df(&VCPU_FPR(vcpu, rs), &tmp[0]); in kvmppc_emulate_psq_store()
314 tmp[1] = vcpu->arch.qpr[rs]; in kvmppc_emulate_psq_store()
316 r = kvmppc_st(vcpu, &addr, len, tmp, true); in kvmppc_emulate_psq_store()
317 vcpu->arch.paddr_accessed = addr; in kvmppc_emulate_psq_store()
319 kvmppc_inject_pf(vcpu, addr, true); in kvmppc_emulate_psq_store()
321 emulated = kvmppc_handle_store(vcpu, tmp[0], 4, 1); in kvmppc_emulate_psq_store()
324 emulated = kvmppc_handle_store(vcpu, val, 8, 1); in kvmppc_emulate_psq_store()
344 static bool kvmppc_inst_is_paired_single(struct kvm_vcpu *vcpu, u32 inst) in kvmppc_inst_is_paired_single() argument
346 if (!(vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE)) in kvmppc_inst_is_paired_single()
490 static int kvmppc_ps_three_in(struct kvm_vcpu *vcpu, bool rc, in kvmppc_ps_three_in() argument
497 u32 *qpr = vcpu->arch.qpr; in kvmppc_ps_three_in()
506 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in1), &ps0_in1); in kvmppc_ps_three_in()
507 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in2), &ps0_in2); in kvmppc_ps_three_in()
508 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in3), &ps0_in3); in kvmppc_ps_three_in()
513 func(&vcpu->arch.fp.fpscr, &ps0_out, &ps0_in1, &ps0_in2, &ps0_in3); in kvmppc_ps_three_in()
519 kvm_cvt_fd(&ps0_out, &VCPU_FPR(vcpu, reg_out)); in kvmppc_ps_three_in()
530 func(&vcpu->arch.fp.fpscr, &qpr[reg_out], &ps1_in1, &ps1_in2, &ps1_in3); in kvmppc_ps_three_in()
538 static int kvmppc_ps_two_in(struct kvm_vcpu *vcpu, bool rc, in kvmppc_ps_two_in() argument
545 u32 *qpr = vcpu->arch.qpr; in kvmppc_ps_two_in()
555 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in1), &ps0_in1); in kvmppc_ps_two_in()
560 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in2), &ps0_in2); in kvmppc_ps_two_in()
562 func(&vcpu->arch.fp.fpscr, &ps0_out, &ps0_in1, &ps0_in2); in kvmppc_ps_two_in()
568 kvm_cvt_fd(&ps0_out, &VCPU_FPR(vcpu, reg_out)); in kvmppc_ps_two_in()
578 func(&vcpu->arch.fp.fpscr, &ps1_out, &ps1_in1, &ps1_in2); in kvmppc_ps_two_in()
590 static int kvmppc_ps_one_in(struct kvm_vcpu *vcpu, bool rc, in kvmppc_ps_one_in() argument
595 u32 *qpr = vcpu->arch.qpr; in kvmppc_ps_one_in()
603 kvm_cvt_df(&VCPU_FPR(vcpu, reg_in), &ps0_in); in kvmppc_ps_one_in()
604 func(&vcpu->arch.fp.fpscr, &ps0_out, &ps0_in); in kvmppc_ps_one_in()
609 kvm_cvt_fd(&ps0_out, &VCPU_FPR(vcpu, reg_out)); in kvmppc_ps_one_in()
613 func(&vcpu->arch.fp.fpscr, &qpr[reg_out], &ps1_in); in kvmppc_ps_one_in()
621 int kvmppc_emulate_paired_single(struct kvm_vcpu *vcpu) in kvmppc_emulate_paired_single() argument
635 emulated = kvmppc_get_last_inst(vcpu, INST_GENERIC, &inst); in kvmppc_emulate_paired_single()
645 fpr_d = &VCPU_FPR(vcpu, ax_rd); in kvmppc_emulate_paired_single()
646 fpr_a = &VCPU_FPR(vcpu, ax_ra); in kvmppc_emulate_paired_single()
647 fpr_b = &VCPU_FPR(vcpu, ax_rb); in kvmppc_emulate_paired_single()
648 fpr_c = &VCPU_FPR(vcpu, ax_rc); in kvmppc_emulate_paired_single()
651 cr = kvmppc_get_cr(vcpu); in kvmppc_emulate_paired_single()
653 if (!kvmppc_inst_is_paired_single(vcpu, inst)) in kvmppc_emulate_paired_single()
656 if (!(kvmppc_get_msr(vcpu) & MSR_FP)) { in kvmppc_emulate_paired_single()
657 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL); in kvmppc_emulate_paired_single()
661 kvmppc_giveup_ext(vcpu, MSR_FP); in kvmppc_emulate_paired_single()
667 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fp.fpr); i++) { in kvmppc_emulate_paired_single()
669 kvm_cvt_df(&VCPU_FPR(vcpu, i), &f); in kvmppc_emulate_paired_single()
671 i, f, VCPU_FPR(vcpu, i), i, vcpu->arch.qpr[i]); in kvmppc_emulate_paired_single()
678 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0; in kvmppc_emulate_paired_single()
683 emulated = kvmppc_emulate_psq_load(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
688 ulong addr = kvmppc_get_gpr(vcpu, ax_ra); in kvmppc_emulate_paired_single()
693 emulated = kvmppc_emulate_psq_load(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
696 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
701 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0; in kvmppc_emulate_paired_single()
706 emulated = kvmppc_emulate_psq_store(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
711 ulong addr = kvmppc_get_gpr(vcpu, ax_ra); in kvmppc_emulate_paired_single()
716 emulated = kvmppc_emulate_psq_store(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
719 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
731 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0; in kvmppc_emulate_paired_single()
735 addr += kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
736 emulated = kvmppc_emulate_psq_load(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
745 ulong addr = kvmppc_get_gpr(vcpu, ax_ra); in kvmppc_emulate_paired_single()
749 addr += kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
750 emulated = kvmppc_emulate_psq_load(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
753 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
757 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_rb); in kvmppc_emulate_paired_single()
758 VCPU_FPR(vcpu, ax_rd) ^= 0x8000000000000000ULL; in kvmppc_emulate_paired_single()
759 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
760 vcpu->arch.qpr[ax_rd] ^= 0x80000000; in kvmppc_emulate_paired_single()
768 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_rb); in kvmppc_emulate_paired_single()
769 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
777 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_rb); in kvmppc_emulate_paired_single()
778 VCPU_FPR(vcpu, ax_rd) |= 0x8000000000000000ULL; in kvmppc_emulate_paired_single()
779 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
780 vcpu->arch.qpr[ax_rd] |= 0x80000000; in kvmppc_emulate_paired_single()
784 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_rb); in kvmppc_emulate_paired_single()
785 VCPU_FPR(vcpu, ax_rd) &= ~0x8000000000000000ULL; in kvmppc_emulate_paired_single()
786 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
787 vcpu->arch.qpr[ax_rd] &= ~0x80000000; in kvmppc_emulate_paired_single()
791 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_ra); in kvmppc_emulate_paired_single()
793 kvm_cvt_df(&VCPU_FPR(vcpu, ax_rb), in kvmppc_emulate_paired_single()
794 &vcpu->arch.qpr[ax_rd]); in kvmppc_emulate_paired_single()
798 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_ra); in kvmppc_emulate_paired_single()
799 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
804 kvm_cvt_fd(&vcpu->arch.qpr[ax_ra], in kvmppc_emulate_paired_single()
805 &VCPU_FPR(vcpu, ax_rd)); in kvmppc_emulate_paired_single()
807 kvm_cvt_df(&VCPU_FPR(vcpu, ax_rb), in kvmppc_emulate_paired_single()
808 &vcpu->arch.qpr[ax_rd]); in kvmppc_emulate_paired_single()
813 kvm_cvt_fd(&vcpu->arch.qpr[ax_ra], in kvmppc_emulate_paired_single()
814 &VCPU_FPR(vcpu, ax_rd)); in kvmppc_emulate_paired_single()
815 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb]; in kvmppc_emulate_paired_single()
822 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0; in kvmppc_emulate_paired_single()
826 addr += kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
827 emulated = kvmppc_emulate_psq_store(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
832 ulong addr = kvmppc_get_gpr(vcpu, ax_ra); in kvmppc_emulate_paired_single()
836 addr += kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
837 emulated = kvmppc_emulate_psq_store(vcpu, ax_rd, addr, w, i); in kvmppc_emulate_paired_single()
840 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
847 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
849 VCPU_FPR(vcpu, ax_rd) = VCPU_FPR(vcpu, ax_rc); in kvmppc_emulate_paired_single()
852 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
854 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rc]; in kvmppc_emulate_paired_single()
857 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
861 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
865 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
869 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
873 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
877 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
881 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
885 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
889 emulated = kvmppc_ps_one_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
893 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
897 emulated = kvmppc_ps_one_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
901 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
905 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
909 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
913 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd, in kvmppc_emulate_paired_single()
923 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d; in kvmppc_emulate_paired_single()
925 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
931 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d; in kvmppc_emulate_paired_single()
933 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
937 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
942 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d; in kvmppc_emulate_paired_single()
944 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
950 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d; in kvmppc_emulate_paired_single()
952 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
956 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
961 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d; in kvmppc_emulate_paired_single()
963 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
969 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d; in kvmppc_emulate_paired_single()
971 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
975 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
980 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d; in kvmppc_emulate_paired_single()
982 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
988 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d; in kvmppc_emulate_paired_single()
990 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, addr, in kvmppc_emulate_paired_single()
994 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
1001 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0; in kvmppc_emulate_paired_single()
1003 addr += kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1004 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1010 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + in kvmppc_emulate_paired_single()
1011 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1013 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1017 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
1022 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + in kvmppc_emulate_paired_single()
1023 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1025 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1031 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + in kvmppc_emulate_paired_single()
1032 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1034 emulated = kvmppc_emulate_fpr_load(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1038 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
1043 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + in kvmppc_emulate_paired_single()
1044 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1046 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1052 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + in kvmppc_emulate_paired_single()
1053 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1055 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1059 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
1064 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + in kvmppc_emulate_paired_single()
1065 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1067 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1073 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + in kvmppc_emulate_paired_single()
1074 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1076 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1080 kvmppc_set_gpr(vcpu, ax_ra, addr); in kvmppc_emulate_paired_single()
1085 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + in kvmppc_emulate_paired_single()
1086 kvmppc_get_gpr(vcpu, ax_rb); in kvmppc_emulate_paired_single()
1088 emulated = kvmppc_emulate_fpr_store(vcpu, ax_rd, in kvmppc_emulate_paired_single()
1099 fpd_fadds(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1100 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1103 fpd_fsubs(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1104 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1107 fpd_fdivs(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1108 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1111 fpd_fres(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1112 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1115 fpd_frsqrtes(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1116 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1121 fpd_fmuls(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c); in kvmppc_emulate_paired_single()
1122 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1125 fpd_fmsubs(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1126 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1129 fpd_fmadds(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1130 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1133 fpd_fnmsubs(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1134 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1137 fpd_fnmadds(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1138 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1152 *fpr_d = vcpu->arch.fp.fpscr; in kvmppc_emulate_paired_single()
1157 vcpu->arch.fp.fpscr = *fpr_b; in kvmppc_emulate_paired_single()
1165 fpd_fcmpu(&vcpu->arch.fp.fpscr, &tmp_cr, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1176 fpd_fcmpo(&vcpu->arch.fp.fpscr, &tmp_cr, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1182 fpd_fneg(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1188 fpd_fabs(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1191 fpd_fcpsgn(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1194 fpd_fdiv(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1197 fpd_fadd(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1200 fpd_fsub(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_b); in kvmppc_emulate_paired_single()
1203 fpd_fctiw(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1206 fpd_fctiwz(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1209 fpd_frsp(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1210 kvmppc_sync_qpr(vcpu, ax_rd); in kvmppc_emulate_paired_single()
1217 fpd_fsqrt(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_b); in kvmppc_emulate_paired_single()
1219 fpd_fdiv(&vcpu->arch.fp.fpscr, &cr, fpr_d, (u64*)&one, fpr_d); in kvmppc_emulate_paired_single()
1225 fpd_fmul(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c); in kvmppc_emulate_paired_single()
1228 fpd_fsel(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1231 fpd_fmsub(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1234 fpd_fmadd(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1237 fpd_fnmsub(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1240 fpd_fnmadd(&vcpu->arch.fp.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b); in kvmppc_emulate_paired_single()
1247 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fp.fpr); i++) { in kvmppc_emulate_paired_single()
1249 kvm_cvt_df(&VCPU_FPR(vcpu, i), &f); in kvmppc_emulate_paired_single()
1255 kvmppc_set_cr(vcpu, cr); in kvmppc_emulate_paired_single()