(riml64 lin-addr r-x x86) → (mv * * x86)
Function:
(defun riml64 (lin-addr r-x x86) (declare (xargs :stobjs (x86))) (declare (type (signed-byte 48) lin-addr) (type (member :r :x) r-x)) (declare (xargs :guard (canonical-address-p lin-addr))) (let ((__function__ 'riml64)) (declare (ignorable __function__)) (mv-let (flag val x86) (rml64 lin-addr r-x x86) (mv flag (n64-to-i64 val) x86))))
Theorem:
(defthm i64p-mv-nth-1-riml64 (signed-byte-p 64 (mv-nth 1 (riml64 lin-addr r-x x86))) :rule-classes (:rewrite (:type-prescription :corollary (integerp (mv-nth 1 (riml64 lin-addr r-x x86))) :hints (("Goal" :in-theory '(signed-byte-p integer-range-p)))) (:linear :corollary (and (<= -9223372036854775808 (mv-nth 1 (riml64 lin-addr r-x x86))) (< (mv-nth 1 (riml64 lin-addr r-x x86)) 9223372036854775808)) :hints (("Goal" :in-theory '(signed-byte-p integer-range-p (:e expt)))))))
Theorem:
(defthm x86p-riml64 (implies (force (x86p x86)) (x86p (mv-nth 2 (riml64 lin-addr r-x x86)))) :rule-classes (:rewrite :type-prescription))