(32-bit-compute-mandatory-prefix-for-0f-3a-three-byte-opcode opcode prefixes) → mandatory-prefix
Function:
(defun 32-bit-compute-mandatory-prefix-for-0f-3a-three-byte-opcode$inline (opcode prefixes) (declare (type (unsigned-byte 8) opcode) (type (unsigned-byte 52) prefixes)) (declare (xargs :guard (prefixes-p prefixes))) (let ((__function__ '32-bit-compute-mandatory-prefix-for-0f-3a-three-byte-opcode)) (declare (ignorable __function__)) (let ((rep-pfx (the (unsigned-byte 8) (prefixes->rep prefixes)))) (if (not (eql rep-pfx 0)) (if (or (and (equal rep-pfx 243) (aref1 '32-bit-mode-0f-3a-three-byte-f3-ok *32-bit-mode-0f-3a-three-byte-f3-ok-ar* opcode)) (and (equal rep-pfx 242) (aref1 '32-bit-mode-0f-3a-three-byte-f2-ok *32-bit-mode-0f-3a-three-byte-f2-ok-ar* opcode))) rep-pfx 0) (let ((opr-pfx (the (unsigned-byte 8) (prefixes->opr prefixes)))) (if (not (eql opr-pfx 0)) (if (aref1 '32-bit-mode-0f-3a-three-byte-66-ok *32-bit-mode-0f-3a-three-byte-66-ok-ar* opcode) opr-pfx 0) 0))))))
Theorem:
(defthm return-type-of-32-bit-compute-mandatory-prefix-for-0f-3a-three-byte-opcode (b* ((mandatory-prefix (32-bit-compute-mandatory-prefix-for-0f-3a-three-byte-opcode$inline opcode prefixes))) (unsigned-byte-p 8 mandatory-prefix)) :rule-classes :rewrite)