[sb-simd-cvs] CVS update: sb-simd/sbcl-src/patch_against_sbcl_0_9_3 sb-simd/sbcl-src/makepatch.sh
Risto Laakso
rlaakso at common-lisp.net
Mon Aug 8 13:33:30 UTC 2005
Update of /project/sb-simd/cvsroot/sb-simd/sbcl-src
In directory common-lisp.net:/tmp/cvs-serv31523/sbcl-src
Modified Files:
patch_against_sbcl_0_9_3 makepatch.sh
Log Message:
..
Date: Mon Aug 8 15:33:25 2005
Author: rlaakso
Index: sb-simd/sbcl-src/patch_against_sbcl_0_9_3
diff -u sb-simd/sbcl-src/patch_against_sbcl_0_9_3:1.1.1.1 sb-simd/sbcl-src/patch_against_sbcl_0_9_3:1.2
--- sb-simd/sbcl-src/patch_against_sbcl_0_9_3:1.1.1.1 Fri Aug 5 15:13:29 2005
+++ sb-simd/sbcl-src/patch_against_sbcl_0_9_3 Mon Aug 8 15:33:25 2005
@@ -1,15 +1,16 @@
-diff -Naur src-093/compiler/x86/insts.lisp src/compiler/x86/insts.lisp
---- src-093/compiler/x86/insts.lisp 2005-08-05 15:31:17.723664255 +0300
-+++ src/compiler/x86/insts.lisp 2005-08-05 15:42:36.536109257 +0300
-@@ -192,6 +192,7 @@
+diff -x 'CVS*' -Naur src-093/compiler/x86/insts.lisp src/compiler/x86/insts.lisp
+--- src-093/compiler/x86/insts.lisp 2005-08-05 16:13:29.000000000 +0300
++++ src/compiler/x86/insts.lisp 2005-08-08 16:30:23.352842152 +0300
+@@ -192,6 +192,8 @@
(:byte 8)
(:word 16)
(:dword 32)
++ (:qword 64)
+ (:dqword 128)
(:float 32)
(:double 64)))
-@@ -671,7 +672,7 @@
+@@ -671,7 +673,7 @@
(defun reg-tn-encoding (tn)
(declare (type tn tn))
@@ -18,7 +19,7 @@
(let ((offset (tn-offset tn)))
(logior (ash (logand offset 1) 2)
(ash offset -1))))
-@@ -718,6 +719,8 @@
+@@ -718,6 +720,8 @@
(ecase (sb-name (sc-sb (tn-sc thing)))
(registers
(emit-mod-reg-r/m-byte segment #b11 reg (reg-tn-encoding thing)))
@@ -27,7 +28,7 @@
(stack
;; Convert stack tns into an index off of EBP.
(let ((disp (- (* (1+ (tn-offset thing)) n-word-bytes))))
-@@ -830,6 +833,10 @@
+@@ -830,6 +834,10 @@
(and (tn-p thing)
(eq (sb-name (sc-sb (tn-sc thing))) 'registers)))
@@ -38,7 +39,7 @@
(defun accumulator-p (thing)
(and (register-p thing)
(= (tn-offset thing) 0)))
-@@ -2042,6 +2049,123 @@
+@@ -2042,6 +2050,1339 @@
(:emitter
(emit-header-data segment return-pc-header-widetag)))
@@ -79,6 +80,20 @@
+ (EMIT-BYTE SEGMENT 94)
+ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
+
++(DEFINE-INSTRUCTION HADDPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 124)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION HSUBPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 125)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
+(DEFINE-INSTRUCTION MAXPS
+ (SEGMENT DST SRC)
+ (:EMITTER (EMIT-BYTE SEGMENT 15)
@@ -127,24 +142,1227 @@
+ (EMIT-BYTE SEGMENT 92)
+ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
+
++(DEFINE-INSTRUCTION UNPCKHPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 21)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION UNPCKLPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 20)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
+(DEFINE-INSTRUCTION XORPS
+ (SEGMENT DST SRC)
+ (:EMITTER (EMIT-BYTE SEGMENT 15)
+ (EMIT-BYTE SEGMENT 87)
+ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
+
-+;;; SSE MOVE
++(DEFINE-INSTRUCTION ADDPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 88)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ADDSUBPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 208)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ANDNPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 85)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ANDPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 84)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION DIVPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 94)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION HADDPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 124)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION HSUBPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 125)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MAXPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 95)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MINPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 93)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MULPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 89)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ORPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 86)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SQRTPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 81)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SUBPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 92)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION UNPCKHPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 21)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION UNPCKLPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 20)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION XORPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 87)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ADDSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 88)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION COMISD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 47)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION DIVSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 94)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MAXSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 95)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MINSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 93)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MULSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 89)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SQRTSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 81)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SUBSD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 92)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION UCOMISD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 46)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION ADDSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 88)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION COMISS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 47)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION DIVSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 94)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MAXSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 95)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MINSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 93)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MULSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 89)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION RCPSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 83)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION RSQRTSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 82)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SQRTSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 81)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION SUBSS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 92)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION UCOMISS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 46)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PACKSSDW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 107)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PACKSSWB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 99)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PACKUSWB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 103)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 252)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 254)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 212)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDSB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 236)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 237)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDUSB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 220)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDUSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 221)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PADDW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 253)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PAND
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 219)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PANDN
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 223)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PAVGB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 224)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PAVGW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 227)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPEQB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 116)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPEQD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 118)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPEQW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 117)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPGTB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 100)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPGTD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 102)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PCMPGTW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 101)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMADDWD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 245)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMAXSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 238)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMAXUB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 222)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMINSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 234)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMINUB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 218)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMOVMSKB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 215)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMULHUW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 228)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMULHW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 229)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMULLW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 213)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PMULUDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 244)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION POR
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 235)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSADBW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 246)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSSLD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 242)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSLLQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 243)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSLLW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 241)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSRAD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 226)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSRAW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 226)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSRLD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 210)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSRLQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 211)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSRLW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 209)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 248)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 250)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 251)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBSB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 232)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 233)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBUSB
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 216)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBUSW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 217)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PSUBW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 249)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKHBW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 104)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKHDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 106)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKHQDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 109)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKHWD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 105)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKLBW
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 96)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKLDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 98)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKLQDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 108)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PUNPCKLWD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 97)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PXOR
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 239)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTDQ2PD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 230)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTDQ2PS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 91)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPD2DQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 230)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPD2PI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 45)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPD2PS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 90)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPI2PD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 42)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPI2PS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 42)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPS2DQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 91)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPS2PD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 90)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTPS2PI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 45)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSD2SI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 45)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSD2SS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 90)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSI2SD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 42)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSI2SS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 42)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSS2SD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 90)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTSS2SI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 45)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTPD2DQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 230)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTPD2PI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 44)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTPS2DQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 91)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTPS2PI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 44)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTSD2SI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 44)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION CVTTSS2SI
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 44)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION LDDQU
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 240)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MASKMOVDQU
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 247)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVDDUP
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 18)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVHLPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 18)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVLHPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 22)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVMSKPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 80)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVMSKPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 80)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVNTDQ
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 231)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVNTPD
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 43)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVNTPS
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 43)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVSHDUP
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 22)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION MOVSLDUP
++ (SEGMENT DST SRC)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 18)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))))
++
++(DEFINE-INSTRUCTION PEXTRW
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 197)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION PINSRW
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 196)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION PSHUFD
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 112)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION PSHUFHW
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 112)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION PSHUFLW
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 112)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION SHUFPD
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 198)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION SHUFPS
++ (SEGMENT DST SRC BYTE)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 198)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT :BYTE BYTE)))
++
++(DEFINE-INSTRUCTION CMPPD
++ (SEGMENT DST SRC COND)
++ (:EMITTER (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 194)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT
++ :BYTE
++ (CDR
++ (ASSOC COND
++ '((:EQ . 0)
++ (:E . 0) (:Z . 0)
++ (:L . 1)
++ (:NGE . 1)
++ (:LE . 2)
++ (:NG . 2)
++ (:UNORD . 3)
++ (:NE . 4)
++ (:NZ . 4)
++ (:NL . 5)
++ (:GE . 5)
++ (:NLE . 6)
++ (:G . 6)
++ (:ORD . 7)))))))
++
++(DEFINE-INSTRUCTION CMPPS
++ (SEGMENT DST SRC COND)
++ (:EMITTER (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 194)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT
++ :BYTE
++ (CDR
++ (ASSOC COND
++ '((:EQ . 0)
++ (:E . 0) (:Z . 0)
++ (:L . 1)
++ (:NGE . 1)
++ (:LE . 2)
++ (:NG . 2)
++ (:UNORD . 3)
++ (:NE . 4)
++ (:NZ . 4)
++ (:NL . 5)
++ (:GE . 5)
++ (:NLE . 6)
++ (:G . 6)
++ (:ORD . 7)))))))
++
++(DEFINE-INSTRUCTION CMPSD
++ (SEGMENT DST SRC COND)
++ (:EMITTER (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 194)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT
++ :BYTE
++ (CDR
++ (ASSOC COND
++ '((:EQ . 0)
++ (:E . 0) (:Z . 0)
++ (:L . 1)
++ (:NGE . 1)
++ (:LE . 2)
++ (:NG . 2)
++ (:UNORD . 3)
++ (:NE . 4)
++ (:NZ . 4)
++ (:NL . 5)
++ (:GE . 5)
++ (:NLE . 6)
++ (:G . 6)
++ (:ORD . 7)))))))
++
++(DEFINE-INSTRUCTION CMPSS
++ (SEGMENT DST SRC COND)
++ (:EMITTER (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 194)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST))
++ (EMIT-SIZED-IMMEDIATE SEGMENT
++ :BYTE
++ (CDR
++ (ASSOC COND
++ '((:EQ . 0)
++ (:E . 0) (:Z . 0)
++ (:L . 1)
++ (:NGE . 1)
++ (:LE . 2)
++ (:NG . 2)
++ (:UNORD . 3)
++ (:NE . 4)
++ (:NZ . 4)
++ (:NL . 5)
++ (:GE . 5)
++ (:NLE . 6)
++ (:G . 6)
++ (:ORD . 7)))))))
++
++(DEFINE-INSTRUCTION MOVAPD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 40)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 41)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVAPS
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 40)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 41)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 110)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 126)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVDQA
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 111)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 127)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVDQU
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 111)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 127)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVHPD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 22)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 23)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVHPS
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 22)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 23)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVLPD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 18)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 19)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVLPS
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 18)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 19)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVQ
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 126)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 214)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVSD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 16)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 242)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 17)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVSS
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 16)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 243)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 17)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVUPD
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15) (EMIT-BYTE SEGMENT 16)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 102)
++ (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 17)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
++
++(DEFINE-INSTRUCTION MOVUPS
++ (SEGMENT DST SRC)
++ (:EMITTER
++ (COND
++ ((SSE-REGISTER-P DST) (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 16)
++ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
++ (T (EMIT-BYTE SEGMENT 15)
++ (EMIT-BYTE SEGMENT 17)
++ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
+
-+(DEFINE-INSTRUCTION MOVUPS (SEGMENT DST SRC)
-+ (:EMITTER
-+ (COND
-+ ((SSE-REGISTER-P DST)
-+ (EMIT-BYTE SEGMENT 15)
-+ (EMIT-BYTE SEGMENT 16)
-+ (EMIT-EA SEGMENT SRC (REG-TN-ENCODING DST)))
-+ (T (EMIT-BYTE SEGMENT 15)
-+ (EMIT-BYTE SEGMENT 17)
-+ (EMIT-EA SEGMENT DST (REG-TN-ENCODING SRC))))))
+
+
+;;; CPUID
@@ -155,16 +1373,15 @@
+ (emit-byte segment #x0F)
+ (emit-byte segment #xA2)))
+
-+
+
+
+
;;;; fp instructions
;;;;
;;;; FIXME: This section said "added by jrd", which should end up in CREDITS.
-diff -Naur src-093/compiler/x86/vm.lisp src/compiler/x86/vm.lisp
---- src-093/compiler/x86/vm.lisp 2005-08-05 15:32:19.810183044 +0300
-+++ src/compiler/x86/vm.lisp 2005-08-05 15:38:26.784310770 +0300
+diff -x 'CVS*' -Naur src-093/compiler/x86/vm.lisp src/compiler/x86/vm.lisp
+--- src-093/compiler/x86/vm.lisp 2005-08-05 16:13:29.000000000 +0300
++++ src/compiler/x86/vm.lisp 2005-08-08 16:32:19.609588299 +0300
@@ -21,7 +21,8 @@
(defvar *byte-register-names* (make-array 8 :initial-element nil))
(defvar *word-register-names* (make-array 16 :initial-element nil))
Index: sb-simd/sbcl-src/makepatch.sh
diff -u sb-simd/sbcl-src/makepatch.sh:1.1.1.1 sb-simd/sbcl-src/makepatch.sh:1.2
--- sb-simd/sbcl-src/makepatch.sh:1.1.1.1 Fri Aug 5 15:13:29 2005
+++ sb-simd/sbcl-src/makepatch.sh Mon Aug 8 15:33:25 2005
@@ -1,4 +1,4 @@
#!/bin/sh
find . -name '.emacs*' |xargs rm 2>/dev/null
find . -name '*~' |xargs rm 2>/dev/null
-diff -Naur src-093 src > patch_against_sbcl_0_9_3
+diff -x "CVS*" -Naur src-093 src > patch_against_sbcl_0_9_3
More information about the Sb-simd-cvs
mailing list