\f
;;;; cached functions
-(defstruct function-cache
+(defstruct (function-cache (:copier nil))
(printers nil :type list)
(labellers nil :type list)
(prefilters nil :type list))
length
mask id
printer
- labeller prefilter control)))
+ labeller prefilter control))
+ (:copier nil))
(name nil :type (or symbol string))
(format-name nil :type (or symbol string))
;;;; an instruction space holds all known machine instructions in a form that
;;;; can be easily searched
-(defstruct (inst-space (:conc-name ispace-))
+(defstruct (inst-space (:conc-name ispace-)
+ (:copier nil))
(valid-mask dchunk-zero :type dchunk) ; applies to *children*
(choices nil :type list))
(def!method print-object ((ispace inst-space) stream)
(print-unreadable-object (ispace stream :type t :identity t)))
-(defstruct (inst-space-choice (:conc-name ischoice-))
+(defstruct (inst-space-choice (:conc-name ischoice-)
+ (:copier nil))
(common-id dchunk-zero :type dchunk) ; applies to *parent's* mask
(subspace (required-argument) :type (or inst-space instruction)))
\f
;;;; These are the kind of values we can compute for an argument, and
-;;;; how to compute them. The :checker functions make sure that a given
+;;;; how to compute them. The :CHECKER functions make sure that a given
;;;; argument is compatible with another argument for a given use.
(defvar *arg-form-kinds* nil)
-(defstruct arg-form-kind
+(defstruct (arg-form-kind (:copier nil))
(names nil :type list)
(producer (required-argument) :type function)
(checker (required-argument) :type function))
(prefilter nil)
(use-label nil))
-(defstruct (instruction-format (:conc-name format-))
+(defstruct (instruction-format (:conc-name format-)
+ (:copier nil))
(name nil)
(args nil :type list)
\f
;;; A FUNSTATE holds the state of any arguments used in a disassembly
;;; function.
-(defstruct (funstate (:conc-name funstate-) (:constructor %make-funstate))
+(defstruct (funstate (:conc-name funstate-)
+ (:constructor %make-funstate)
+ (:copier nil))
(args nil :type list)
(arg-temps nil :type list)) ; See below.
;;;; (notably functions), we sometimes use a VALSRC structure to keep track of
;;;; the source from which they were derived.
-(defstruct (valsrc (:constructor %make-valsrc))
+(defstruct (valsrc (:constructor %make-valsrc)
+ (:copier nil))
(value nil)
(source nil))
(valsrc-value thing)
thing))
\f
-(defstruct (cached-function (:conc-name cached-fun-))
+(defstruct (cached-function (:conc-name cached-fun-)
+ (:copier nil))
(funstate nil :type (or null funstate))
(constraint nil :type list)
(name nil :type (or null symbol)))