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