PG_PROMOTED
if ((pde & PG_PROMOTED) != 0)
if (!atomic_cmpset_long(pde, oldpde, newpde & ~PG_PROMOTED))
pde_store(pde, PG_PROMOTED | PG_PS | newpde);
if ((pde & PG_PROMOTED) != 0)
if (!pde_cmpset(pde, oldpde, newpde & ~PG_PROMOTED))
pmap_kenter_pde(va, PG_PROMOTED | PG_PS | newpde);
pde_store(pde, PG_PROMOTED | PG_PS | newpde);
if ((l3e & PG_PROMOTED) != 0)
pte_store(pde, PG_PROMOTED | newpde);
if (!atomic_cmpset_long(l3e, htobe64(oldpde), htobe64(newpde & ~PG_PROMOTED)))