(xlation-governing-entries-paddrs-for-pml4-table lin-addr pml4-base-addr x86) → *
Function:
(defun xlation-governing-entries-paddrs-for-pml4-table (lin-addr pml4-base-addr x86) (declare (xargs :stobjs (x86))) (declare (type (signed-byte 48) lin-addr) (type (unsigned-byte 52) pml4-base-addr)) (declare (xargs :guard (and (not (app-view x86)) (canonical-address-p lin-addr) (equal (loghead 12 pml4-base-addr) 0)))) (let ((__function__ 'xlation-governing-entries-paddrs-for-pml4-table)) (declare (ignorable __function__)) (b* ((pml4-entry-addr (pml4-table-entry-addr lin-addr pml4-base-addr)) (pml4-entry (rm-low-64 pml4-entry-addr x86)) (pml4te-ps? (equal (page-size pml4-entry) 1)) ((when pml4te-ps?) (addr-range 8 pml4-entry-addr)) (ptr-table-base-addr (ash (ia32e-pml4ebits->pdpt pml4-entry) 12)) (ptr-table-addresses (xlation-governing-entries-paddrs-for-page-dir-ptr-table lin-addr ptr-table-base-addr x86))) (append (addr-range 8 pml4-entry-addr) ptr-table-addresses))))
Theorem:
(defthm xlation-governing-entries-paddrs-for-pml4-table-and-xw-not-mem (implies (and (not (equal fld :mem)) (not (equal fld :app-view))) (equal (xlation-governing-entries-paddrs-for-pml4-table lin-addr base-addr (xw fld index value x86)) (xlation-governing-entries-paddrs-for-pml4-table lin-addr base-addr (double-rewrite x86)))))
Theorem:
(defthm xlation-governing-entries-paddrs-for-pml4-table-and-xw-mem-not-member (implies (not (member-p index (xlation-governing-entries-paddrs-for-pml4-table lin-addr base-addr (double-rewrite x86)))) (equal (xlation-governing-entries-paddrs-for-pml4-table lin-addr base-addr (xw :mem index value x86)) (xlation-governing-entries-paddrs-for-pml4-table lin-addr base-addr (double-rewrite x86)))))
Theorem:
(defthm ia32e-la-to-pa-pml4-table-values-and-xw-mem-not-member (implies (and (not (member-p index (xlation-governing-entries-paddrs-for-pml4-table 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-pml4-table lin-addr base-addr wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (xw :mem index value x86))) (mv-nth 0 (ia32e-la-to-pa-pml4-table lin-addr base-addr wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (double-rewrite x86)))) (equal (mv-nth 1 (ia32e-la-to-pa-pml4-table lin-addr base-addr wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (xw :mem index value x86))) (mv-nth 1 (ia32e-la-to-pa-pml4-table lin-addr base-addr wp smep smap ac nxe implicit-supervisor-access r-w-x cpl (double-rewrite x86)))))))