From: Stas Boukarev Date: Mon, 19 Aug 2013 22:29:01 +0000 (+0400) Subject: Clean up listify-rest-args VOP on x86-64. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=002a37753f2e1a95962a2ef941045e826168e9a6;p=sbcl.git Clean up listify-rest-args VOP on x86-64. It's no longer using loop instructions, remove STD and CLD. --- diff --git a/src/compiler/x86-64/call.lisp b/src/compiler/x86-64/call.lisp index 9684aa5..a0908f9 100644 --- a/src/compiler/x86-64/call.lisp +++ b/src/compiler/x86-64/call.lisp @@ -1233,7 +1233,7 @@ :disp n-word-bytes)))) (define-vop (more-arg) - (:translate sb!c::%more-arg) + (:translate sb!c::%more-arg) (:policy :fast-safe) (:args (object :scs (descriptor-reg) :to (:result 1)) (index :scs (any-reg) :to (:result 1) :target value)) @@ -1272,8 +1272,6 @@ (inst lea dst (make-ea :qword :index rcx :scale (ash 2 (- word-shift n-fixnum-tag-bits)))) (maybe-pseudo-atomic stack-allocate-p (allocation dst dst node stack-allocate-p list-pointer-lowtag) - ;; Set decrement mode (successive args at lower addresses) - (inst std) ;; Set up the result. (move result dst) ;; Jump into the middle of the loop, 'cause that's where we want @@ -1293,8 +1291,7 @@ (inst sub rcx (fixnumize 1)) (inst jmp :nz loop) ;; NIL out the last cons. - (storew nil-value dst 1 list-pointer-lowtag) - (inst cld)) + (storew nil-value dst 1 list-pointer-lowtag)) (emit-label done)))) ;;; Return the location and size of the &MORE arg glob created by