mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 11:49:23 +02:00
bugfix 35700 xmmrm - zmmrm, mem32/64
git-svn-id: branches/tg74/avx512merge@42956 -
This commit is contained in:
parent
11c46f9345
commit
df199fbe23
@ -413,7 +413,6 @@ interface
|
||||
IF_SB, { unsized operands can't be non-byte }
|
||||
IF_SW, { unsized operands can't be non-word }
|
||||
IF_SD, { unsized operands can't be nondword }
|
||||
IF_SQ, { unsized operands can't be nonqword }
|
||||
|
||||
{ unsized argument spec }
|
||||
{ please keep these in order and in sync with IF_ARMASK }
|
||||
@ -515,7 +514,12 @@ interface
|
||||
IF_TMEM128,
|
||||
IF_THV,
|
||||
IF_THVM,
|
||||
IF_TOVM
|
||||
IF_TOVM,
|
||||
|
||||
{ sse/avx scalare memrefsize }
|
||||
IF_SCL32,
|
||||
IF_SCL64
|
||||
|
||||
);
|
||||
tinsflags=set of tinsflag;
|
||||
|
||||
@ -4949,6 +4953,7 @@ implementation
|
||||
RegBCSTZMMSizeMask := 0;
|
||||
ExistsMemRef := false;
|
||||
|
||||
|
||||
while (insentry^.opcode=AsmOp) do
|
||||
begin
|
||||
MRefInfo := msiUnknown;
|
||||
@ -5027,7 +5032,10 @@ implementation
|
||||
begin
|
||||
inc(actMemCount);
|
||||
|
||||
actMemSize:=actMemSize or (insentry^.optypes[j] and (OT_SIZE_MASK OR OT_VECTORBCST));
|
||||
if IF_SCL32 in insentry^.Flags then actMemSize := actMemSize or OT_BITS32
|
||||
else if IF_SCL64 in insentry^.Flags then actMemSize := actMemSize or OT_BITS64
|
||||
else actMemSize:=actMemSize or (insentry^.optypes[j] and (OT_SIZE_MASK OR OT_VECTORBCST));
|
||||
|
||||
if (insentry^.optypes[j] and OT_REGMEM) = OT_REGMEM then
|
||||
begin
|
||||
actRegMemTypes := actRegMemTypes or insentry^.optypes[j];
|
||||
@ -5138,11 +5146,15 @@ implementation
|
||||
0: ; // nothing todo
|
||||
1: begin
|
||||
MRefInfo := msiUnknown;
|
||||
case actRegMemTypes and (OT_MMXRM or OT_XMMRM or OT_YMMRM or OT_ZMMRM or OT_REG_EXTRA_MASK) of
|
||||
OT_MMXRM: actMemSize := actMemSize or OT_BITS64;
|
||||
OT_XMMRM: actMemSize := actMemSize or OT_BITS128;
|
||||
OT_YMMRM: actMemSize := actMemSize or OT_BITS256;
|
||||
OT_ZMMRM: actMemSize := actMemSize or OT_BITS512;
|
||||
|
||||
if (insentry^.Flags * [IF_SCL32, IF_SCL64] = []) then
|
||||
begin
|
||||
case actRegMemTypes and (OT_MMXRM or OT_XMMRM or OT_YMMRM or OT_ZMMRM or OT_REG_EXTRA_MASK) of
|
||||
OT_MMXRM: actMemSize := actMemSize or OT_BITS64;
|
||||
OT_XMMRM: actMemSize := actMemSize or OT_BITS128;
|
||||
OT_YMMRM: actMemSize := actMemSize or OT_BITS256;
|
||||
OT_ZMMRM: actMemSize := actMemSize or OT_BITS512;
|
||||
end;
|
||||
end;
|
||||
|
||||
case actMemSize of
|
||||
|
@ -736,7 +736,25 @@ begin
|
||||
;
|
||||
end;
|
||||
|
||||
if memopsize = 0 then memopsize := topsize2memsize[tx86operand(operands[i]).opsize];
|
||||
//if memopsize = 0 then memopsize := topsize2memsize[tx86operand(operands[i]).opsize];
|
||||
|
||||
if memopsize = 0 then
|
||||
begin
|
||||
{$ifdef i386}
|
||||
{ 64-bit operands are allowed for SSE and AVX instructions, so
|
||||
go by the byte size instead for these families of opcodes }
|
||||
if (MemRefInfo(opcode).ExistsSSEAVX) then
|
||||
begin
|
||||
memopsize := tx86operand(operands[i]).typesize * 8;
|
||||
if tx86operand(operands[i]).typesize = 8 then
|
||||
{ Will be S_L otherwise and won't be corrected in time }
|
||||
tx86operand(operands[i]).opsize := S_Q;
|
||||
end
|
||||
else
|
||||
{$endif i386}
|
||||
memopsize := topsize2memsize[tx86operand(operands[i]).opsize];
|
||||
end;
|
||||
|
||||
|
||||
if (memopsize > 0) and
|
||||
(memrefsize > 0) then
|
||||
@ -758,30 +776,32 @@ begin
|
||||
std_op2str[opcode],
|
||||
ToStr(memoffset));
|
||||
end
|
||||
else if (memopsize < (memrefsize + memoffset * 8)) then
|
||||
else if ((tx86operand(operands[i]).hastype) and (memopsize < memrefsize)) or
|
||||
(memopsize < (memrefsize + memoffset * 8)) then
|
||||
begin
|
||||
if memoffset = 0 then
|
||||
if memopsize < memrefsize then
|
||||
begin
|
||||
Message3(asmr_w_check_mem_operand_size3,
|
||||
std_op2str[opcode],
|
||||
ToStr(memopsize),
|
||||
ToStr(memrefsize)
|
||||
);
|
||||
end
|
||||
else
|
||||
begin
|
||||
Message4(asmr_w_check_mem_operand_size_offset,
|
||||
std_op2str[opcode],
|
||||
ToStr(memopsize),
|
||||
ToStr(memrefsize),
|
||||
ToStr(memoffset)
|
||||
);
|
||||
if memoffset = 0 then
|
||||
begin
|
||||
Message3(asmr_w_check_mem_operand_size3,
|
||||
std_op2str[opcode],
|
||||
ToStr(memopsize),
|
||||
ToStr(memrefsize)
|
||||
);
|
||||
end
|
||||
else
|
||||
begin
|
||||
Message4(asmr_w_check_mem_operand_size_offset,
|
||||
std_op2str[opcode],
|
||||
ToStr(memopsize),
|
||||
ToStr(memrefsize),
|
||||
ToStr(memoffset)
|
||||
);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -1869,14 +1889,13 @@ begin
|
||||
asize:=OT_BITS32;
|
||||
OS_64,OS_S64:
|
||||
begin
|
||||
{ Only FPU operations know about 64bit values, for all
|
||||
integer operations it is seen as 32bit
|
||||
{ Only FPU and SSE/AVX operations know about 64bit
|
||||
values, for all integer operations it is seen as 32bit
|
||||
|
||||
this applies only to i386, see tw16622}
|
||||
this applies only to i386, see tw16622}
|
||||
|
||||
if gas_needsuffix[opcode] in [attsufFPU,attsufFPUint] then
|
||||
asize:=OT_BITS64
|
||||
else if MemRefInfo(opcode).ExistsSSEAVX then asize:=OT_BITS64
|
||||
if (gas_needsuffix[opcode] in [attsufFPU,attsufFPUint]) or (MemRefInfo(opcode).ExistsSSEAVX) then
|
||||
asize:=OT_BITS64
|
||||
{$ifdef i386}
|
||||
else
|
||||
asize:=OT_BITS32
|
||||
|
@ -2239,7 +2239,7 @@ xmmreg,xmmrm \331\2\x0F\x58\110 KATMAI,SSE
|
||||
|
||||
[ADDSS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x58\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x58\110 KATMAI,SSE,SCL32
|
||||
|
||||
[ANDNPS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
@ -2255,7 +2255,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
|
||||
[CMPEQSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x00 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPLEPS]
|
||||
(Ch_All)
|
||||
@ -2263,7 +2263,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
|
||||
[CMPLESS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x02 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPLTPS]
|
||||
(Ch_All)
|
||||
@ -2271,7 +2271,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
|
||||
[CMPLTSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x01 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPNEQPS]
|
||||
(Ch_All)
|
||||
@ -2279,7 +2279,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
|
||||
[CMPNEQSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x04 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPNLEPS]
|
||||
(Ch_All)
|
||||
@ -2287,7 +2287,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
|
||||
[CMPNLESS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x06 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPNLTPS]
|
||||
(Ch_All)
|
||||
@ -2295,7 +2295,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
|
||||
[CMPNLTSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x05 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPORDPS]
|
||||
(Ch_All)
|
||||
@ -2303,7 +2303,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
|
||||
[CMPORDSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x07 KATMAI,SSE,SCL32
|
||||
|
||||
[CMPUNORDPS]
|
||||
(Ch_All)
|
||||
@ -2311,7 +2311,7 @@ xmmreg,xmmrm \331\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
|
||||
[CMPUNORDSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\xC2\110\1\x03 KATMAI,SSE,SCL32
|
||||
|
||||
;
|
||||
; CMPPS/CMPSS must come after the specific ops; that way the disassembler will find the
|
||||
@ -2324,11 +2324,11 @@ xmmreg,xmmrm,imm \331\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
|
||||
[CMPSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm,imm \333\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
xmmreg,xmmrm,imm \333\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2,SCL32
|
||||
|
||||
[COMISS]
|
||||
(Ch_Rop1, Ch_Rop2, Ch_WFlags)
|
||||
xmmreg,xmmrm \2\x0F\x2F\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \2\x0F\x2F\110 KATMAI,SSE,SCL32
|
||||
|
||||
[CVTPI2PS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
@ -2365,7 +2365,7 @@ xmmreg,xmmrm \331\2\x0F\x5E\110 KATMAI,SSE
|
||||
|
||||
[DIVSS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x5E\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x5E\110 KATMAI,SSE,SCL32
|
||||
|
||||
[LDMXCSR]
|
||||
(Ch_All)
|
||||
@ -2377,7 +2377,7 @@ xmmreg,xmmrm \331\2\x0F\x5F\110 KATMAI,SSE
|
||||
|
||||
[MAXSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\x5F\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x5F\110 KATMAI,SSE,SCL32
|
||||
|
||||
[MINPS]
|
||||
(Ch_All)
|
||||
@ -2385,7 +2385,7 @@ xmmreg,xmmrm \331\2\x0F\x5D\110 KATMAI,SSE
|
||||
|
||||
[MINSS]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \333\2\x0F\x5D\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x5D\110 KATMAI,SSE,SCL32
|
||||
|
||||
[MOVAPS]
|
||||
(Ch_ROp1, Ch_WOp2)
|
||||
@ -2436,7 +2436,7 @@ xmmreg,xmmrm \2\x0F\x59\110 KATMAI,SSE
|
||||
|
||||
[MULSS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x59\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x59\110 KATMAI,SSE,SCL32
|
||||
|
||||
[ORPS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
@ -2448,7 +2448,7 @@ xmmreg,xmmrm \331\2\x0F\x53\110 KATMAI,SSE
|
||||
|
||||
[RCPSS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x53\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x53\110 KATMAI,SSE,SCL32
|
||||
|
||||
[RSQRTPS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
@ -2456,7 +2456,7 @@ xmmreg,xmmrm \331\2\x0F\x52\110 KATMAI,SSE
|
||||
|
||||
[RSQRTSS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x52\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x52\110 KATMAI,SSE,SCL32
|
||||
|
||||
[SHUFPS]
|
||||
(Ch_Mop3, Ch_Rop2)
|
||||
@ -2468,7 +2468,7 @@ xmmreg,xmmrm \331\2\x0F\x51\110 KATMAI,SSE
|
||||
|
||||
[SQRTSS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x51\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x51\110 KATMAI,SSE,SCL32
|
||||
|
||||
[STMXCSR]
|
||||
(Ch_All)
|
||||
@ -2480,11 +2480,11 @@ xmmreg,xmmrm \331\2\x0F\x5C\110 KATMAI,SSE
|
||||
|
||||
[SUBSS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \333\2\x0F\x5C\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \333\2\x0F\x5C\110 KATMAI,SSE,SCL32
|
||||
|
||||
[UCOMISS]
|
||||
(Ch_Rop1, Ch_Rop2, Ch_WZeroFlag, Ch_WParityFlag, Ch_WCarryFlag, Ch_W0OverflowFlag, Ch_W0SignFlag, Ch_W0AuxiliaryFlag)
|
||||
xmmreg,xmmrm \2\x0F\x2E\110 KATMAI,SSE
|
||||
xmmreg,xmmrm \2\x0F\x2E\110 KATMAI,SSE,SCL32
|
||||
|
||||
[UNPCKHPS]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
@ -2747,7 +2747,7 @@ xmmreg,xmmrm \361\2\x0F\x58\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[ADDSD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \334\2\x0F\x58\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x58\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[ANDNPD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
@ -2764,7 +2764,7 @@ 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)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x00 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPLEPD]
|
||||
(Ch_All)
|
||||
@ -2772,7 +2772,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPLESD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x02 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPLTPD]
|
||||
(Ch_All)
|
||||
@ -2780,7 +2780,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPLTSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x01 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPNEQPD]
|
||||
(Ch_All)
|
||||
@ -2788,7 +2788,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPNEQSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x04 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPNLEPD]
|
||||
(Ch_All)
|
||||
@ -2796,7 +2796,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPNLESD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x06 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPNLTPD]
|
||||
(Ch_All)
|
||||
@ -2804,7 +2804,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPNLTSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x05 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPORDPD]
|
||||
(Ch_All)
|
||||
@ -2812,7 +2812,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPORDSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x07 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CMPUNORDPD]
|
||||
(Ch_All)
|
||||
@ -2820,7 +2820,7 @@ xmmreg,xmmrm \361\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SM
|
||||
|
||||
[CMPUNORDSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\xC2\110\1\x03 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
; 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.
|
||||
@ -2830,7 +2830,7 @@ xmmreg,xmmrm,imm \361\2\x0F\xC2\110\26 WILLAMETTE,SSE2,SM2,SB,A
|
||||
|
||||
[COMISD]
|
||||
(Ch_Rop1, Ch_Rop2, Ch_WFlags)
|
||||
xmmreg,xmmrm \361\2\x0F\x2F\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \361\2\x0F\x2F\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[CVTDQ2PD]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
@ -2911,7 +2911,7 @@ xmmreg,xmmrm \361\2\x0F\x5E\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[DIVSD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \334\2\x0F\x5E\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x5E\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[MAXPD]
|
||||
(Ch_All)
|
||||
@ -2919,7 +2919,7 @@ xmmreg,xmmrm \361\2\x0F\x5F\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[MAXSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\x5F\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x5F\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[MINPD]
|
||||
(Ch_All)
|
||||
@ -2927,7 +2927,7 @@ xmmreg,xmmrm \361\2\x0F\x5D\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[MINSD]
|
||||
(Ch_All)
|
||||
xmmreg,xmmrm \334\2\x0F\x5D\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x5D\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[MOVAPD]
|
||||
(Ch_ROp1, Ch_WOp2)
|
||||
@ -2959,7 +2959,7 @@ xmmreg,xmmrm \361\2\x0F\x59\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[MULSD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \334\2\x0F\x59\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x59\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[ORPD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
@ -2975,7 +2975,7 @@ xmmreg,xmmrm \361\2\x0F\x51\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[SQRTSD]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \334\2\x0F\x51\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x51\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
|
||||
[SUBPD]
|
||||
@ -2984,11 +2984,11 @@ xmmreg,xmmrm \361\2\x0F\x5C\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[SUBSD]
|
||||
(Ch_Mop2, Ch_Rop1)
|
||||
xmmreg,xmmrm \334\2\x0F\x5C\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \334\2\x0F\x5C\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[UCOMISD]
|
||||
(Ch_Rop1, Ch_Rop2, Ch_WZeroFlag, Ch_WParityFlag, Ch_WCarryFlag, Ch_W0OverflowFlag, Ch_W0SignFlag, Ch_W0AuxiliaryFlag)
|
||||
xmmreg,xmmrm \361\2\x0F\x2E\110 WILLAMETTE,SSE2
|
||||
xmmreg,xmmrm \361\2\x0F\x2E\110 WILLAMETTE,SSE2,SCL64
|
||||
|
||||
[UNPCKHPD]
|
||||
(Ch_All)
|
||||
@ -3190,7 +3190,7 @@ mem,xmmreg \333\2\x0F\x2B\101 SSE4,SD
|
||||
|
||||
[MOVNTSD]
|
||||
(Ch_All)
|
||||
mem,xmmreg \334\325\2\x0F\x2B\101 SSE4 ;,SQ
|
||||
mem,xmmreg \334\325\2\x0F\x2B\101 SSE4,SCL64 ;,SQ
|
||||
|
||||
[INSERTQ]
|
||||
(Ch_All)
|
||||
@ -3488,11 +3488,11 @@ xmmreg,xmmrm,imm \361\3\x0F\x3A\x09\110\26 SSE41,SM2,SB,AR2
|
||||
|
||||
[ROUNDSS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm,imm \361\3\x0F\x3A\x0A\110\26 SSE41,SM2,SB,AR2
|
||||
xmmreg,xmmrm,imm \361\3\x0F\x3A\x0A\110\26 SSE41,SM2,SB,AR2,SCL32
|
||||
|
||||
[ROUNDSD]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg,xmmrm,imm \361\3\x0F\x3A\x0B\110\26 SSE41,SM2,SB,AR2
|
||||
xmmreg,xmmrm,imm \361\3\x0F\x3A\x0B\110\26 SSE41,SM2,SB,AR2,SCL64
|
||||
|
||||
;*******************************************************************************
|
||||
;**********SSE4.2***************************************************************
|
||||
@ -3627,7 +3627,7 @@ zmmreg_mz,zmmreg,bmem32 \350\351\370\1\x58\75\120 AV
|
||||
|
||||
[VADDSD]
|
||||
(Ch_Wop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \334\350\352\362\370\1\x58\75\120 AVX,SANDYBRIDGE,T1S
|
||||
xmmreg_mz,xmmreg,mem64 \334\350\352\362\370\1\x58\75\120 AVX,SANDYBRIDGE,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \334\350\352\362\370\1\x58\75\120 AVX,SANDYBRIDGE
|
||||
|
||||
|
||||
@ -4170,25 +4170,25 @@ zmmreg_mz,zmmreg_er \350\351\370\1\x5B\110
|
||||
|
||||
[VCVTPD2DQ,vcvtpd2dqM]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg_mz,mem128 \334\350\352\362\370\1\xE6\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,mem256 \334\350\352\362\364\370\1\xE6\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,xmmreg \334\350\352\362\370\1\xE6\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmrm \334\350\352\362\370\1\xE6\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,ymmrm \334\350\352\362\364\370\1\xE6\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,bmem64 \334\350\352\370\1\xE6\110 AVX512,BCST2,TFV
|
||||
xmmreg_mz,bmem64 \334\350\352\364\370\1\xE6\110 AVX512,BCST4,TFV
|
||||
xmmreg_mz,ymmreg \334\350\352\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
|
||||
|
||||
ymmreg_mz,mem512 \334\350\351\352\370\1\xE6\110 AVX512,TFV
|
||||
ymmreg_mz,bmem64 \334\350\351\352\370\1\xE6\110 AVX512,BCST8,TFV
|
||||
ymmreg_mz,zmmreg_er \334\350\351\352\370\1\xE6\110 AVX512
|
||||
|
||||
|
||||
; VCVTPD2PS xmmreg_mz,mem256 must come first - map MemRefSize 256bits correct
|
||||
; map all other MemrefSize (without broasdcast MemRef) to xmmreg, xmmrm
|
||||
[VCVTPD2PS,vcvtpd2psM]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg_mz,mem128 \350\352\361\362\370\1\x5A\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,mem256 \350\352\361\362\364\370\1\x5A\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,xmmreg \350\352\361\362\370\1\x5A\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,ymmreg \350\352\361\362\364\370\1\x5A\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmrm \350\352\361\362\370\1\x5A\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,bmem64 \350\352\361\370\1\x5A\110 AVX512,BCST2,TFV
|
||||
xmmreg_mz,bmem64 \350\352\361\364\370\1\x5A\110 AVX512,BCST4,TFV
|
||||
xmmreg_mz,ymmreg \350\352\361\362\364\370\1\x5A\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem512 \350\351\352\361\370\1\x5A\110 AVX512,TFV
|
||||
ymmreg_mz,bmem64 \350\351\352\361\370\1\x5A\110 AVX512,BCST8,TFV
|
||||
ymmreg_mz,zmmreg_er \350\351\352\361\370\1\x5A\110 AVX512
|
||||
@ -4205,11 +4205,9 @@ zmmreg_mz,ymmreg_sae \350\351\361\371\1\x13\110
|
||||
|
||||
[VCVTPS2DQ]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg_mz,mem128 \350\361\362\370\1\x5B\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,xmmreg \350\361\362\370\1\x5B\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmrm \350\361\362\370\1\x5B\110 AVX,SANDYBRIDGE,TFV
|
||||
ymmreg_mz,ymmrm \350\361\362\364\370\1\x5B\110 AVX,SANDYBRIDGE,TFV
|
||||
xmmreg_mz,bmem32 \350\361\370\1\x5B\110 AVX512,TFV
|
||||
ymmreg_mz,mem256 \350\361\362\364\370\1\x5B\110 AVX,SANDYBRIDGE,TFV
|
||||
ymmreg_mz,ymmreg \350\361\362\364\370\1\x5B\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,bmem32 \350\361\364\370\1\x5B\110 AVX512,TFV
|
||||
zmmreg_mz,mem512 \350\351\361\370\1\x5B\110 AVX512,TFV
|
||||
zmmreg_mz,bmem32 \350\351\361\370\1\x5B\110 AVX512,TFV
|
||||
@ -4221,8 +4219,7 @@ zmmreg_mz,zmmreg_er \350\351\361\370\1\x5B\110
|
||||
xmmreg_mz,mem64 \350\362\370\1\x5A\110 AVX,SANDYBRIDGE,THV
|
||||
xmmreg_mz,xmmreg \350\362\370\1\x5A\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,bmem32 \350\370\1\x5A\110 AVX512,BCST2,THV
|
||||
ymmreg_mz,mem128 \350\362\364\370\1\x5A\110 AVX,SANDYBRIDGE,THV
|
||||
ymmreg_mz,xmmreg \350\362\364\370\1\x5A\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,xmmrm \350\362\364\370\1\x5A\110 AVX,SANDYBRIDGE,THV
|
||||
ymmreg_mz,bmem32 \350\364\370\1\x5A\110 AVX512,BCST4,THV
|
||||
zmmreg_mz,mem256 \350\351\370\1\x5A\110 AVX512,THV
|
||||
zmmreg_mz,ymmreg_sae \350\351\370\1\x5A\110 AVX512
|
||||
@ -4282,15 +4279,15 @@ reg32,xmmreg_er \333\350\362\370\1\x2D\110
|
||||
reg64,mem32 \333\350\352\362\363\370\1\x2D\110 AVX,SANDYBRIDGE,T1F32
|
||||
reg64,xmmreg_er \333\350\352\362\363\370\1\x2D\110 AVX,SANDYBRIDGE
|
||||
|
||||
|
||||
; VCVTTPD2DQ xmmreg_mz,mem256 must come first - map MemRefSize 256bits correct
|
||||
; map all other MemrefSize (without broasdcast MemRef) to xmmreg, xmmrm
|
||||
[VCVTTPD2DQ,vcvttpd2dqM]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
xmmreg_mz,mem128 \350\352\361\362\370\1\xE6\110 AVX,SANDYBRIDGE,AVX512,TFV
|
||||
xmmreg_mz,mem256 \350\352\361\362\364\370\1\xE6\110 AVX,SANDYBRIDGE,AVX512,TFV
|
||||
xmmreg_mz,xmmreg \350\352\361\362\370\1\xE6\110 AVX,SANDYBRIDGE,AVX512
|
||||
xmmreg_mz,ymmreg \350\352\361\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmrm \350\352\361\362\370\1\xE6\110 AVX,SANDYBRIDGE,AVX512,TFV
|
||||
xmmreg_mz,bmem64 \350\352\361\370\1\xE6\110 AVX512,BCST2,TFV
|
||||
xmmreg_mz,bmem64 \350\352\361\364\370\1\xE6\110 AVX512,BCST4,TFV
|
||||
xmmreg_mz,ymmreg \350\352\361\362\364\370\1\xE6\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem512 \350\351\352\361\370\1\xE6\110 AVX512,TFV
|
||||
ymmreg_mz,bmem64 \350\351\352\361\370\1\xE6\110 AVX512,BCST8,TFV
|
||||
ymmreg_mz,zmmreg_sae \350\351\352\361\370\1\xE6\110 AVX512
|
||||
@ -4503,34 +4500,22 @@ xmmreg_mz,xmmreg,xmmreg_sae \333\350\362\370\1\x5D\75\120
|
||||
|
||||
[VMOVAPD]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
mem128_m,xmmreg \350\352\361\362\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem256_m,ymmreg \350\352\361\362\364\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem512_m,zmmreg \350\351\352\361\370\1\x29\101 AVX512,TFVM
|
||||
xmmreg_mz,mem128 \350\352\361\362\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
xmmreg_mz,xmmreg \350\352\361\362\370\1\x29\101 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmreg \350\352\361\362\370\1\x28\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem256 \350\352\361\362\364\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmreg \350\352\361\362\364\370\1\x29\101 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,ymmreg \350\352\361\362\364\370\1\x28\110 AVX,SANDYBRIDGE
|
||||
zmmreg_mz,mem512 \350\351\352\361\370\1\x28\110 AVX512,TFVM
|
||||
zmmreg_mz,zmmreg \350\351\352\361\370\1\x28\110 AVX512
|
||||
zmmreg_mz,zmmreg \350\351\352\361\370\1\x29\101 AVX512
|
||||
xmmrm_mz,xmmreg \350\352\361\362\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
ymmrm_mz,ymmreg \350\352\361\362\364\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
zmmrm_mz,zmmreg \350\351\352\361\370\1\x29\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmrm \350\352\361\362\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmrm \350\352\361\362\364\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
zmmreg_mz,zmmrm \350\351\352\361\370\1\x28\110 AVX512,TFVM
|
||||
|
||||
|
||||
[VMOVAPS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
mem128_m,xmmreg \350\362\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem256_m,ymmreg \350\362\364\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem512_m,zmmreg \350\351\370\1\x29\101 AVX512,TFVM
|
||||
xmmreg_mz,mem128 \350\362\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
xmmreg_mz,xmmreg \350\362\370\1\x29\101 AVX,SANDYBRIDGE
|
||||
xmmreg_mz,xmmreg \350\362\370\1\x28\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem256 \350\362\364\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmreg \350\362\364\370\1\x28\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,ymmreg \350\362\364\370\1\x29\101 AVX,SANDYBRIDGE
|
||||
zmmreg_mz,mem512 \350\351\370\1\x28\110 AVX512,TFVM
|
||||
zmmreg_mz,zmmreg \350\351\370\1\x29\101 AVX512
|
||||
zmmreg_mz,zmmreg \350\351\370\1\x28\110 AVX512
|
||||
xmmrm_mz,xmmreg \350\362\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
ymmrm_mz,ymmreg \350\362\364\370\1\x29\101 AVX,SANDYBRIDGE,TFVM
|
||||
zmmrm_mz,zmmreg \350\351\370\1\x29\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmrm \350\362\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmrm \350\362\364\370\1\x28\110 AVX,SANDYBRIDGE,TFVM
|
||||
zmmreg_mz,zmmrm \350\351\370\1\x28\110 AVX512,TFVM
|
||||
|
||||
|
||||
[VMOVD]
|
||||
@ -4678,28 +4663,21 @@ xmmreg_mz,xmmreg,xmmreg \333\350\362\370\1\x10\75\120
|
||||
|
||||
[VMOVUPD]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
mem128_m,xmmreg \350\352\361\362\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem256_m,ymmreg \350\352\361\362\364\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem512_m,zmmreg \350\351\352\361\370\1\x11\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmreg \350\352\361\362\370\1\x11\101 AVX,SANDYBRIDGE
|
||||
xmmrm_mz,xmmreg \350\352\361\362\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
ymmrm_mz,ymmreg \350\352\361\362\364\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
zmmrm_mz,zmmreg \350\351\352\361\370\1\x11\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmrm \350\352\361\362\370\1\x10\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmreg \350\352\361\362\364\370\1\x11\101 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,ymmrm \350\352\361\362\364\370\1\x10\110 AVX,SANDYBRIDGE,TFVM
|
||||
zmmreg_mz,zmmreg \350\351\352\361\370\1\x11\101 AVX512
|
||||
zmmreg_mz,zmmrm \350\351\352\361\370\1\x10\110 AVX512,TFVM
|
||||
|
||||
|
||||
|
||||
[VMOVUPS]
|
||||
(Ch_Wop2, Ch_Rop1)
|
||||
mem128_m,xmmreg \350\362\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem256_m,ymmreg \350\362\364\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
mem512_m,zmmreg \350\351\370\1\x11\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmreg \350\362\370\1\x11\101 AVX,SANDYBRIDGE
|
||||
xmmrm_mz,xmmreg \350\362\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
ymmrm_mz,ymmreg \350\362\364\370\1\x11\101 AVX,SANDYBRIDGE,TFVM
|
||||
zmmrm_mz,zmmreg \350\351\370\1\x11\101 AVX512,TFVM
|
||||
xmmreg_mz,xmmrm \350\362\370\1\x10\110 AVX,SANDYBRIDGE,TFVM
|
||||
ymmreg_mz,ymmreg \350\362\364\370\1\x11\101 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,ymmrm \350\362\364\370\1\x10\110 AVX,SANDYBRIDGE,TFVM
|
||||
zmmreg_mz,zmmreg \350\351\370\1\x11\101 AVX512
|
||||
zmmreg_mz,zmmrm \350\351\370\1\x10\110 AVX512,TFVM
|
||||
|
||||
|
||||
@ -5294,30 +5272,24 @@ zmmreg_mz,xmmreg \350\351\361\371\1\x22\110
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x20\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x20\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x20\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x20\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x20\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x20\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x20\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x20\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVSXDQ]
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x25\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x25\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x25\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x25\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x25\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x25\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x25\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x25\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVSXWD]
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x23\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x23\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x23\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x23\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x23\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x23\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x23\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x23\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVSXWQ]
|
||||
@ -5326,8 +5298,8 @@ xmmreg_mz,mem32 \350\361\362\371\1\x24\110
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x24\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem64 \350\361\362\364\371\1\x24\110 AVX2,TQVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x24\110 AVX2
|
||||
zmmreg_mz,mem128 \350\351\361\371\1\x24\110 AVX512,TQVM
|
||||
zmmreg_mz,xmmreg \350\351\361\371\1\x24\110 AVX512
|
||||
zmmreg_mz,xmmrm \350\351\361\371\1\x24\110 AVX512,TQVM
|
||||
|
||||
|
||||
|
||||
[VPMOVZXBD]
|
||||
@ -5336,8 +5308,7 @@ xmmreg_mz,mem32 \350\361\362\371\1\x31\110
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x31\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem64 \350\361\362\364\371\1\x31\110 AVX2,TQVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x31\110 AVX2
|
||||
zmmreg_mz,mem128 \350\351\361\371\1\x31\110 AVX512,TQVM
|
||||
zmmreg_mz,xmmreg \350\351\361\371\1\x31\110 AVX512
|
||||
zmmreg_mz,xmmrm \350\351\361\371\1\x31\110 AVX512,TQVM
|
||||
|
||||
|
||||
[VPMOVZXBQ]
|
||||
@ -5354,30 +5325,24 @@ zmmreg_mz,xmmreg \350\351\361\371\1\x32\110
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x30\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x30\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x30\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x30\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x30\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x30\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x30\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x30\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVZXDQ]
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x35\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x35\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x35\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x35\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x35\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x35\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x35\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x35\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVZXWD]
|
||||
(Ch_All)
|
||||
xmmreg_mz,mem64 \350\361\362\371\1\x33\110 AVX,SANDYBRIDGE,THVM
|
||||
xmmreg_mz,xmmreg \350\361\362\371\1\x33\110 AVX,SANDYBRIDGE
|
||||
ymmreg_mz,mem128 \350\361\362\364\371\1\x33\110 AVX2,THVM
|
||||
ymmreg_mz,xmmreg \350\361\362\364\371\1\x33\110 AVX2
|
||||
zmmreg_mz,mem256 \350\351\361\371\1\x33\110 AVX512,THVM
|
||||
zmmreg_mz,ymmreg \350\351\361\371\1\x33\110 AVX512
|
||||
ymmreg_mz,xmmrm \350\361\362\364\371\1\x33\110 AVX2,THVM
|
||||
zmmreg_mz,ymmrm \350\351\361\371\1\x33\110 AVX512,THVM
|
||||
|
||||
|
||||
[VPMOVZXWQ]
|
||||
@ -6176,15 +6141,14 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\x36\75\120
|
||||
|
||||
[VPERMPD]
|
||||
(Ch_All)
|
||||
ymmreg_mz,mem256,imm8 \350\352\361\362\363\364\372\1\x01\110\26 AVX2,TFV
|
||||
ymmreg_mz,ymmreg,imm8 \350\352\361\362\363\364\372\1\x01\110\26 AVX2,TFV
|
||||
ymmreg_mz,ymmrm,imm8 \350\352\361\362\363\364\372\1\x01\110\26 AVX2,TFV
|
||||
ymmreg_mz,bmem64,imm8 \350\352\361\364\372\1\x01\110\26 AVX512,TFV
|
||||
zmmreg_mz,zmmrm,imm8 \350\351\352\361\372\1\x01\110\26 AVX512,TFV
|
||||
zmmreg_mz,bmem64,imm8 \350\351\352\361\372\1\x01\110\26 AVX512,TFV
|
||||
ymmreg_mz,ymmreg,ymmrm \350\352\361\364\371\1\x16\75\120 AVX512,TFV
|
||||
ymmreg_mz,ymmreg,bmem64 \350\352\361\364\371\1\x16\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmreg,zmmrm \350\351\352\361\371\1\x16\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmreg,bmem64 \350\351\352\361\371\1\x16\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmrm,imm8 \350\351\352\361\372\1\x01\110\26 AVX512,TFV
|
||||
zmmreg_mz,bmem64,imm8 \350\351\352\361\372\1\x01\110\26 AVX512,TFV
|
||||
|
||||
|
||||
[VPERMPS]
|
||||
@ -6199,12 +6163,12 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\x16\75\120
|
||||
(Ch_All)
|
||||
ymmreg_mz,ymmrm,imm8 \350\352\361\362\363\364\372\1\x00\110\26 AVX2,TFV
|
||||
ymmreg_mz,bmem64,imm8 \350\352\361\364\372\1\x00\110\26 AVX512,TFV
|
||||
zmmreg_mz,zmmrm,imm8 \350\351\352\361\372\1\x00\110\26 AVX512,TFV
|
||||
zmmreg_mz,bmem64,imm8 \350\351\352\361\372\1\x00\110\26 AVX512,TFV
|
||||
ymmreg_mz,ymmreg,ymmrm \350\352\361\364\371\1\x36\75\120 AVX512,TFV
|
||||
ymmreg_mz,ymmreg,bmem64 \350\352\361\364\371\1\x36\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmreg,zmmrm \350\351\352\361\371\1\x36\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmreg,bmem64 \350\351\352\361\371\1\x36\75\120 AVX512,TFV
|
||||
zmmreg_mz,zmmrm,imm8 \350\351\352\361\372\1\x00\110\26 AVX512,TFV
|
||||
zmmreg_mz,bmem64,imm8 \350\351\352\361\372\1\x00\110\26 AVX512,TFV
|
||||
|
||||
|
||||
[VPMASKMOVD]
|
||||
@ -6449,13 +6413,13 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\x98\75\120
|
||||
|
||||
[VFMADD132SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\x99\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\x99\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\x99\75\120 FMA
|
||||
|
||||
[VFMADD132SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\x99\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\x99\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\x99\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFMADD213PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6479,13 +6443,13 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xA8\75\120
|
||||
|
||||
[VFMADD213SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xA9\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xA9\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xA9\75\120 FMA
|
||||
|
||||
[VFMADD213SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xA9\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xA9\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xA9\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFMADD231PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6510,12 +6474,12 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xB8\75\120
|
||||
[VFMADD231SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xB9\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xB9\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xB9\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFMADD231SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xB9\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xB9\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xB9\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFMADDSUB132PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6600,11 +6564,11 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\x9A\75\120
|
||||
[VFMSUB132SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\x9B\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\x9B\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\x9B\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFMSUB132SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\x9B\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\x9B\75\120 FMA,T1S,SCL32
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\x9B\75\120 FMA
|
||||
|
||||
[VFMSUB213PD]
|
||||
@ -6630,12 +6594,12 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xAA\75\120
|
||||
[VFMSUB213SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xAB\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xAB\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xAB\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFMSUB213SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xAB\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xAB\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xAB\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFMSUB231PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6660,11 +6624,11 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xBA\75\120
|
||||
[VFMSUB231SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xBB\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xBB\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xBB\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFMSUB231SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xBB\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xBB\75\120 FMA,T1S,SCL32
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xBB\75\120 FMA
|
||||
|
||||
[VFMSUBADD132PD]
|
||||
@ -6749,12 +6713,12 @@ zmmreg_mz,zmmreg,zmmreg_er \350\351\361\371\1\x9C\75\120
|
||||
|
||||
[VFNMADD132SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\x9D\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\x9D\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\x9D\75\120 FMA
|
||||
|
||||
[VFNMADD132SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\x9D\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\x9D\75\120 FMA,T1S,SCL32
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\x9D\75\120 FMA
|
||||
|
||||
[VFNMADD213PD]
|
||||
@ -6780,12 +6744,12 @@ zmmreg_mz,zmmreg,zmmreg_er \350\351\361\371\1\xAC\75\120
|
||||
[VFNMADD213SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xAD\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xAD\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xAD\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFNMADD213SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xAD\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xAD\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xAD\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFNMADD231PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6809,13 +6773,13 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xBC\75\120
|
||||
|
||||
[VFNMADD231SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg,xmmreg,mem64 \361\362\363\371\1\xBD\75\120 FMA
|
||||
xmmreg,xmmreg,xmmrm \361\362\363\371\1\xBD\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xBD\75\120 FMA
|
||||
|
||||
[VFNMADD231SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg,xmmreg,xmmreg \361\362\371\1\xBD\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xBD\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xBD\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFNMSUB132PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6839,13 +6803,13 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\x9E\75\120
|
||||
|
||||
[VFNMSUB132SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\x9F\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\x9F\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\x9F\75\120 FMA
|
||||
|
||||
[VFNMSUB132SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\x9F\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\x9F\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\x9F\75\120 FMA,T1S,SCL32
|
||||
|
||||
[VFNMSUB213PD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
@ -6869,12 +6833,12 @@ zmmreg_mz,zmmreg,zmmreg_er \350\351\361\371\1\xAE\75\120
|
||||
|
||||
[VFNMSUB213SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xAF\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xAF\75\120 FMA,T1S,SCL64
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xAF\75\120 FMA
|
||||
|
||||
[VFNMSUB213SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xAF\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xAF\75\120 FMA,T1S,SCL32
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xAF\75\120 FMA
|
||||
|
||||
[VFNMSUB231PD]
|
||||
@ -6900,12 +6864,12 @@ zmmreg_mz,zmmreg,bmem32 \350\351\361\371\1\xBE\75\120
|
||||
[VFNMSUB231SD]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\352\361\362\363\371\1\xBF\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem64 \350\352\361\362\363\371\1\xBF\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\352\361\362\363\371\1\xBF\75\120 FMA,T1S,SCL64
|
||||
|
||||
[VFNMSUB231SS]
|
||||
(Ch_Mop3, Ch_Rop2, Ch_Rop1)
|
||||
xmmreg_mz,xmmreg,xmmreg_er \350\361\362\371\1\xBF\75\120 FMA
|
||||
xmmreg_mz,xmmreg,mem32 \350\361\362\371\1\xBF\75\120 FMA,T1S
|
||||
xmmreg_mz,xmmreg,xmmrm \350\361\362\371\1\xBF\75\120 FMA,T1S,SCL32
|
||||
|
||||
|
||||
;*******************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user