1.0.3.46: De-pessimized x86 sub-byte DATA-VECTOR-SET/* VOPs.
authorlisphacker <lisphacker>
Sun, 18 Mar 2007 23:46:07 +0000 (23:46 +0000)
committerlisphacker <lisphacker>
Sun, 18 Mar 2007 23:46:07 +0000 (23:46 +0000)
  Reduced register usage requirements by one (much needed) register.

src/compiler/x86/array.lisp
version.lisp-expr

index 3ddeadb..9f60029 100644 (file)
          (:note "inline array store")
          (:translate data-vector-set)
          (:policy :fast-safe)
-         (:args (object :scs (descriptor-reg))
+         (:args (object :scs (descriptor-reg) :to (:argument 2))
                 (index :scs (unsigned-reg) :target ecx)
                 (value :scs (unsigned-reg immediate) :target result))
          (:arg-types ,type positive-fixnum positive-fixnum)
          (:result-types positive-fixnum)
          (:temporary (:sc unsigned-reg) word-index)
          (:temporary (:sc unsigned-reg) old)
-         (:temporary (:sc unsigned-reg :offset ecx-offset) ecx)
+         (:temporary (:sc unsigned-reg :offset ecx-offset :from (:argument 1)) ecx)
          (:generator 25
            (move word-index index)
            (inst shr word-index ,bit-shift)
index 60c34a1..6460028 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".)
-"1.0.3.45"
+"1.0.3.46"