[sb-simd-cvs] CVS update: sb-simd/generate-sse-instructions.lisp
Risto Laakso
rlaakso at common-lisp.net
Mon Aug 8 10:59:56 UTC 2005
Update of /project/sb-simd/cvsroot/sb-simd
In directory common-lisp.net:/tmp/cvs-serv19950
Modified Files:
generate-sse-instructions.lisp
Log Message:
..
Date: Mon Aug 8 12:59:53 2005
Author: rlaakso
Index: sb-simd/generate-sse-instructions.lisp
diff -u sb-simd/generate-sse-instructions.lisp:1.2 sb-simd/generate-sse-instructions.lisp:1.3
--- sb-simd/generate-sse-instructions.lisp:1.2 Mon Aug 8 12:35:37 2005
+++ sb-simd/generate-sse-instructions.lisp Mon Aug 8 12:59:52 2005
@@ -11,63 +11,38 @@
CMPPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
CMPSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CMPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
-COMISD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
-COMISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
-CVTDQ2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
-CVTDQ2PS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
-CVTPD2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
-CVTPD2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
-CVTPD2PS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
-CVTPI2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
-CVTPI2PS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
-CVTPS2DQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
-CVTPS2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
-CVTPS2PI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
-CVTSD2SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
-CVTSD2SS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
-CVTSI2SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
-CVTSI2SS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
-CVTSS2SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
-CVTSS2SI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
-CVTTPD2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
-CVTTPD2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
-CVTTPS2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
-CVTTPS2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
-CVTTSD2SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
-CVTTSS2SI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
+
FXRSTOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
FXSAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
+
HADDPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
HADDPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
HSUBPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
HSUBPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
+
LDDQU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
LDMXCSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
+
MASKMOVDQU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
-MOVAPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
-MOVAPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
+
MOVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
MOVDDUP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
MOVDQ2Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
-MOVDQA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
-MOVDQU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
+
MOVHLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
-MOVHPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
-MOVHPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
+
MOVLHPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
-MOVLPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
-MOVLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
+
MOVMSKPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
MOVMSKPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
MOVNTDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
MOVNTPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
MOVNTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
-MOVQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
+
MOVQ2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
-MOVSD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
+
MOVSHDUP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
MOVSLDUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
-MOVSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
PEXTRW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
PINSRW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
@@ -89,12 +64,7 @@
SHUFPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
SHUFPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
STMXCSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
-UCOMISD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
-UCOMISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
-UNPCKHPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
-UNPCKHPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
-UNPCKLPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
-UNPCKLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
+
|#
@@ -126,6 +96,8 @@
(rsqrtps #x0F #x52)
(sqrtps #x0F #x51)
(subps #x0F #x5C)
+ (unpckhps #x0F #x15)
+ (unpcklps #x0F #x14)
(xorps #x0F #x57)
;; double precision float
@@ -140,19 +112,24 @@
(orps #x66 #x0F #x56)
(sqrtpd #x66 #x0F #x51)
(subpd #x66 #x0F #x5C)
+ (unpckhpd #x66 #x0F #x15)
+ (unpcklpd #x66 #x0F #x14)
(xorpd #x66 #x0F #x57)
;; scalar double precision float
(addsd #xF2 #x0F #x58)
+ (comisd #x66 #x0F #x2F)
(divsd #xF2 #x0F #x5E)
(maxsd #xF2 #x0F #x5F)
(minsd #xF2 #x0F #x5D)
(mulsd #xF2 #x0F #x59)
(sqrtsd #xF2 #x0F #x51)
(subsd #xF2 #x0F #x5C)
+ (ucomisd #x66 #x0F #x2E)
;; scalar single precision float
(addss #xF3 #x0F #x58)
+ (comiss #x0F #x2F)
(divss #xF3 #x0F #x5E)
(maxss #xF3 #x0F #x5F)
(minss #xF3 #x0F #x5D)
@@ -161,6 +138,8 @@
(rsqrtss #xF3 #x0F #x52)
(sqrtss #xF3 #x0F #x51)
(subss #xF3 #x0F #x5C)
+ (ucomiss #x0F #x2E)
+
;; packed integer
(packssdw #x66 #x0F #x6B)
@@ -235,6 +214,30 @@
(punpcklwd #x66 #x0F #x61)
(pxor #x66 #x0F #xEF)
+
+ ;; convert
+ (cvtdq2pd #xF3 #x0F #xE6)
+ (cvtdq2ps #x0F #x5B)
+ (cvtpd2dq #xF2 #x0F #xE6)
+ (cvtpd2pi #x66 #x0F #x2D)
+ (cvtpd2ps #x66 #x0F #x5A)
+ (cvtpi2pd #x66 #x0F #x2A)
+ (cvtpi2ps #x0F #x2A)
+ (cvtps2dq #x66 #x0F #x5B)
+ (cvtps2pd #x0F #x5A)
+ (cvtps2pi #x0F #x2D)
+ (cvtsd2si #xF2 #x0F #x2D)
+ (cvtsd2ss #xF2 #x0F #x5A)
+ (cvtsi2sd #xF2 #x0F #x2A)
+ (cvtsi2ss #xF3 #x0F #x2A)
+ (cvtss2sd #xF3 #x0F #x5A)
+ (cvtss2si #xF3 #x0F #x2D)
+ (cvttpd2dq #x66 #x0F #xE6)
+ (cvttpd2pi #x66 #x0F #x2C)
+ (cvttps2dq #xF3 #x0F #x5B)
+ (cvttps2pi #x0F #x2C)
+ (cvttsd2si #xF2 #x0F #x2C)
+ (cvttss2si #xF3 #x0F #x2C)
)
do
@@ -244,11 +247,30 @@
,@(emit-ops ops)
(emit-ea segment src (reg-tn-encoding dst))))))
- ;; MOVUPS
+ ;; MOVES
(loop for (inst ops-m2r ops-r2m) in
'(
+ (movapd (#x66 #x0F #x28) (#x66 #x0F #x29))
+ (movaps (#x0F #x28) (#x0F #x29))
+
+ (movdqa (#x66 #x0F #x6F) (#x66 #x0F #x7F))
+ (movdqu (#xF3 #x0F #x6F) (#xF3 #x0F #x7F))
+
+ (movhpd (#x66 #x0F #x16) (#x66 #x0F #x17))
+ (movhps (#x0F #x16) (#x0F #x17))
+
+ (movlpd (#x66 #x0F #x12) (#x66 #x0F #x13))
+ (movlps (#x0F #x12) (#x0F #x13))
+
+ (movq (#xF3 #x0F #x7E) (#x66 #x0F #xD6))
+
+ (movsd (#xF2 #x0F #x10) (#xF2 #x0F #x11))
+
+ (movss (#xF3 #x0F #x10) (#xF3 #x0F #x11))
+
+ (movupd (#x66 #x0F #x10) (#x66 #x0F #x11))
(movups (#x0F #x10) (#x0F #x11))
- (movupd (#x66 #x0F #x10) (#x66 #x0F #x11)))
+ )
do
(format stream "~S~%~%"
`(define-instruction ,(intern (symbol-name inst)) (segment dst src)
More information about the Sb-simd-cvs
mailing list