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