Lines Matching refs:gtlbe
180 struct kvm_book3e_206_tlb_entry *gtlbe) in kvmppc_need_recalc_tlb1map_range() argument
184 size = get_tlb_bytes(gtlbe); in kvmppc_need_recalc_tlb1map_range()
185 start = get_tlb_eaddr(gtlbe) & ~(size - 1); in kvmppc_need_recalc_tlb1map_range()
194 struct kvm_book3e_206_tlb_entry *gtlbe) in kvmppc_set_tlb1map_range() argument
199 if (!get_tlb_v(gtlbe)) in kvmppc_set_tlb1map_range()
202 size = get_tlb_bytes(gtlbe); in kvmppc_set_tlb1map_range()
203 start = get_tlb_eaddr(gtlbe) & ~(size - 1); in kvmppc_set_tlb1map_range()
214 struct kvm_book3e_206_tlb_entry *gtlbe = in kvmppc_e500_gtlbe_invalidate() local
217 if (unlikely(get_tlb_iprot(gtlbe))) in kvmppc_e500_gtlbe_invalidate()
220 if (tlbsel == 1 && kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) in kvmppc_e500_gtlbe_invalidate()
223 gtlbe->mas1 = 0; in kvmppc_e500_gtlbe_invalidate()
326 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_e500_emul_tlbre() local
331 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbre()
334 vcpu->arch.shared->mas1 = gtlbe->mas1; in kvmppc_e500_emul_tlbre()
335 vcpu->arch.shared->mas2 = gtlbe->mas2; in kvmppc_e500_emul_tlbre()
336 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3; in kvmppc_e500_emul_tlbre()
347 struct kvm_book3e_206_tlb_entry *gtlbe = NULL; in kvmppc_e500_emul_tlbsx() local
352 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbsx()
357 if (gtlbe) { in kvmppc_e500_emul_tlbsx()
362 vcpu->arch.shared->mas1 = gtlbe->mas1; in kvmppc_e500_emul_tlbsx()
363 vcpu->arch.shared->mas2 = gtlbe->mas2; in kvmppc_e500_emul_tlbsx()
364 vcpu->arch.shared->mas7_3 = gtlbe->mas7_3; in kvmppc_e500_emul_tlbsx()
393 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_e500_emul_tlbwe() local
401 gtlbe = get_entry(vcpu_e500, tlbsel, esel); in kvmppc_e500_emul_tlbwe()
403 if (get_tlb_v(gtlbe)) { in kvmppc_e500_emul_tlbwe()
406 kvmppc_need_recalc_tlb1map_range(vcpu_e500, gtlbe)) in kvmppc_e500_emul_tlbwe()
410 gtlbe->mas1 = vcpu->arch.shared->mas1; in kvmppc_e500_emul_tlbwe()
411 gtlbe->mas2 = vcpu->arch.shared->mas2; in kvmppc_e500_emul_tlbwe()
413 gtlbe->mas2 &= 0xffffffffUL; in kvmppc_e500_emul_tlbwe()
414 gtlbe->mas7_3 = vcpu->arch.shared->mas7_3; in kvmppc_e500_emul_tlbwe()
416 trace_kvm_booke206_gtlb_write(vcpu->arch.shared->mas0, gtlbe->mas1, in kvmppc_e500_emul_tlbwe()
417 gtlbe->mas2, gtlbe->mas7_3); in kvmppc_e500_emul_tlbwe()
428 kvmppc_set_tlb1map_range(vcpu, gtlbe); in kvmppc_e500_emul_tlbwe()
434 if (tlbe_is_host_safe(vcpu, gtlbe)) { in kvmppc_e500_emul_tlbwe()
435 u64 eaddr = get_tlb_eaddr(gtlbe); in kvmppc_e500_emul_tlbwe()
436 u64 raddr = get_tlb_raddr(gtlbe); in kvmppc_e500_emul_tlbwe()
439 gtlbe->mas1 &= ~MAS1_TSIZE(~0); in kvmppc_e500_emul_tlbwe()
440 gtlbe->mas1 |= MAS1_TSIZE(BOOK3E_PAGESZ_4K); in kvmppc_e500_emul_tlbwe()
527 struct kvm_book3e_206_tlb_entry *gtlbe; in kvmppc_mmu_xlate() local
530 gtlbe = get_entry(vcpu_e500, tlbsel_of(index), esel_of(index)); in kvmppc_mmu_xlate()
531 pgmask = get_tlb_bytes(gtlbe) - 1; in kvmppc_mmu_xlate()
533 return get_tlb_raddr(gtlbe) | (eaddr & pgmask); in kvmppc_mmu_xlate()