(xlation-governing-entries-paddrs-for-page-directory lin-addr page-directory-base-addr x86) → *
Function:
(defun xlation-governing-entries-paddrs-for-page-directory (lin-addr page-directory-base-addr x86) (declare (xargs :stobjs (x86))) (declare (type (signed-byte 48) lin-addr) (type (unsigned-byte 52) page-directory-base-addr)) (declare (xargs :guard (and (not (app-view x86)) (canonical-address-p lin-addr) (equal (loghead 12 page-directory-base-addr) 0)))) (let ((__function__ 'xlation-governing-entries-paddrs-for-page-directory)) (declare (ignorable __function__)) (b* ((page-directory-entry-addr (page-directory-entry-addr lin-addr page-directory-base-addr)) (page-directory-entry (rm-low-64 page-directory-entry-addr x86)) (pde-ps? (equal (page-size page-directory-entry) 1)) ((when pde-ps?) (addr-range 8 page-directory-entry-addr)) (page-table-base-addr (ash (ia32e-pde-pg-tablebits->pt page-directory-entry) 12)) (page-table-addresses (xlation-governing-entries-paddrs-for-page-table lin-addr page-table-base-addr x86))) (append (addr-range 8 page-directory-entry-addr) page-table-addresses))))
Theorem:
(defthm xlation-governing-entries-paddrs-for-page-directory-and-xw-not-mem (implies (and (not (equal fld :mem)) (not (equal fld :app-view))) (equal (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (xw fld index value x86)) (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (double-rewrite x86)))))
Theorem:
(defthm xlation-governing-entries-paddrs-for-page-directory-and-xw-mem-not-member (implies (not (member-p index (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (double-rewrite x86)))) (equal (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (xw :mem index value x86)) (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (double-rewrite x86)))))
Theorem:
(defthm ia32e-la-to-pa-page-directory-values-and-xw-mem-not-member (implies (and (not (member-p index (xlation-governing-entries-paddrs-for-page-directory lin-addr base-addr (double-rewrite x86)))) (physical-address-p base-addr) (equal (loghead 12 base-addr) 0) (canonical-address-p lin-addr)) (and (equal (mv-nth 0 (ia32e-la-to-pa-page-directory lin-addr base-addr u/s-acc r/w-acc x/d-acc wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (xw :mem index value x86))) (mv-nth 0 (ia32e-la-to-pa-page-directory lin-addr base-addr u/s-acc r/w-acc x/d-acc wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (double-rewrite x86)))) (equal (mv-nth 1 (ia32e-la-to-pa-page-directory lin-addr base-addr u/s-acc r/w-acc x/d-acc wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (xw :mem index value x86))) (mv-nth 1 (ia32e-la-to-pa-page-directory lin-addr base-addr u/s-acc r/w-acc x/d-acc wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (double-rewrite x86)))))))