Lines Matching defs:pde
599 uint64_t pde, pdpe;
663 pde = ldq_phys(pde_addr);
664 if (!(pde & PG_PRESENT_MASK)) {
668 if (!(env->efer & MSR_EFER_NXE) && (pde & PG_NX_MASK)) {
672 ptep &= pde ^ PG_NX_MASK;
673 if (pde & PG_PSE_MASK) {
689 is_dirty = is_write && !(pde & PG_DIRTY_MASK);
690 if (!(pde & PG_ACCESSED_MASK) || is_dirty) {
691 pde |= PG_ACCESSED_MASK;
693 pde |= PG_DIRTY_MASK;
694 stl_phys_notdirty(pde_addr, pde);
697 pte = pde & ((PHYS_ADDR_MASK & ~(page_size - 1)) | 0xfff);
701 if (!(pde & PG_ACCESSED_MASK)) {
702 pde |= PG_ACCESSED_MASK;
703 stl_phys_notdirty(pde_addr, pde);
705 pte_addr = ((pde & PHYS_ADDR_MASK) + (((addr >> 12) & 0x1ff) << 3)) &
716 /* combine pde and pte nx, user and rw protections */
743 uint32_t pde;
748 pde = ldl_phys(pde_addr);
749 if (!(pde & PG_PRESENT_MASK)) {
754 if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
757 if (!(pde & PG_USER_MASK))
759 if (is_write && !(pde & PG_RW_MASK))
763 is_write && !(pde & PG_RW_MASK))
766 is_dirty = is_write && !(pde & PG_DIRTY_MASK);
767 if (!(pde & PG_ACCESSED_MASK) || is_dirty) {
768 pde |= PG_ACCESSED_MASK;
770 pde |= PG_DIRTY_MASK;
771 stl_phys_notdirty(pde_addr, pde);
774 pte = pde & ~( (page_size - 1) & ~0xfff); /* align to page_size */
778 if (!(pde & PG_ACCESSED_MASK)) {
779 pde |= PG_ACCESSED_MASK;
780 stl_phys_notdirty(pde_addr, pde);
784 pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) &
791 /* combine pde and pte user and rw protections */
792 ptep = pte & pde;
878 uint64_t pde, pdpe;
913 pde = ldq_phys(pde_addr);
914 if (!(pde & PG_PRESENT_MASK)) {
917 if (pde & PG_PSE_MASK) {
920 pte = pde & ~( (page_size - 1) & ~0xfff); /* align to page_size */
923 pte_addr = ((pde & ~0xfff) + (((addr >> 12) & 0x1ff) << 3)) &
931 uint32_t pde;
939 pde = ldl_phys(pde_addr);
940 if (!(pde & PG_PRESENT_MASK))
942 if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) {
943 pte = pde & ~0x003ff000; /* align to 4MB */
947 pte_addr = ((pde & ~0xfff) + ((addr >> 10) & 0xffc)) & env->a20_mask;