From a4f02f74cfde00984a64928cd2c3dc370cbfe8d3 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Tue, 25 Aug 1992 17:42:48 +0000 Subject: [PATCH] Added some more slots to vop-info so that a single generic emit function can be used for all vops. It just figures out what to do by looking at these additional slots. --- compiler/vop.lisp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/compiler/vop.lisp b/compiler/vop.lisp index 31f8a0620..d39cac572 100644 --- a/compiler/vop.lisp +++ b/compiler/vop.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/vop.lisp,v 1.34 1992/06/02 19:13:11 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/vop.lisp,v 1.35 1992/08/25 17:42:48 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -822,7 +822,28 @@ ;; A list of things that are used to parameterize an inherited generator. ;; This allows the same generator function to be used for a group of VOPs ;; with similar implementations. - (variant nil :type list)) + (variant nil :type list) + ;; + ;; The number of arguments and results. Each regular arg/result counts as + ;; one, and all the more args/results together count as 1. + (num-args 0 :type index) + (num-results 0 :type index) + ;; + ;; Vector of the temporaries the vop needs. See emit-generic-vop in vmdef + ;; for information on how the temps are encoded. + (temps nil :type (or null (simple-array (unsigned-byte 16) (*)))) + ;; + ;; The order all the refs for this vop should be put in. Each operand is + ;; assigned a number in the following ordering: + ;; args, more-args, results, more-results, temps + ;; This vector represents the order the operands should be put into in the + ;; next-ref link. + (ref-ordering nil :type (or null (simple-array (unsigned-byte 8) (*)))) + ;; + ;; Array of the various targets that should be done. Each element encodes + ;; the source ref (shifted 8) and the dest ref index. + (targets nil :type (or null (simple-array (unsigned-byte 16) (*))))) + ;;;; SBs and SCs: -- GitLab