[sb-simd-cvs] CVS update: sb-simd/sbcl-src/src/compiler/x86/insts.lisp

Risto Laakso rlaakso at common-lisp.net
Mon Aug 8 13:33:29 UTC 2005


Update of /project/sb-simd/cvsroot/sb-simd/sbcl-src/src/compiler/x86
In directory common-lisp.net:/tmp/cvs-serv31523/sbcl-src/src/compiler/x86

Modified Files:
	insts.lisp 
Log Message:
..

Date: Mon Aug  8 15:33:23 2005
Author: rlaakso

Index: sb-simd/sbcl-src/src/compiler/x86/insts.lisp
diff -u sb-simd/sbcl-src/src/compiler/x86/insts.lisp:1.1.1.1 sb-simd/sbcl-src/src/compiler/x86/insts.lisp:1.2
--- sb-simd/sbcl-src/src/compiler/x86/insts.lisp:1.1.1.1	Fri Aug  5 15:13:29 2005
+++ sb-simd/sbcl-src/src/compiler/x86/insts.lisp	Mon Aug  8 15:33:23 2005
@@ -192,6 +192,7 @@
     (:byte 8)
     (:word 16)
     (:dword 32)
+    (:qword 64)
     (:dqword 128)
     (:float 32)
     (:double 64)))
@@ -2086,6 +2087,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)
@@ -2134,24 +2149,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
@@ -2162,7 +3380,6 @@
    (emit-byte segment #x0F)
    (emit-byte segment #xA2)))
 
-    
 
 
 




More information about the Sb-simd-cvs mailing list