Update of /project/sb-simd/cvsroot/sb-simd In directory common-lisp.net:/tmp/cvs-serv26463
Modified Files: load.lisp generate-sse-instructions.lisp detect-simd.lisp TODO Added Files: test-seq.lisp sse-seq.lisp VOP.txt Log Message:
Date: Fri Aug 12 13:55:40 2005 Author: rlaakso
Index: sb-simd/load.lisp diff -u sb-simd/load.lisp:1.3 sb-simd/load.lisp:1.4 --- sb-simd/load.lisp:1.3 Tue Aug 9 19:18:15 2005 +++ sb-simd/load.lisp Fri Aug 12 13:55:39 2005 @@ -14,6 +14,8 @@ (if t (progn (load (compile-file "detect-simd.lisp")) - (load (compile-file "push-simd-features.lisp")) + (load (compile-file "timing.lisp")) + (load (compile-file "sse-seq.lisp")) + (load (compile-file "test-seq.lisp")) ))
Index: sb-simd/generate-sse-instructions.lisp diff -u sb-simd/generate-sse-instructions.lisp:1.5 sb-simd/generate-sse-instructions.lisp:1.6 --- sb-simd/generate-sse-instructions.lisp:1.5 Mon Aug 8 18:23:22 2005 +++ sb-simd/generate-sse-instructions.lisp Fri Aug 12 13:55:39 2005 @@ -42,18 +42,6 @@
MOVQ2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
-(ib-forms:) -PSLLD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 -PSLLDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 -PSLLQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 -PSLLW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 -PSRAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 -PSRAW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 -PSRLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 -PSRLDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 -PSRLQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 -PSRLW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 - STMXCSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
@@ -339,7 +327,31 @@ ,@(emit-ops ops-m2r) (emit-ea segment src (reg-tn-encoding dst))) (t ,@(emit-ops ops-r2m) - (emit-ea segment dst (reg-tn-encoding src))))))))) + (emit-ea segment dst (reg-tn-encoding src)))))))) + + ;; misc + (loop for (name mode . opcodes) in + '( + (pslld-ib 6 #x66 #x0F #x72) + (pslldq-ib 7 #x66 #x0F #x73) + (psllq-ib 6 #x66 #x0F #x73) + (psllw-ib 6 #x66 #x0F #x71) + (psrad-ib 4 #x66 #x0F #x72) + (psraw-ib 4 #x66 #x0F #x71) + (psrld-ib 2 #x66 #x0F #x72) + (psrldq-ib 3 #x66 #x0F #x73) + (psrlq-ib 2 #x66 #x0F #x73) + (psrlw-ib 2 #x66 #x0F #x71) + ) + do + (format stream "~S~%~%" + `(define-instruction ,(intern (symbol-name name)) (segment dst amount) + (:emitter + ,@(emit-ops opcodes) + (emit-ea segment dst ,mode) + (emit-byte segment amount))))) + + )
(defun gen-ops-to-file (filename) (with-open-file (stream filename :direction :output :if-exists :supersede)
Index: sb-simd/detect-simd.lisp diff -u sb-simd/detect-simd.lisp:1.1 sb-simd/detect-simd.lisp:1.2 --- sb-simd/detect-simd.lisp:1.1 Tue Aug 9 19:18:15 2005 +++ sb-simd/detect-simd.lisp Fri Aug 12 13:55:39 2005 @@ -57,11 +57,3 @@
(inst mov res edx)))
- -(eval-when (:load-toplevel) - (let ((res (sb-sys:%primitive sb-vm::%detect-simd/x86))) -;; (format t "res is ~A~%" res) - (if (/= (logand res #b001) 0) (pushnew :sse sb-vm::*backend-subfeatures*)) - (if (/= (logand res #b010) 0) (pushnew :sse2 sb-vm::*backend-subfeatures*)) - (if (/= (logand res #b100) 0) (pushnew :sse3 sb-vm::*backend-subfeatures*)))) - \ No newline at end of file
Index: sb-simd/TODO diff -u sb-simd/TODO:1.1.1.1 sb-simd/TODO:1.2 --- sb-simd/TODO:1.1.1.1 Fri Aug 5 15:13:29 2005 +++ sb-simd/TODO Fri Aug 12 13:55:39 2005 @@ -1,20 +1 @@
-operations from AMD manual: - - -sign: - -andps xmm0, #x8000 0000 8000 0000 .. - -neg: - -xorps xmm0, #x8000 0000 8000 0000 .. - -abs: - -andps xmm0, #x7FFF FFFF 7FFF FFFF .. - -clear: - -xorps xmm0, xmm0 -