Dispatch function for VEX-encoded instructions in the second three-byte opcode map
(vex-0f3a-execute proc-mode start-rip temp-rip prefixes rex-byte vex-prefixes opcode modr/m sib x86) → x86
Function:
(defun vex-0f3a-execute (proc-mode start-rip temp-rip prefixes rex-byte vex-prefixes opcode modr/m sib x86) (declare (xargs :stobjs (x86))) (declare (type (integer 0 4) proc-mode) (type (signed-byte 48) start-rip) (type (signed-byte 48) temp-rip) (type (unsigned-byte 52) prefixes) (type (unsigned-byte 8) rex-byte) (type (unsigned-byte 24) vex-prefixes) (type (unsigned-byte 8) opcode) (type (unsigned-byte 8) modr/m) (type (unsigned-byte 8) sib)) (declare (xargs :guard (and (vex-prefixes-byte0-p vex-prefixes) (modr/m-p modr/m) (sib-p sib) (rip-guard-okp proc-mode temp-rip)))) (case opcode (0 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (1 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (2 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (3 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (4 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (5 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (6 (cond ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (8 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (9 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (10 (cond ((and (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-3 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (11 (cond ((and (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-3 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (12 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (13 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (14 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (15 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (20 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (21 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (22 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (23 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (24 (cond ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (25 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (26 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (27 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (29 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-11 (:f16c :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:f16c :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-11 (:f16c :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:f16c :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (30 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (31 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (32 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (33 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (not (equal (modr/m->mod modr/m) 3))) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (34 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-5 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (35 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (37 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (38 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (39 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (48 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512dq))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512dq)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512f))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512f)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (49 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512bw))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512bw)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512bw))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512bw)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (50 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512dq))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512dq)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512f))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512f)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (51 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512bw))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512bw)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 1) (equal (modr/m->mod modr/m) 3)) (let ((fault-var (let ((chk-ex (or (chk-exc :type-k20 (:avx512bw))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx512bw)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (56 (cond ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (57 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (58 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (59 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (62 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (63 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (64 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (65 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-2 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (66 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (67 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (68 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:pclmulqdq :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:pclmulqdq :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (70 (cond ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-6 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (74 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (75 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (76 (cond ((and (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->l vex-prefixes) 1) (equal (vex->pp vex-prefixes) 1) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx2))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx2)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (80 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (81 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (84 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (85 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (86 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (87 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (96 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (97 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (98 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (99 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (102 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (103 (cond (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (223 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-4 (:aes :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:aes :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (240 (cond ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 3) (equal (vex->w vex-prefixes) 0) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-13 (:bmi2 :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:bmi2 :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) ((and (equal (vex->vvvv vex-prefixes) 15) (equal (vex->l vex-prefixes) 0) (equal (vex->pp vex-prefixes) 3) (equal (vex->w vex-prefixes) 1) 't) (let ((fault-var (let ((chk-ex (or (chk-exc :type-13 (:bmi2 :avx))))) (or chk-ex (if (or (equal (feature-flags-macro '(:bmi2 :avx)) 0)) ':ud nil))))) (if fault-var (case fault-var (:ud (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)) (:gp (x86-general-protection "#GP Encountered!" start-rip temp-rip x86)) (:nm (x86-device-not-available "#NM Encountered!" start-rip temp-rip x86)) (t (x86-step-unimplemented "Unimplemented exception in x86isa!" x86))) (x86-step-unimplemented "Opcode Unimplemented in x86isa!" x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86)))) (t (x86-illegal-instruction "#UD Encountered!" start-rip temp-rip x86))))
Theorem:
(defthm x86p-of-vex-0f3a-execute (implies (x86p x86) (b* ((x86 (vex-0f3a-execute proc-mode start-rip temp-rip prefixes rex-byte vex-prefixes opcode modr/m sib x86))) (x86p x86))) :rule-classes :rewrite)