0.8.13.13:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 30 Jul 2004 11:25:55 +0000 (11:25 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 30 Jul 2004 11:25:55 +0000 (11:25 +0000)
Fix the logic in computing symbols for parse-vop-operands
... the count was all wrong.  Fix it.
... (bug is detected in make-host-2, so if I've got it wrong
again it'll show up: but this works on the alpha)

src/compiler/meta-vmdef.lisp
version.lisp-expr

index b7e2111..805761f 100644 (file)
                            :key #'operand-parse-name))))))
   (values))
 \f
+(defun compute-parse-vop-operand-count (parse)
+  (declare (type vop-parse parse))
+  (labels ((compute-count-aux (parse)
+            (declare (type vop-parse parse))
+            (if (null (vop-parse-inherits parse))
+                (length (vop-parse-operands parse))
+                (+ (length (vop-parse-operands parse))
+                   (compute-count-aux 
+                    (vop-parse-or-lose (vop-parse-inherits parse)))))))
+    (if (null (vop-parse-inherits parse))
+       0
+        (compute-count-aux (vop-parse-or-lose (vop-parse-inherits parse))))))
+
 ;;; the top level parse function: clobber PARSE to represent the
 ;;; specified options.
 (defun parse-define-vop (parse specs)
   (declare (type vop-parse parse) (list specs))
-  (let ((*parse-vop-operand-count* (1- (+ (length (vop-parse-args parse))
-                                         (length (vop-parse-results parse))
-                                         (length (vop-parse-temps parse))))))
+  (let ((*parse-vop-operand-count* (compute-parse-vop-operand-count parse)))
     (dolist (spec specs)
       (unless (consp spec)
        (error "malformed option specification: ~S" spec))
index 59b49f0..688d019 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.13.12"
+"0.8.13.13"