From 73f066da2ffbfd709a9d68f07d245e4142231ee7 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Fri, 30 Jul 2004 11:25:55 +0000 Subject: [PATCH] 0.8.13.13: 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 | 17 ++++++++++++++--- version.lisp-expr | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/compiler/meta-vmdef.lisp b/src/compiler/meta-vmdef.lisp index b7e2111..805761f 100644 --- a/src/compiler/meta-vmdef.lisp +++ b/src/compiler/meta-vmdef.lisp @@ -1043,13 +1043,24 @@ :key #'operand-parse-name)))))) (values)) +(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)) diff --git a/version.lisp-expr b/version.lisp-expr index 59b49f0..688d019 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4