[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