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)))
-