Lines Matching refs:gtlbe
183 struct kvm_book3e_206_tlb_entry *gtlbe) in kvmppc_need_recalc_tlb1map_range() argument
187 size = get_tlb_bytes(gtlbe); in kvmppc_need_recalc_tlb1map_range()
188 start = get_tlb_eaddr(gtlbe) & ~(size - 1); in kvmppc_need_recalc_tlb1map_range()
197 struct kvm_book3e_206_tlb_entry *gtlbe) in kvmppc_set_tlb1map_range() argument
202 if (!get_tlb_v(gtlbe)) in kvmppc_set_tlb1map_range()
205 size = get_tlb_bytes(gtlbe); in kvmppc_set_tlb1map_range()
206 start = get_tlb_eaddr(gtlbe) & ~(size - 1); in kvmppc_set_tlb1map_range()
217 struct kvm_book3e_206_tlb_entry *gtlbe = in kvmppc_e500_gtlbe_invalidate() local
220 if (unlikely(get_tlb_iprot(gtlbe))) in kvmppc_e500_gtlbe_invalidate()
223 if (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) in kvmppc_e500_gtlbe_invalidate()
226 gtlbe->mas1 = 0; in kvmppc_e500_gtlbe_invalidate()
329 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_e500_emul_tlbre() local
334 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbre()
337 vcpu->arch.shared->mas1 = gtlbe->mas1; in kvmppc_e500_emul_tlbre()
338 vcpu->arch.shared->mas2 = gtlbe->mas2; in kvmppc_e500_emul_tlbre()
339 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3; in kvmppc_e500_emul_tlbre()
350 struct kvm_book3e_206_tlb_entry *gtlbe = NULL; in kvmppc_e500_emul_tlbsx() local
355 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbsx()
360 if (gtlbe) { in kvmppc_e500_emul_tlbsx()
365 vcpu->arch.shared->mas1 = gtlbe->mas1; in kvmppc_e500_emul_tlbsx()
366 vcpu->arch.shared->mas2 = gtlbe->mas2; in kvmppc_e500_emul_tlbsx()
367 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3; in kvmppc_e500_emul_tlbsx()
396 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_e500_emul_tlbwe() local
404 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbwe()
406 if (get_tlb_v(gtlbe)) { in kvmppc_e500_emul_tlbwe()
409 kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) in kvmppc_e500_emul_tlbwe()
413 gtlbe->mas1 = vcpu->arch.shared->mas1; in kvmppc_e500_emul_tlbwe()
414 gtlbe->mas2 = vcpu->arch.shared->mas2; in kvmppc_e500_emul_tlbwe()
416 gtlbe->mas2 &= 0xffffffffUL; in kvmppc_e500_emul_tlbwe()
417 gtlbe->mas7_3 = vcpu->arch.shared->mas7_3; in kvmppc_e500_emul_tlbwe()
419 trace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1, in kvmppc_e500_emul_tlbwe()
420 gtlbe->mas2, gtlbe->mas7_3); in kvmppc_e500_emul_tlbwe()
431 kvmppc_set_tlb1map_range(vcpu, gtlbe); in kvmppc_e500_emul_tlbwe()
437 if (tlbe_is_host_safe(vcpu, gtlbe)) { in kvmppc_e500_emul_tlbwe()
438 u64 eaddr = get_tlb_eaddr(gtlbe); in kvmppc_e500_emul_tlbwe()
439 u64 raddr = get_tlb_raddr(gtlbe); in kvmppc_e500_emul_tlbwe()
442 gtlbe->mas1 &= ~MAS1_TSIZE(~0); in kvmppc_e500_emul_tlbwe()
443 gtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K); in kvmppc_e500_emul_tlbwe()
530 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_mmu_xlate() local
533 gtlbe = get_entry(vcpu_e500, tlbsel_of(index), esel_of(index)); in kvmppc_mmu_xlate()
534 pgmask = get_tlb_bytes(gtlbe) - 1; in kvmppc_mmu_xlate()
536 return get_tlb_raddr(gtlbe) | (eaddr & pgmask); in kvmppc_mmu_xlate()