Basic constructor macro for instruction-cast structures.
(make-instruction-cast [:args <args>]
[:into <into>]
[:as <as>])
This is the usual way to construct instruction-cast structures. It simply conses together a structure with the specified fields.
This macro generates a new instruction-cast structure from scratch. See also change-instruction-cast, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-instruction-cast (&rest args) (std::make-aggregate 'instruction-cast args '((:args) (:into) (:as)) 'make-instruction-cast nil))
Function:
(defun instruction-cast (args into as) (declare (xargs :guard (and (operand-listp args) (registerp into) (register-typep as)))) (declare (xargs :guard t)) (let ((__function__ 'instruction-cast)) (declare (ignorable __function__)) (b* ((args (mbe :logic (operand-list-fix args) :exec args)) (into (mbe :logic (register-fix into) :exec into)) (as (mbe :logic (register-type-fix as) :exec as))) (cons :cast (list args into as)))))