From: William Harold Newman Date: Thu, 6 Nov 2003 23:33:11 +0000 (+0000) Subject: 0.8.5.24: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=32e1618b33e0c7f4242ec0064e59ab1e8151e497;p=sbcl.git 0.8.5.24: merged CSR's well-aged patch to make X86 port stop complaining about register class strangeness in array checking VOPs added #!+ conditionalization on the hack to suppress warnings about analogous strangeness on other ports, hoping I didn't screw up anything I can't test --- diff --git a/build-order.lisp-expr b/build-order.lisp-expr index 9431d78..4214e69 100644 --- a/build-order.lisp-expr +++ b/build-order.lisp-expr @@ -513,10 +513,24 @@ ("src/compiler/target/memory") ("src/compiler/target/static-fn") ("src/compiler/target/arith" - ;; KLUDGE: for ppc and sparc this appears to be necessary -- see the - ;; comment below regarding src/compiler/target/array -- CSR, - ;; 2002-05-05 - :ignore-failure-p) + ;; KLUDGE: for ppc and sparc this appears to be necessary, as it + ;; used to be for array VOPs for X86 until ca. 0.8.5.24 when CSR's + ;; patch for that architecture was finally committed + ;; + ;; old (0.8.5.23) comment on the array-VOP hack for X86: + ;; x Compiling this file for X86 raises alarming warnings of + ;; x the form + ;; x Argument FOO to VOP CHECK-BOUND has SC restriction + ;; x DESCRIPTOR-REG which is not allowed by the operand type: + ;; x (:OR POSITIVE-FIXNUM) + ;; x This seems not to be something that I broke, but rather a "feature" + ;; x inherited from classic CMU CL. (Debian cmucl_2.4.8.deb compiling + ;; x Debian cmucl_2.4.8.tar.gz raises the same warning). Thus, even though + ;; x these warnings are severe enough that they would ordinarily abort + ;; x compilation, for now we blithely ignore them and press on to more + ;; x pressing problems. Someday, though, it would be nice to figure out + ;; x what the problem is and fix it. + #!+(or ppc sparc) :ignore-failure-p) ("src/compiler/target/subprim") ("src/compiler/target/debug") @@ -531,21 +545,7 @@ ("src/compiler/target/nlx") ("src/compiler/generic/late-nlx") ("src/compiler/target/show") - ("src/compiler/target/array" - ;; KLUDGE: Compiling this file for X86 raises alarming warnings of - ;; the form - ;; Argument FOO to VOP CHECK-BOUND has SC restriction - ;; DESCRIPTOR-REG which is not allowed by the operand type: - ;; (:OR POSITIVE-FIXNUM) - ;; This seems not to be something that I broke, but rather a "feature" - ;; inherited from classic CMU CL. (Debian cmucl_2.4.8.deb compiling - ;; Debian cmucl_2.4.8.tar.gz raises the same warning). Thus, even though - ;; these warnings are severe enough that they would ordinarily abort - ;; compilation, for now we blithely ignore them and press on to more - ;; pressing problems. Someday, though, it would be nice to figure out - ;; what the problem is and fix it. (See the comments in - ;; src/compiler/x86/array for a candidate patch.) -- WHN 19990323 - :ignore-failure-p) + ("src/compiler/target/array") ("src/compiler/generic/array") ("src/compiler/target/pred") diff --git a/src/compiler/meta-vmdef.lisp b/src/compiler/meta-vmdef.lisp index 25326ad..dc5b37d 100644 --- a/src/compiler/meta-vmdef.lisp +++ b/src/compiler/meta-vmdef.lisp @@ -1265,7 +1265,7 @@ (error "bad thing to be a operand type: ~S" spec))))))) (mapcar #'parse-operand-type specs))) -;;; Check the consistency of Op's Sc restrictions with the specified +;;; Check the consistency of OP's SC restrictions with the specified ;;; primitive-type restriction. :CONSTANT operands have already been ;;; filtered out, so only :OR and * restrictions are left. ;;; diff --git a/src/compiler/x86/array.lisp b/src/compiler/x86/array.lisp index f8c3c70..c240261 100644 --- a/src/compiler/x86/array.lisp +++ b/src/compiler/x86/array.lisp @@ -112,10 +112,10 @@ (:translate %check-bound) (:policy :fast-safe) (:args (array :scs (descriptor-reg)) - (bound :scs (any-reg descriptor-reg)) - (index :scs (any-reg descriptor-reg #+nil immediate) :target result)) + (bound :scs (any-reg)) + (index :scs (any-reg #+nil immediate) :target result)) (:arg-types * positive-fixnum tagged-num) - (:results (result :scs (any-reg descriptor-reg))) + (:results (result :scs (any-reg))) (:result-types positive-fixnum) (:vop-var vop) (:save-p :compute-only) diff --git a/version.lisp-expr b/version.lisp-expr index 5f61894..ccda712 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.5.23" +"0.8.5.24"