(riml16 lin-addr r-x x86) → (mv * * x86)
Function:
(defun riml16 (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__ 'riml16)) (declare (ignorable __function__)) (mv-let (flag val x86) (rml16 lin-addr r-x x86) (mv flag (n16-to-i16 val) x86))))
Theorem:
(defthm i16p-mv-nth-1-riml16 (signed-byte-p 16 (mv-nth 1 (riml16 lin-addr r-x x86))) :rule-classes (:rewrite (:type-prescription :corollary (integerp (mv-nth 1 (riml16 lin-addr r-x x86))) :hints (("Goal" :in-theory '(signed-byte-p integer-range-p)))) (:linear :corollary (and (<= -32768 (mv-nth 1 (riml16 lin-addr r-x x86))) (< (mv-nth 1 (riml16 lin-addr r-x x86)) 32768)) :hints (("Goal" :in-theory '(signed-byte-p integer-range-p (:e expt)))))))
Theorem:
(defthm x86p-riml16 (implies (force (x86p x86)) (x86p (mv-nth 2 (riml16 lin-addr r-x x86)))) :rule-classes (:rewrite :type-prescription))