From: Alexey D. <ade...@us...> - 2003-08-19 09:24:40
|
Update of /cvsroot/sbcl/sbcl/src/compiler/x86 In directory sc8-pr-cvs1:/tmp/cvs-serv25320/src/compiler/x86 Modified Files: array.lisp Log Message: 0.8.2.43: * New optimization policy: RECOGNIZE-SELF-CALLS; * on x86 DATA-VECTOR-REF/SIMPLE-BASE-STRING does not use AL temporary. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/array.lisp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- array.lisp 5 Aug 2003 14:11:40 -0000 1.11 +++ array.lisp 19 Aug 2003 09:24:37 -0000 1.12 @@ -1253,20 +1253,13 @@ (:args (object :scs (descriptor-reg)) (index :scs (unsigned-reg))) (:arg-types simple-base-string positive-fixnum) - (:temporary (:sc unsigned-reg ; byte-reg - :offset eax-offset ; al-offset - :target value - :from (:eval 0) :to (:result 0)) - eax) - (:ignore eax) (:results (value :scs (base-char-reg))) (:result-types base-char) (:generator 5 - (inst mov al-tn + (inst mov value (make-ea :byte :base object :index index :scale 1 :disp (- (* vector-data-offset n-word-bytes) - other-pointer-lowtag))) - (move value al-tn))) + other-pointer-lowtag))))) (define-vop (data-vector-ref-c/simple-base-string) (:translate data-vector-ref) @@ -1274,25 +1267,20 @@ (:args (object :scs (descriptor-reg))) (:info index) (:arg-types simple-base-string (:constant (signed-byte 30))) - (:temporary (:sc unsigned-reg :offset eax-offset :target value - :from (:eval 0) :to (:result 0)) - eax) - (:ignore eax) (:results (value :scs (base-char-reg))) (:result-types base-char) (:generator 4 - (inst mov al-tn + (inst mov value (make-ea :byte :base object :disp (- (+ (* vector-data-offset n-word-bytes) index) - other-pointer-lowtag))) - (move value al-tn))) + other-pointer-lowtag))))) (define-vop (data-vector-set/simple-base-string) (:translate data-vector-set) (:policy :fast-safe) (:args (object :scs (descriptor-reg) :to (:eval 0)) (index :scs (unsigned-reg) :to (:eval 0)) - (value :scs (base-char-reg))) + (value :scs (base-char-reg) :target result)) (:arg-types simple-base-string positive-fixnum base-char) (:results (result :scs (base-char-reg))) (:result-types base-char) |