|
@@ -2646,7 +2646,7 @@ fpureg \1\xDF\10\xC0 PENT,3DNOW,FPU
|
|
|
|
|
|
; Willamette SSE2 Cacheability Instructions
|
|
|
[MASKMOVDQU]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Rop2, Ch_WMemEDI)
|
|
|
xmmreg,xmmreg \361\2\x0F\xF7\110 WILLAMETTE,SSE2
|
|
|
|
|
|
; CLFLUSH needs its own feature flag implemented one day
|
|
@@ -2692,50 +2692,50 @@ xmmrm,xmmreg \333\2\x0F\x7F\101 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \333\2\x0F\x6F\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[MOVDQ2Q]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Wop2)
|
|
|
mmxreg,xmmreg \334\2\x0F\xD6\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[MOVQ2DQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Wop2)
|
|
|
xmmreg,mmxreg \333\2\x0F\xD6\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[PADDQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
mmxreg,mmxrm \2\x0F\xD4\110 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\xD4\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[PMULUDQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Wop2)
|
|
|
mmxreg,mmxrm \2\x0F\xF4\110 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\xF4\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[PSHUFD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,xmmrm,imm \361\2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2
|
|
|
|
|
|
[PSHUFHW]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,xmmrm,imm \333\2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2
|
|
|
|
|
|
[PSHUFLW]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,xmmrm,imm \334\2\x0F\x70\110\22 WILLAMETTE,SSE2,SM2,SB,AR2
|
|
|
|
|
|
[PSRLDQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,imm \361\2\x0F\x73\203\25 WILLAMETTE,SSE2,SB,AR1
|
|
|
|
|
|
[PSUBQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
mmxreg,mmxrm \2\x0F\xFB\110 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\xFB\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[PUNPCKHQDQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,xmmrm \361\2\x0F\x6D\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[PUNPCKLQDQ]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Rop1, Ch_Mop2)
|
|
|
xmmreg,xmmrm \361\2\x0F\x6C\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
;
|
|
@@ -2758,74 +2758,74 @@ xmmreg,xmmrm \361\2\x0F\x55\110 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\x54\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPEQPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
; note: no SM flag on CMPxxSD, they use 64-bit memory location, not 128-bit
|
|
|
[CMPEQSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPLEPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPLESD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPLTPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPLTSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPNEQPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPNEQSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPNLEPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPNLESD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPNLTPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPNLTSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPORDPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPORDSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2
|
|
|
|
|
|
[CMPUNORDPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[CMPUNORDSD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \337\334\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2
|
|
|
|
|
|
; CMPPD/CMPSD must come after the specific ops; that way the disassembler will find the
|
|
|
; specific ops first and only disassemble illegal ones as cmppd/cmpsd.
|
|
|
[CMPPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm,imm \361\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SM2,SB,AR2
|
|
|
|
|
|
[COMISD]
|
|
@@ -2935,21 +2935,21 @@ xmmrm,xmmreg \361\2\x0F\x29\101 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\x28\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[MOVHPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
mem,xmmreg \361\2\x0F\x17\101 WILLAMETTE,SSE2
|
|
|
xmmreg,mem \361\2\x0F\x16\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[MOVLPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
mem,xmmreg \361\2\x0F\x13\101 WILLAMETTE,SSE2
|
|
|
xmmreg,mem \361\2\x0F\x12\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[MOVMSKPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Wop2, Ch_Rop1)
|
|
|
reg32,xmmreg \361\2\x0F\x50\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[MOVUPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Wop2, Ch_Rop1)
|
|
|
xmmrm,xmmreg \361\2\x0F\x11\101 WILLAMETTE,SSE2,SM
|
|
|
xmmreg,xmmrm \361\2\x0F\x10\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
@@ -2991,11 +2991,11 @@ xmmreg,xmmrm \337\334\2\x0F\x5C\110 WILLAMETTE,SSE2
|
|
|
xmmreg,xmmrm \337\361\2\x0F\x2E\110 WILLAMETTE,SSE2
|
|
|
|
|
|
[UNPCKHPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\x15\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[UNPCKLPD]
|
|
|
-(Ch_All)
|
|
|
+(Ch_Mop2, Ch_Rop1)
|
|
|
xmmreg,xmmrm \361\2\x0F\x14\110 WILLAMETTE,SSE2,SM
|
|
|
|
|
|
[XORPD]
|