summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-11 05:59:24 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-01-11 05:59:24 +0000
commit49a53e0f5fc770f11b50b73112b95e838bfb5560 (patch)
treeb193b742a95e1d441a0ef57419f11e9789c720b3
parent14474280081f18786a748ed8522330022d5baf63 (diff)
downloadfpc-49a53e0f5fc770f11b50b73112b95e838bfb5560.tar.gz
avxtestgenerator: working on backport from trunk
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48132 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--fixes_3_2/tests/utils/avx/asmtestgenerator.pas914
-rw-r--r--fixes_3_2/tests/utils/avx/avxopcodes.pas1167
-rw-r--r--fixes_3_2/tests/utils/avx/avxtestgenerator.pp2
3 files changed, 719 insertions, 1364 deletions
diff --git a/fixes_3_2/tests/utils/avx/asmtestgenerator.pas b/fixes_3_2/tests/utils/avx/asmtestgenerator.pas
index cc514b544f..acba5452a8 100644
--- a/fixes_3_2/tests/utils/avx/asmtestgenerator.pas
+++ b/fixes_3_2/tests/utils/avx/asmtestgenerator.pas
@@ -27,7 +27,7 @@ interface
uses BaseList, Classes;
type
- TOpType = (otUnknown, otXMMReg, otXMMRM, otXMMRM16, otXMMRM8, otYMMReg, otYMMRM, otZMMReg, otZMMRM, otEAX, otRAX, otMem32,
+ TOpType = (otUnknown, otMMXReg, otXMMReg, otXMMRM, otXMMRM16, otXMMRM8, otYMMReg, otYMMRM, otZMMReg, otZMMRM, otEAX, otRAX, otMem, otMem32,
otMem8, otMem16, otMem64, otMem128, otMem256, otMem512, otREG64, otREG32, otREG16, otREG8, otRM32, otRM64, otIMM8,
otXMEM32, otXMEM64, otYMEM32, otYMEM64, otZMEM32, otZMEM64,
otB32, otB64, otKREG);
@@ -1193,7 +1193,7 @@ var
il_Op3: integer;
il_Op4: integer;
- sSuffix: string;
+ //sSuffix: string;
sl_Operand: String;
sl_Inst : String;
sl_RegCombi: String;
@@ -1234,8 +1234,8 @@ begin
(UpperCase(aInst) = 'VCVTSI2SD') OR
(UpperCase(aInst) = 'VCVTSI2SS') OR
(UpperCase(aInst) = 'VCVTTPD2DQ') or
- (UpperCase(aInst) = 'VPMOVZXWQ') or
(UpperCase(aInst) = 'VCVTPD2UDQ') or
+ (UpperCase(aInst) = 'VPMOVZXWQ') or
(UpperCase(aInst) = 'VCVTPD2UDQ') or
(UpperCase(aInst) = 'VCVTTPD2UDQ') or
(UpperCase(aInst) = 'VCVTUQQ2PS') or
@@ -1279,78 +1279,42 @@ begin
sl_Operand := PrepareOperandTyp(sl_Operand);
- if (AnsiSameText(sl_Operand, 'XMMREG')) or
- (AnsiSameText(sl_Operand, 'XMMREG_M')) or
- (AnsiSameText(sl_Operand, 'XMMREG_MZ')) or
- (AnsiSameText(sl_Operand, 'XMMREG_ER')) or
- (AnsiSameText(sl_Operand, 'XMMREG_SAE')) then
+ if (AnsiSameText(sl_Operand, 'MMXREG')) then
begin
Item.OpNumber := il_Op;
- Item.OpTyp := otXMMReg;
+ Item.OpTyp := otMMXReg;
Item.OpActive := true;
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
+ Item.Values.Add('MM0');
- if Pos('_ER', sl_Operand) > 0 then sSuffix := ', {ru-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
+ end
+ else if (AnsiSameText(sl_Operand, 'XMMREG')) then
+ begin
+ Item.OpNumber := il_Op;
+ Item.OpTyp := otXMMReg;
+ Item.OpActive := true;
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM1' + sSuffix);
- Item.Values.Add('XMM2' + sSuffix);
- Item.Values.Add('XMM3' + sSuffix);
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM5' + sSuffix);
- Item.Values.Add('XMM6' + sSuffix);
- Item.Values.Add('XMM7' + sSuffix);
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM1');
+ Item.Values.Add('XMM2');
+ Item.Values.Add('XMM3');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM5');
+ Item.Values.Add('XMM6');
+ Item.Values.Add('XMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM9' + sSuffix);
- Item.Values.Add('XMM18' + sSuffix);
- Item.Values.Add('XMM27' + sSuffix);
- Item.Values.Add('XMM31' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM9');
- Item.Values.Add('XMM18');
- Item.Values.Add('XMM27');
- Item.Values.Add('XMM31');
- end;
- end
- else
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM8' + sSuffix);
- Item.Values.Add('XMM12' + sSuffix);
- Item.Values.Add('XMM15' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM4');
- Item.Values.Add('XMM8');
- Item.Values.Add('XMM12');
- Item.Values.Add('XMM15');
- end;
- end;
+
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM8');
+ Item.Values.Add('XMM12');
+ Item.Values.Add('XMM15');
end;
end
- else if (AnsiSameText(sl_Operand, 'XMMRM')) or
- (AnsiSameText(sl_Operand, 'XMMRM_M')) or
- (AnsiSameText(sl_Operand, 'XMMRM_MZ')) or
- (AnsiSameText(sl_Operand, 'XMMRM_ER')) or
- (AnsiSameText(sl_Operand, 'XMMRM_SAE')) then
+ else if (AnsiSameText(sl_Operand, 'XMMRM')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otXMMRM;
@@ -1358,50 +1322,23 @@ begin
if UsePrefix then sl_Prefix := 'oword ';
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM1' + sSuffix);
- Item.Values.Add('XMM2' + sSuffix);
- Item.Values.Add('XMM3' + sSuffix);
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM5' + sSuffix);
- Item.Values.Add('XMM6' + sSuffix);
- Item.Values.Add('XMM7' + sSuffix);
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM1');
+ Item.Values.Add('XMM2');
+ Item.Values.Add('XMM3');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM5');
+ Item.Values.Add('XMM6');
+ Item.Values.Add('XMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM9' + sSuffix);
- Item.Values.Add('XMM9');
- Item.Values.Add('XMM18' + sSuffix);
- Item.Values.Add('XMM18');
- Item.Values.Add('XMM27' + sSuffix);
- Item.Values.Add('XMM27');
- Item.Values.Add('XMM31' + sSuffix);
- Item.Values.Add('XMM31');
- end
- else
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM4');
- Item.Values.Add('XMM8' + sSuffix);
- Item.Values.Add('XMM8');
- Item.Values.Add('XMM12' + sSuffix);
- Item.Values.Add('XMM15');
- Item.Values.Add('XMM15' + sSuffix);
- end;
+
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM8');
+ Item.Values.Add('XMM15');
MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
@@ -1411,11 +1348,7 @@ begin
MemRegBaseIndexCombi(sl_Prefix, '', FReg32Base, FReg32Index, Item.Values);
end;
end
- else if (AnsiSameText(sl_Operand, 'XMMRM8')) or
- (AnsiSameText(sl_Operand, 'XMMRM8_M')) or
- (AnsiSameText(sl_Operand, 'XMMRM8_MZ')) or
- (AnsiSameText(sl_Operand, 'XMMRM8_ER')) or
- (AnsiSameText(sl_Operand, 'XMMRM8_SAE')) then
+ else if (AnsiSameText(sl_Operand, 'XMMRM8')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otXMMRM8;
@@ -1423,54 +1356,24 @@ begin
if UsePrefix then sl_Prefix := 'byte ';
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM1' + sSuffix);
- Item.Values.Add('XMM2' + sSuffix);
- Item.Values.Add('XMM3' + sSuffix);
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM5' + sSuffix);
- Item.Values.Add('XMM6' + sSuffix);
- Item.Values.Add('XMM7' + sSuffix);
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM1');
+ Item.Values.Add('XMM2');
+ Item.Values.Add('XMM3');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM5');
+ Item.Values.Add('XMM6');
+ Item.Values.Add('XMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM9' + sSuffix);
- Item.Values.Add('XMM9');
- Item.Values.Add('XMM18' + sSuffix);
- Item.Values.Add('XMM18');
- Item.Values.Add('XMM27' + sSuffix);
- Item.Values.Add('XMM27');
- Item.Values.Add('XMM31' + sSuffix);
- Item.Values.Add('XMM31');
- end
- else
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM4');
- Item.Values.Add('XMM8' + sSuffix);
- Item.Values.Add('XMM8');
- Item.Values.Add('XMM12' + sSuffix);
- Item.Values.Add('XMM12');
- Item.Values.Add('XMM15' + sSuffix);
- Item.Values.Add('XMM15');
- end;
- //Item.Values.Add('[RIP]');
- //Item.Values.Add('[RIP + 16]');
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM8');
+ Item.Values.Add('XMM12');
+ Item.Values.Add('XMM15');
MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
@@ -1480,12 +1383,7 @@ begin
MemRegBaseIndexCombi(sl_Prefix, '', FReg32Base, FReg32Index, Item.Values);
end;
end
- else if (AnsiSameText(sl_Operand, 'XMMRM16')) or
- (AnsiSameText(sl_Operand, 'XMMRM16_M')) or
- (AnsiSameText(sl_Operand, 'XMMRM16_MZ')) or
- (AnsiSameText(sl_Operand, 'XMMRM16_ER')) or
- (AnsiSameText(sl_Operand, 'XMMRM16_SAE'))
- then
+ else if (AnsiSameText(sl_Operand, 'XMMRM16')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otXMMRM16;
@@ -1493,54 +1391,24 @@ begin
if UsePrefix then sl_Prefix := 'word ';
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM1' + sSuffix);
- Item.Values.Add('XMM2' + sSuffix);
- Item.Values.Add('XMM3' + sSuffix);
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM5' + sSuffix);
- Item.Values.Add('XMM6' + sSuffix);
- Item.Values.Add('XMM7' + sSuffix);
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM1');
+ Item.Values.Add('XMM2');
+ Item.Values.Add('XMM3');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM5');
+ Item.Values.Add('XMM6');
+ Item.Values.Add('XMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM9' + sSuffix);
- Item.Values.Add('XMM9');
- Item.Values.Add('XMM18' + sSuffix);
- Item.Values.Add('XMM18');
- Item.Values.Add('XMM27' + sSuffix);
- Item.Values.Add('XMM27');
- Item.Values.Add('XMM31' + sSuffix);
- Item.Values.Add('XMM31');
- end
- else
- begin
- Item.Values.Add('XMM0' + sSuffix);
- Item.Values.Add('XMM0');
- Item.Values.Add('XMM4' + sSuffix);
- Item.Values.Add('XMM4');
- Item.Values.Add('XMM8' + sSuffix);
- Item.Values.Add('XMM8');
- Item.Values.Add('XMM12' + sSuffix);
- Item.Values.Add('XMM12');
- Item.Values.Add('XMM15' + sSuffix);
- Item.Values.Add('XMM15');
- end;
- //Item.Values.Add('[RIP]');
- //Item.Values.Add('[RIP + 16]');
+ Item.Values.Add('XMM0');
+ Item.Values.Add('XMM4');
+ Item.Values.Add('XMM8');
+ Item.Values.Add('XMM12');
+ Item.Values.Add('XMM15');
MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
@@ -1550,80 +1418,33 @@ begin
MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end;
end
- else if (AnsiSameText(sl_Operand, 'YMMREG')) or
- (AnsiSameText(sl_Operand, 'YMMREG_M')) or
- (AnsiSameText(sl_Operand, 'YMMREG_MZ')) or
- (AnsiSameText(sl_Operand, 'YMMREG_ER')) or
- (AnsiSameText(sl_Operand, 'YMMREG_SAE'))
- then
+ else if (AnsiSameText(sl_Operand, 'YMMREG')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otYMMReg;
Item.OpActive := true;
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM1' + sSuffix);
- Item.Values.Add('YMM2' + sSuffix);
- Item.Values.Add('YMM3' + sSuffix);
- Item.Values.Add('YMM4' + sSuffix);
- Item.Values.Add('YMM5' + sSuffix);
- Item.Values.Add('YMM6' + sSuffix);
- Item.Values.Add('YMM7' + sSuffix);
+ Item.Values.Add('YMM0');
+ Item.Values.Add('YMM1');
+ Item.Values.Add('YMM2');
+ Item.Values.Add('YMM3');
+ Item.Values.Add('YMM4');
+ Item.Values.Add('YMM5');
+ Item.Values.Add('YMM6');
+ Item.Values.Add('YMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM9' + sSuffix);
- Item.Values.Add('YMM18' + sSuffix);
- Item.Values.Add('YMM27' + sSuffix);
- Item.Values.Add('YMM31' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('YMM0');
- Item.Values.Add('YMM9');
- Item.Values.Add('YMM18');
- Item.Values.Add('YMM27');
- Item.Values.Add('YMM31');
- end;
- end
- else
- begin
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM4' + sSuffix);
- Item.Values.Add('YMM8' + sSuffix);
- Item.Values.Add('YMM12' + sSuffix);
- Item.Values.Add('YMM15' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('YMM0');
- Item.Values.Add('YMM4');
- Item.Values.Add('YMM8');
- Item.Values.Add('YMM12');
- Item.Values.Add('YMM15');
- end;
- end;
+
+ Item.Values.Add('YMM0');
+ Item.Values.Add('YMM4');
+ Item.Values.Add('YMM8');
+ Item.Values.Add('YMM12');
+ Item.Values.Add('YMM15');
end;
end
- else if (AnsiSameText(sl_Operand, 'YMMRM')) or
- (AnsiSameText(sl_Operand, 'YMMRM_M')) or
- (AnsiSameText(sl_Operand, 'YMMRM_MZ')) or
- (AnsiSameText(sl_Operand, 'YMMRM_ER')) or
- (AnsiSameText(sl_Operand, 'YMMRM_SAE'))
- then
+ else if (AnsiSameText(sl_Operand, 'YMMRM')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otYMMRM;
@@ -1631,61 +1452,23 @@ begin
if UsePrefix then sl_Prefix := 'yword ';
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM1' + sSuffix);
- Item.Values.Add('YMM2' + sSuffix);
- Item.Values.Add('YMM3' + sSuffix);
- Item.Values.Add('YMM4' + sSuffix);
- Item.Values.Add('YMM5' + sSuffix);
- Item.Values.Add('YMM6' + sSuffix);
- Item.Values.Add('YMM7' + sSuffix);
+ Item.Values.Add('YMM0');
+ Item.Values.Add('YMM1');
+ Item.Values.Add('YMM2');
+ Item.Values.Add('YMM3');
+ Item.Values.Add('YMM4');
+ Item.Values.Add('YMM5');
+ Item.Values.Add('YMM6');
+ Item.Values.Add('YMM7');
if x64 then
begin
Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM9' + sSuffix);
- Item.Values.Add('YMM18' + sSuffix);
- Item.Values.Add('YMM27' + sSuffix);
- Item.Values.Add('YMM31' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('YMM0');
- Item.Values.Add('YMM9');
- Item.Values.Add('YMM18');
- Item.Values.Add('YMM27');
- Item.Values.Add('YMM31');
- end;
- end
- else
- begin
- Item.Values.Add('YMM0' + sSuffix);
- Item.Values.Add('YMM4' + sSuffix);
- Item.Values.Add('YMM8' + sSuffix);
- Item.Values.Add('YMM12' + sSuffix);
- Item.Values.Add('YMM15' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('YMM0');
- Item.Values.Add('YMM4');
- Item.Values.Add('YMM8');
- Item.Values.Add('YMM12');
- Item.Values.Add('YMM15');
- end;
- end;
+ Item.Values.Add('YMM0');
+ Item.Values.Add('YMM4');
+ Item.Values.Add('YMM8');
+ Item.Values.Add('YMM12');
+ Item.Values.Add('YMM15');
MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
@@ -1695,130 +1478,20 @@ begin
MemRegBaseIndexCombi(sl_Prefix, '', FReg32Base, FReg32Index, Item.Values);
end;
end
- else if (AnsiSameText(sl_Operand, 'ZMMREG')) or
- (AnsiSameText(sl_Operand, 'ZMMREG_M')) or
- (AnsiSameText(sl_Operand, 'ZMMREG_MZ')) or
- (AnsiSameText(sl_Operand, 'ZMMREG_ER')) or
- (AnsiSameText(sl_Operand, 'ZMMREG_SAE'))
- then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otZMMReg;
- Item.OpActive := true;
-
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM1' + sSuffix);
- Item.Values.Add('ZMM2' + sSuffix);
- Item.Values.Add('ZMM3' + sSuffix);
- Item.Values.Add('ZMM4' + sSuffix);
- Item.Values.Add('ZMM5' + sSuffix);
- Item.Values.Add('ZMM6' + sSuffix);
- Item.Values.Add('ZMM7' + sSuffix);
-
- if x64 then
- begin
- Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM9' + sSuffix);
- Item.Values.Add('ZMM18' + sSuffix);
- Item.Values.Add('ZMM27' + sSuffix);
- Item.Values.Add('ZMM31' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('ZMM0');
- Item.Values.Add('ZMM9');
- Item.Values.Add('ZMM18');
- Item.Values.Add('ZMM27');
- Item.Values.Add('ZMM31');
- end;
- end
- else
- begin
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM4' + sSuffix);
- Item.Values.Add('ZMM8' + sSuffix);
- Item.Values.Add('ZMM12' + sSuffix);
- Item.Values.Add('ZMM15' + sSuffix);
- end;
- end;
- end
- else if (AnsiSameText(sl_Operand, 'ZMMRM')) or
- (AnsiSameText(sl_Operand, 'ZMMRM_M')) or
- (AnsiSameText(sl_Operand, 'ZMMRM_MZ')) or
- (AnsiSameText(sl_Operand, 'XMMRM_ER')) or
- (AnsiSameText(sl_Operand, 'XMMRM_SAE'))
- then
+ else if AnsiSameText(sl_Operand, 'MEM') then
begin
Item.OpNumber := il_Op;
- Item.OpTyp := otZMMRM;
+ Item.OpTyp := otMEM;
Item.OpActive := true;
- if UsePrefix then sl_Prefix := 'zword ';
-
- sSuffix := '';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}'
- else if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if Pos('_ER', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ', {rd-sae}'
- else if FSAE and (Pos('_SAE', AnsiUppercase(sl_Operand)) > 0) then sSuffix := ', {sae}';
-
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM1' + sSuffix);
- Item.Values.Add('ZMM2' + sSuffix);
- Item.Values.Add('ZMM3' + sSuffix);
- Item.Values.Add('ZMM4' + sSuffix);
- Item.Values.Add('ZMM5' + sSuffix);
- Item.Values.Add('ZMM6' + sSuffix);
- Item.Values.Add('ZMM7' + sSuffix);
+ if UsePrefix then sl_Prefix := ' ';
if x64 then
begin
- Item.Values.Clear;
- if FAVX512 then
- begin
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM9' + sSuffix);
- Item.Values.Add('ZMM18' + sSuffix);
- Item.Values.Add('ZMM27' + sSuffix);
- Item.Values.Add('ZMM31' + sSuffix);
-
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- begin
- Item.Values.Add('ZMM0');
- Item.Values.Add('ZMM9');
- Item.Values.Add('ZMM18');
- Item.Values.Add('ZMM27');
- Item.Values.Add('ZMM31');
- end;
- end
- else
- begin
- Item.Values.Add('ZMM0' + sSuffix);
- Item.Values.Add('ZMM4' + sSuffix);
- Item.Values.Add('ZMM8' + sSuffix);
- Item.Values.Add('ZMM12' + sSuffix);
- Item.Values.Add('ZMM15' + sSuffix);
- end;
-
- MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else
- begin
- MemRegBaseIndexCombi(sl_Prefix, '', FReg32Base, FReg32Index, Item.Values);
- end;
+ else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
else if AnsiSameText(sl_Operand, 'MEM8') then
begin
@@ -1826,13 +1499,8 @@ begin
Item.OpTyp := otMEM8;
Item.OpActive := true;
-
-
if UsePrefix then sl_Prefix := 'byte ';
-
- sSuffix := '';
-
if x64 then
begin
MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
@@ -1840,8 +1508,7 @@ begin
end
else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
- else if AnsiSameText(sl_Operand, 'MEM16') or
- AnsiSameText(sl_Operand, 'MEM16_M') then
+ else if AnsiSameText(sl_Operand, 'MEM16') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otMEM16;
@@ -1849,19 +1516,14 @@ begin
if UsePrefix then sl_Prefix := 'word ';
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
if x64 then
begin
- MemRegBaseIndexCombi(sl_Prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else MemRegBaseIndexCombi(sl_Prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
+ else MemRegBaseIndexCombi(sl_Prefix, '', FReg32Base, FReg32Index, Item.Values);
end
- else if AnsiSameText(sl_Operand, 'MEM32') or
- AnsiSameText(sl_Operand, 'MEM32_M') or
- AnsiSameText(sl_Operand, 'MEM32_MZ') then
+ else if AnsiSameText(sl_Operand, 'MEM32') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otMEM32;
@@ -1869,22 +1531,14 @@ begin
if UsePrefix then sl_Prefix := 'dword ';
- sSuffix := '';
-
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}';
-
-
if x64 then
begin
- MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
+ else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
- else if (AnsiSameText(sl_Operand, 'MEM64')) or
- (AnsiSameText(sl_Operand, 'MEM64_M')) or
- (AnsiSameText(sl_Operand, 'MEM64_MZ')) then
+ else if (AnsiSameText(sl_Operand, 'MEM64')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otMEM64;
@@ -1892,20 +1546,14 @@ begin
if UsePrefix then sl_Prefix := 'qword ';
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}';
-
if x64 then
begin
- MemRegBaseIndexCombi(sl_Prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_Prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
+ else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
- else if (AnsiSameText(sl_Operand, 'MEM128')) or
- (AnsiSameText(sl_Operand, 'MEM128_M')) or
- (AnsiSameText(sl_Operand, 'MEM128_MZ')) then
+ else if (AnsiSameText(sl_Operand, 'MEM128')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otMEM128;
@@ -1913,20 +1561,14 @@ begin
if UsePrefix then sl_Prefix := 'oword ';
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}';
-
if x64 then
begin
- MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
+ else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
- else if (AnsiSameText(sl_Operand, 'MEM256')) or
- (AnsiSameText(sl_Operand, 'MEM256_M')) or
- (AnsiSameText(sl_Operand, 'MEM256_MZ')) then
+ else if (AnsiSameText(sl_Operand, 'MEM256')) then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otMEM256;
@@ -1934,39 +1576,12 @@ begin
if UsePrefix then sl_Prefix := 'yword ';
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}';
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
- end
- else if (AnsiSameText(sl_Operand, 'MEM512')) or
- (AnsiSameText(sl_Operand, 'MEM512_M')) or
- (AnsiSameText(sl_Operand, 'MEM512_MZ')) then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otMEM512;
- Item.OpActive := true;
-
- if UsePrefix then sl_Prefix := 'zword ';
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
- if Pos('_MZ', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1} {z}';
-
-
if x64 then
begin
- MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64Index, Item.Values);
+ MemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64Index, Item.Values);
//MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
end
- else MemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32Index, Item.Values);
+ else MemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32Index, Item.Values);
end
else if AnsiSameText(sl_Operand, 'REG8') then
begin
@@ -2059,8 +1674,7 @@ begin
Item.Values.Add('0');
end
- else if AnsiSameText(sl_Operand, 'XMEM32') or
- AnsiSameText(sl_Operand, 'XMEM32_M') then
+ else if AnsiSameText(sl_Operand, 'XMEM32') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otXMEM32;
@@ -2068,26 +1682,16 @@ begin
if UsePrefix then sl_Prefix := 'oword ';
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
if x64 then
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64XMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64XMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64XMMIndex, Item.Values);
end
else
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32XMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false) then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32XMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32XMMIndex, Item.Values);
end;
end
- else if AnsiSameText(sl_Operand, 'XMEM64') or
- AnsiSameText(sl_Operand, 'XMEM64_M') then
+ else if AnsiSameText(sl_Operand, 'XMEM64') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otXMEM64;
@@ -2104,29 +1708,17 @@ begin
// VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32XMMIndex, Item.Values);
//end;
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
if x64 then
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64XMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64XMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64XMMIndex, Item.Values);
end
else
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32XMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32XMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32XMMIndex, Item.Values);
end;
end
- else if AnsiSameText(sl_Operand, 'YMEM32') or
- AnsiSameText(sl_Operand, 'YMEM32_M') then
+ else if AnsiSameText(sl_Operand, 'YMEM32') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otYMEM32;
@@ -2134,38 +1726,17 @@ begin
if UsePrefix then sl_Prefix := 'yword ';
- //if x64 then
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64YMMIndex, Item.Values);
- //end
- //else
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32YMMIndex, Item.Values);
- //end;
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
if x64 then
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64YMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64YMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64YMMIndex, Item.Values);
end
else
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32YMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32YMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32YMMIndex, Item.Values);
end;
end
- else if AnsiSameText(sl_Operand, 'YMEM64') or
- AnsiSameText(sl_Operand, 'YMEM64_M') then
+ else if AnsiSameText(sl_Operand, 'YMEM64') then
begin
Item.OpNumber := il_Op;
Item.OpTyp := otYMEM64;
@@ -2173,241 +1744,16 @@ begin
if UsePrefix then sl_Prefix := 'yword ';
- //if x64 then
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64YMMIndex, Item.Values);
- //end
- //else
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32YMMIndex, Item.Values);
- //end;
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
if x64 then
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64YMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64YMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64YMMIndex, Item.Values);
end
else
begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32YMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32YMMIndex, Item.Values);
+ VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32YMMIndex, Item.Values);
end;
end
- else if AnsiSameText(sl_Operand, 'ZMEM32') or
- AnsiSameText(sl_Operand, 'ZMEM32_M') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otZMEM32;
- Item.OpActive := true;
-
- if UsePrefix then sl_Prefix := 'zword ';
-
- //if x64 then
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64ZMMIndex, Item.Values);
- //end
- //else
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32ZMMIndex, Item.Values);
- //end;
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if x64 then
- begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64ZMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64ZMMIndex, Item.Values);
- end
- else
- begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32ZMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32ZMMIndex, Item.Values);
- end;
-
- end
- else if AnsiSameText(sl_Operand, 'ZMEM64') or
- AnsiSameText(sl_Operand, 'ZMEM64_M') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otZMEM64;
- Item.OpActive := true;
-
- if UsePrefix then sl_Prefix := 'zword ';
-
- //if x64 then
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64ZMMIndex, Item.Values);
- //end
- //else
- //begin
- // VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32ZMMIndex, Item.Values);
- //end;
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if x64 then
- begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg64Base, FReg64ZMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg64Base, FReg64ZMMIndex, Item.Values);
- end
- else
- begin
- VectorMemRegBaseIndexCombi(sl_prefix, sSuffix, FReg32Base, FReg32ZMMIndex, Item.Values);
- if (sSuffix <> '') and
- (MaskRegNeeded = false)
- then
- VectorMemRegBaseIndexCombi(sl_prefix, '', FReg32Base, FReg32ZMMIndex, Item.Values);
- end;
-
- end
- else if AnsiSameText(sl_Operand, '2B32') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB32;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to2}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to2}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '4B32') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB32;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to4}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to4}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '8B32') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB32;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to8}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to8}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '16B32') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB32;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to16}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to16}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '2B64') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB64;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to2}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to2}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '4B64') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB64;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to4}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to4}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '8B64') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB64;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to8}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to8}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, '16B64') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otB64;
- Item.OpActive := true;
-
-
- if x64 then
- begin
- MemRegBaseIndexCombi(sl_Prefix, ' {1to16}', FReg64Base, FReg64Index, Item.Values);
- //MemRegBaseIndexCombi(FReg6432Base, FReg6432Index, Item.Values);
- end
- else MemRegBaseIndexCombi(sl_prefix, ' {1to16}', FReg32Base, FReg32Index, Item.Values);
- end
- else if AnsiSameText(sl_Operand, 'KREG') or
- AnsiSameText(sl_Operand, 'KREG_M') then
- begin
- Item.OpNumber := il_Op;
- Item.OpTyp := otKREG;
- Item.OpActive := true;
-
- sSuffix := '';
- if Pos('_M', AnsiUppercase(sl_Operand)) > 0 then sSuffix := ' {k1}';
-
- if UsePrefix then sl_Prefix := '';
-
- for i := 0 to FRegKREG.Count - 1 do
- Item.Values.Add(FRegKREG[i] + sSuffix);
- end
else if trim(sl_Operand) = '' then
begin
Item.OpNumber := il_Op;
@@ -4015,7 +3361,7 @@ begin
OT_YMMRM: sOperands := sOperands + 'YMMRM,';
-
+ OT_MEMORY: sOperands := sOperands + 'MEM,';
OT_MEM32: sOperands := sOperands + 'MEM32,';
OT_MEM64: sOperands := sOperands + 'MEM64,';
OT_MEM128: sOperands := sOperands + 'MEM128,';
diff --git a/fixes_3_2/tests/utils/avx/avxopcodes.pas b/fixes_3_2/tests/utils/avx/avxopcodes.pas
index 689f0d8c17..49e7056f83 100644
--- a/fixes_3_2/tests/utils/avx/avxopcodes.pas
+++ b/fixes_3_2/tests/utils/avx/avxopcodes.pas
@@ -816,338 +816,352 @@ begin
//FOpCodeList.Add('VPGATHERQQ,1,1,XMMREG,XMEM64,XMMREG,');
//FOpCodeList.Add('VPGATHERQQ,1,1,YMMREG,YMEM64,YMMREG,');
- FOpCodeList.Add('cmpsd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('movd,1,1,XMMREG,RM32,,');
- FOpCodeList.Add('movd,1,1,RM32,XMMREG,,');
- FOpCodeList.Add('movq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movq,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('movq,0,1,XMMREG,REG64,,');
- FOpCodeList.Add('movq,0,1,REG64,XMMREG,,');
- FOpCodeList.Add('movsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movsd,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('packssdw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('packsswb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('packuswb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddsb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddusb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddusw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('paddw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pand,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pandn,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpeqb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpeqd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpeqw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpgtb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpgtd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pcmpgtw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmaddwd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmulhw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmullw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('por,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pslld,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pslld,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('pslldq,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psllq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psllq,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psllw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psllw,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psrad,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psrad,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psraw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psraw,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psrld,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psrld,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psrlq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psrlq,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psrlw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psrlw,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psubb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubsb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubusb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubusw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psubw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpckhbw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpckhdq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpckhwd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpcklbw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpckldq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpcklwd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pxor,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('addpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('addps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('addsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('addss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('addsubpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('addsubps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aesdec,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aesdeclast,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aesenc,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aesenclast,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aesimc,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('aeskeygenassist,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('andn,0,1,REG64,REG64,RM64,');
+ FOpCodeList.Add('andn,1,1,REG32,REG32,RM32,');
+ FOpCodeList.Add('andnpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('andnps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('andpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('andps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('bextr,0,1,REG64,RM64,REG64,');
+ FOpCodeList.Add('bextr,1,1,REG32,RM32,REG32,');
+ FOpCodeList.Add('blendpd,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('blendps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('blendvpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('blendvps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpeqpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpeqps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpeqsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpeqss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmplepd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpleps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmplesd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpless,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpltpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpltps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpltsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpltss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpneqpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpneqps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpneqsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpneqss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpnlepd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpnleps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpnlesd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpnless,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpnltpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpnltps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpnltsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpnltss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpordpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpordps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpordsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpordss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpunordps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpunordss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmppd,1,1,XMMREG,XMMRM,IMM,');
FOpCodeList.Add('cmpps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('cmpsd,1,1,XMMREG,XMMRM,IMM,');
FOpCodeList.Add('cmpss,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('comiss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvtpi2ps,1,1,XMMREG,,');
- FOpCodeList.Add('cvtps2pi,1,1,XMMREG,,');
- FOpCodeList.Add('cvtsi2ss,1,1,XMMREG,RM32,,');
- FOpCodeList.Add('cvtsi2ss,0,1,XMMREG,RM64,,');
- FOpCodeList.Add('cvtss2si,1,1,XMMREG,,');
- FOpCodeList.Add('cvttps2pi,1,1,XMMREG,,');
- FOpCodeList.Add('cvttss2si,1,1,XMMREG,,');
- FOpCodeList.Add('divps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('divss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('maxps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('maxss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('minps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('minss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movaps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movaps,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('movhps,1,1,XMMREG,,');
- FOpCodeList.Add('movhps,1,1,XMMREG,,');
- FOpCodeList.Add('movlhps,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('movlps,1,1,XMMREG,,');
- FOpCodeList.Add('movlps,1,1,XMMREG,,');
- FOpCodeList.Add('movhlps,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('movmskps,1,1,REG32,XMMREG,,');
- FOpCodeList.Add('movntps,1,1,XMMREG,,');
- FOpCodeList.Add('movss,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('movss,1,1,XMMREG,MEM32,,');
- FOpCodeList.Add('movss,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('movss,1,1,MEM32,XMMREG,,');
- FOpCodeList.Add('movups,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movups,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('mulps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('mulss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('orps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('rcpps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('rcpss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('rsqrtps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('rsqrtss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('shufps,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('sqrtps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('sqrtss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('subps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('subss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('ucomiss,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('unpckhps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('unpcklps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('xorps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pavgb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pavgw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pextrw,1,1,REG32,XMMREG,IMM,');
- FOpCodeList.Add('pextrw,1,1,MEM32,XMMREG,IMM,');
- FOpCodeList.Add('pinsrw,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pinsrw,1,1,XMMREG,REG32,IMM,');
- FOpCodeList.Add('pinsrw,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pinsrw,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pmaxsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmaxub,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pminsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pminub,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmovmskb,1,1,REG32,XMMREG,,');
- FOpCodeList.Add('pmulhuw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psadbw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('maskmovdqu,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('movntdq,1,1,XMMREG,,');
- FOpCodeList.Add('movntpd,1,1,XMMREG,,');
- FOpCodeList.Add('movdqa,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('movdqa,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movdqu,1,1,XMMRM,XMMREG,,');
- FOpCodeList.Add('movdqu,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movdq2q,1,1,XMMREG,,');
- FOpCodeList.Add('movq2dq,1,1,XMMREG,,');
- FOpCodeList.Add('paddq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmuludq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pshufd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pshufhw,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pshuflw,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('psrldq,1,1,XMMREG,IMM,,');
- FOpCodeList.Add('psubq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpckhqdq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('punpcklqdq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('addpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('addsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('andnpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('andpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpeqpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpeqsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmplepd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmplesd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpltpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpltsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpneqpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpneqsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpnlepd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpnlesd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpnltpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpnltsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpordpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmpordsd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpunordpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cmpunordps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cmpunordsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cmppd,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('cmpunordss,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('comisd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvtdq2pd,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('comiss,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cvtdq2pd,1,1,XMMREG,MEM64,,');
+ FOpCodeList.Add('cvtdq2pd,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('cvtdq2ps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('cvtpd2dq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvtpd2pi,1,1,XMMRM,,');
+ FOpCodeList.Add('cvtpd2pi,1,1,MMXREG,XMMRM,,');
FOpCodeList.Add('cvtpd2ps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvtpi2pd,1,1,XMMREG,,');
+ FOpCodeList.Add('cvtpi2pd,1,1,XMMREG,MMXREG,,');
+ FOpCodeList.Add('cvtpi2ps,1,1,XMMREG,MMXREG,,');
FOpCodeList.Add('cvtps2dq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvtps2pd,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('cvtps2pd,1,1,XMMREG,MEM64,,');
- FOpCodeList.Add('cvtsd2si,1,1,REG32,XMMREG,,');
+ FOpCodeList.Add('cvtps2pd,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('cvtps2pi,1,1,MMXREG,XMMREG,,');
FOpCodeList.Add('cvtsd2si,0,1,REG64,XMMREG,,');
- FOpCodeList.Add('cvtsd2ss,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('cvtsd2si,1,1,REG32,XMMREG,,');
FOpCodeList.Add('cvtsd2ss,1,1,XMMREG,MEM64,,');
- FOpCodeList.Add('cvtsi2sd,1,1,XMMREG,RM32,,');
+ FOpCodeList.Add('cvtsd2ss,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('cvtsi2sd,0,1,XMMREG,RM64,,');
- FOpCodeList.Add('cvtss2sd,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('cvtsi2sd,1,1,XMMREG,RM32,,');
+ FOpCodeList.Add('cvtsi2ss,0,1,XMMREG,RM64,,');
+ FOpCodeList.Add('cvtsi2ss,1,1,XMMREG,RM32,,');
FOpCodeList.Add('cvtss2sd,1,1,XMMREG,MEM32,,');
- FOpCodeList.Add('cvttpd2pi,1,1,XMMRM,,');
+ FOpCodeList.Add('cvtss2sd,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('cvtss2si,1,1,REG32,XMMREG,,');
+ FOpCodeList.Add('cvtss2si,0,1,REG64,XMMREG,,');
FOpCodeList.Add('cvttpd2dq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('cvttpd2pi,1,1,MMXREG,XMMRM,,');
FOpCodeList.Add('cvttps2dq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('cvttsd2si,1,1,XMMREG,,');
+ FOpCodeList.Add('cvttps2pi,1,1,MMXREG,XMMREG,,');
+ FOpCodeList.Add('cvttsd2si,1,1,REG32,XMMREG,,');
+ FOpCodeList.Add('cvttss2si,0,1,REG64,XMMREG,,');
FOpCodeList.Add('divpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('divps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('divsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('divss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('dppd,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('dpps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('extractps,1,1,MEM,XMMREG,IMM,');
+ FOpCodeList.Add('extractps,1,1,REG32,XMMREG,IMM,');
+ FOpCodeList.Add('extractps,1,1,REG64,XMMREG,IMM,');
+ FOpCodeList.Add('extrq,1,1,XMMREG,IMM,IMM,');
+ FOpCodeList.Add('extrq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('haddpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('haddps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('hsubpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('hsubps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('insertps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('insertq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('insertq,1,1,XMMREG,XMMREG,IMM,IMM');
+ FOpCodeList.Add('lddqu,1,1,XMMREG,MEM,,');
+ FOpCodeList.Add('maskmovdqu,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('maxpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('maxps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('maxsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('maxss,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('minpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('minps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('minsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movapd,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('minss,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('movapd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movhpd,1,1,XMMREG,,');
- FOpCodeList.Add('movhpd,1,1,XMMREG,,');
- FOpCodeList.Add('movlpd,1,1,XMMREG,,');
- FOpCodeList.Add('movlpd,1,1,XMMREG,,');
+ FOpCodeList.Add('movapd,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movaps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movaps,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movd,1,1,RM32,XMMREG,,');
+ FOpCodeList.Add('movd,1,1,XMMREG,RM32,,');
+ FOpCodeList.Add('movddup,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movdq2q,1,1,XMMREG,,');
+ FOpCodeList.Add('movdqa,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movdqa,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movdqu,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movdqu,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movhlps,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('movhpd,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movhpd,1,1,XMMREG,MEM,,');
+ FOpCodeList.Add('movhps,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movhps,1,1,XMMREG,MEM,,');
+ FOpCodeList.Add('movlhps,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('movlpd,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movlpd,1,1,XMMREG,MEM,,');
+ FOpCodeList.Add('movlps,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movlps,1,1,XMMREG,MEM,,');
FOpCodeList.Add('movmskpd,1,1,REG32,XMMREG,,');
- FOpCodeList.Add('movupd,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movmskps,1,1,REG32,XMMREG,,');
+ FOpCodeList.Add('movntdq,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movntdqa,1,1,XMMREG,MEM,,');
+ FOpCodeList.Add('movntpd,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movntps,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movntsd,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movntss,1,1,MEM,XMMREG,,');
+ FOpCodeList.Add('movq,0,1,REG64,XMMREG,,');
+ FOpCodeList.Add('movq,0,1,XMMREG,REG64,,');
+ FOpCodeList.Add('movq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movq,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movq2dq,1,1,XMMREG,MMXREG,,');
+ FOpCodeList.Add('movsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movsd,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movshdup,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movsldup,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movss,1,1,MEM32,XMMREG,,');
+ FOpCodeList.Add('movss,1,1,XMMREG,MEM32,,');
+ FOpCodeList.Add('movss,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('movss,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('movupd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movupd,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('movups,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('movups,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('mpsadbw,1,1,XMMREG,XMMRM,IMM,');
FOpCodeList.Add('mulpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('mulps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('mulsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('mulss,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('orpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('shufpd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('sqrtpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('sqrtsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('subpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('subsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('ucomisd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('unpckhpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('unpcklpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('xorpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('addsubpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('addsubps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('haddpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('haddps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('hsubpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('hsubps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('lddqu,1,1,XMMREG,,');
- FOpCodeList.Add('movddup,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movshdup,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movsldup,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('movntss,1,1,XMMREG,,');
- FOpCodeList.Add('movntsd,1,1,XMMREG,,');
- FOpCodeList.Add('insertq,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('insertq,1,1,XMMREG,XMMREG,IMM,IMM');
- FOpCodeList.Add('extrq,1,1,XMMREG,IMM,IMM,');
- FOpCodeList.Add('extrq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('orps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pabsb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pabsw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pabsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('palignr,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('phaddw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('phaddd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('phaddsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('phsubw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('phsubd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('phsubsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmaddubsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmulhrsw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pshufb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psignb,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psignw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('psignd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('blendps,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('blendpd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('blendvps,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('blendvpd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('dpps,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('dppd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('extractps,1,1,XMMREG,IMM,');
- FOpCodeList.Add('extractps,1,1,XMMREG,IMM,');
- FOpCodeList.Add('insertps,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('movntdqa,1,1,XMMREG,,');
- FOpCodeList.Add('mpsadbw,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pabsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('packssdw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('packsswb,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('packusdw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('packuswb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddsb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddusb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddusw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('paddw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('palignr,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pand,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pandn,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pavgb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pavgw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pblendvb,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pblendw,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pcmpeqb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpeqd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pcmpeqq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pextrb,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pextrb,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pextrd,1,1,REG32,XMMREG,IMM,');
+ FOpCodeList.Add('pcmpeqw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpestri,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pcmpestrm,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pcmpgtb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpgtd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpgtq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpgtw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pcmpistri,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pcmpistrm,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pextrb,1,1,REG32,XMMREG,IMM,');
+ FOpCodeList.Add('pextrb,1,1,REG64,XMMREG,IMM,');
+ FOpCodeList.Add('pextrb,1,1,MEM8,XMMREG,IMM,');
FOpCodeList.Add('pextrd,1,1,MEM32,XMMREG,IMM,');
- FOpCodeList.Add('pextrq,0,1,REG64,XMMREG,IMM,');
+ FOpCodeList.Add('pextrd,1,1,REG32,XMMREG,IMM,');
FOpCodeList.Add('pextrq,0,1,MEM64,XMMREG,IMM,');
+ FOpCodeList.Add('pextrq,0,1,REG64,XMMREG,IMM,');
+ FOpCodeList.Add('pextrw,1,1,MEM32,XMMREG,IMM,');
+ FOpCodeList.Add('pextrw,1,1,REG32,XMMREG,IMM,');
+ FOpCodeList.Add('phaddd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('phaddsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('phaddw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('phminposuw,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pinsrb,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pinsrb,1,1,XMMREG,IMM,');
- FOpCodeList.Add('pinsrd,1,1,XMMREG,REG32,IMM,');
+ FOpCodeList.Add('phsubd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('phsubsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('phsubw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pinsrb,1,1,XMMREG,REG32,IMM,');
+ FOpCodeList.Add('pinsrb,1,1,XMMREG,REG64,IMM,');
+ FOpCodeList.Add('pinsrb,1,1,XMMREG,MEM8,IMM,');
FOpCodeList.Add('pinsrd,1,1,XMMREG,MEM32,IMM,');
- FOpCodeList.Add('pinsrq,0,1,XMMREG,REG64,IMM,');
+ FOpCodeList.Add('pinsrd,1,1,XMMREG,REG32,IMM,');
FOpCodeList.Add('pinsrq,0,1,XMMREG,MEM64,IMM,');
+ FOpCodeList.Add('pinsrq,0,1,XMMREG,REG64,IMM,');
+ FOpCodeList.Add('pinsrw,1,1,XMMREG,REG16,IMM,');
+ FOpCodeList.Add('pinsrw,1,1,XMMREG,MEM16,IMM,');
+ FOpCodeList.Add('pinsrw,1,1,XMMREG,MEM,IMM,');
+ FOpCodeList.Add('pinsrw,1,1,XMMREG,REG32,IMM,');
+ FOpCodeList.Add('pmaddubsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmaddwd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmaxsb,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmaxsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmaxsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmaxub,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmaxud,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmaxuw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pminsb,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pminsd,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pminuw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pminsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pminub,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pminud,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmovsxbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pminuw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmovmskb,1,1,REG32,XMMREG,,');
FOpCodeList.Add('pmovsxbd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovsxbq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmovsxbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmovsxdq,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovsxwd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovsxwq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmovsxdq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmovzxbw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovzxbd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovzxbq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmovzxbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmovzxdq,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovzxwd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmovzxwq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('pmovzxdq,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmuldq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmulhrsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmulhuw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmulhw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('pmulld,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmullw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pmuludq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('por,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psadbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pshufb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pshufd,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pshufhw,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('pshuflw,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('psignb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psignd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psignw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pslld,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('pslld,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pslldq,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psllq,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psllq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psllw,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psllw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psrad,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psrad,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psraw,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psraw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psrld,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psrld,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psrldq,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psrlq,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psrlq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psrlw,1,1,XMMREG,IMM,,');
+ FOpCodeList.Add('psrlw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubsb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubsw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubusb,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubusw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('psubw,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('ptest,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('roundps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('punpckhbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpckhdq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpckhqdq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpckhwd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpcklbw,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpckldq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpcklqdq,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('punpcklwd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('pxor,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('rcpps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('rcpss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('rorx,0,1,REG64,RM64,IMM8,');
+ FOpCodeList.Add('rorx,1,1,REG32,RM32,IMM8,');
FOpCodeList.Add('roundpd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('roundss,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('roundps,1,1,XMMREG,XMMRM,IMM,');
FOpCodeList.Add('roundsd,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pcmpestri,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pcmpestrm,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pcmpistri,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pcmpistrm,1,1,XMMREG,XMMRM,IMM,');
- FOpCodeList.Add('pcmpgtq,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aesenc,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aesenclast,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aesdec,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aesdeclast,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aesimc,1,1,XMMREG,XMMRM,,');
- FOpCodeList.Add('aeskeygenassist,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('roundss,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('rsqrtps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('rsqrtss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('sarx,0,1,REG64,RM64,REG64,');
+ FOpCodeList.Add('sarx,1,1,REG32,RM32,REG32,');
+ FOpCodeList.Add('shlx,0,1,REG64,RM64,REG64,');
+ FOpCodeList.Add('shlx,1,1,REG32,RM32,REG32,');
+ FOpCodeList.Add('shrx,0,1,REG64,RM64,REG64,');
+ FOpCodeList.Add('shrx,1,1,REG32,RM32,REG32,');
+ FOpCodeList.Add('shufpd,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('shufps,1,1,XMMREG,XMMRM,IMM,');
+ FOpCodeList.Add('sqrtpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('sqrtps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('sqrtsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('sqrtss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('subpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('subps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('subsd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('subss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('ucomisd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('ucomiss,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('unpckhpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('unpckhps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('unpcklpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('unpcklps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vaddpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vaddpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vaddps,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1156,10 +1170,10 @@ begin
FOpCodeList.Add('vaddsd,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vaddss,1,1,XMMREG,XMMREG,MEM32,');
FOpCodeList.Add('vaddss,1,1,XMMREG,XMMREG,XMMREG,');
- FOpCodeList.Add('vaddsubpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vaddsubpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vaddsubps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vaddsubpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vaddsubps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vaddsubps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vaesdec,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vaesdeclast,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vaesenc,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1183,140 +1197,125 @@ begin
FOpCodeList.Add('vblendvps,1,1,XMMREG,XMMREG,XMMRM,XMMREG');
FOpCodeList.Add('vblendvps,1,1,YMMREG,YMMREG,YMMRM,YMMREG');
FOpCodeList.Add('vbroadcastf128,1,1,YMMREG,MEM128,,');
+ FOpCodeList.Add('vbroadcasti128,1,1,YMMREG,MEM128,,');
FOpCodeList.Add('vbroadcastsd,1,1,YMMREG,MEM64,,');
FOpCodeList.Add('vbroadcastsd,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vbroadcastss,1,1,YMMREG,MEM32,,');
FOpCodeList.Add('vbroadcastss,1,1,XMMREG,MEM32,,');
- FOpCodeList.Add('vbroadcastss,1,1,YMMREG,XMMREG,,');
FOpCodeList.Add('vbroadcastss,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vbroadcastss,1,1,YMMREG,MEM32,,');
+ FOpCodeList.Add('vbroadcastss,1,1,YMMREG,XMMREG,,');
+ FOpCodeList.Add('vcmpeqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpeqpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpeqps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpeqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpltps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpltps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpleps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpleps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpunordps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpunordps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpneqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpneqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnltps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnltps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnleps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnleps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpordps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpordps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpeq_uqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpeq_uqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpngeps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpngeps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpngtps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpngtps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpfalseps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpfalseps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpneq_oqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpneq_oqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpgeps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpgeps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpgtps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpgtps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmptrueps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmptrueps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpeq_ospd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpeq_ospd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpeq_osps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpeq_osps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmplt_oqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmplt_oqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmple_oqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmple_oqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpunord_sps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpunord_sps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpneq_usps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpneq_usps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnlt_uqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnlt_uqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnle_uqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnle_uqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpord_sps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpord_sps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpeq_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpeq_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpeq_uqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpeq_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpeq_uspd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpeq_uspd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpeq_usps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpeq_usps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnge_uqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnge_uqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpngt_uqps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpngt_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpfalsepd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpfalsepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpfalseps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpfalseps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpfalse_ospd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpfalse_ospd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpfalse_osps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpfalse_osps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpneq_osps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpneq_osps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpgepd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpgepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpgeps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpgeps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpge_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpge_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpge_oqps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpge_oqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpgtpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpgtpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpgtps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpgtps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpgt_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpgt_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpgt_oqps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpgt_oqps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmptrue_usps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmptrue_usps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpeqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpeqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpltpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpltpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmplepd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmplepd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpunordpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpunordpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpleps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpleps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmple_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmple_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmple_oqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmple_oqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpltpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpltpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpltps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpltps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmplt_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmplt_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmplt_oqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmplt_oqps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpneqpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpneqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnltpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnltpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnlepd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnlepd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpordpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpordpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpeq_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpeq_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpngepd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpngepd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpngtpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpngtpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpfalsepd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpfalsepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpneqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpneqps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpneq_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpneq_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpgepd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpgepd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpgtpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpgtpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmptruepd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmptruepd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpeq_ospd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpeq_ospd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmplt_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmplt_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmple_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmple_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpunord_spd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpunord_spd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpneq_oqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpneq_oqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpneq_ospd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpneq_ospd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpneq_osps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpneq_osps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpneq_uspd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpneq_uspd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnlt_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnlt_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpnle_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpnle_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpord_spd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpord_spd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpeq_uspd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpeq_uspd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpneq_usps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpneq_usps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpngepd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpngepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpngeps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpngeps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpnge_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpnge_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnge_uqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnge_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpngtpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpngtpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpngtps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpngtps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmpngt_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vcmpngt_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpfalse_ospd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpfalse_ospd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpneq_ospd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpneq_ospd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpge_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpge_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmpgt_oqpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmpgt_oqpd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vcmptrue_uspd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vcmptrue_uspd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpngt_uqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpngt_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnlepd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnlepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnleps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnleps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnle_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnle_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnle_uqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnle_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnltpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnltpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnltps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnltps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnlt_uqpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnlt_uqpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpnlt_uqps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpnlt_uqps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpordpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpordpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpordps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpordps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpord_spd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpord_spd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpord_sps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpord_sps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcmppd,1,1,XMMREG,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vcmppd,1,1,YMMREG,YMMREG,YMMRM,IMM8');
FOpCodeList.Add('vcmpps,1,1,XMMREG,XMMREG,XMMRM,IMM8');
@@ -1325,14 +1324,30 @@ begin
FOpCodeList.Add('vcmpsd,1,1,XMMREG,XMMREG,XMMREG,IMM8');
FOpCodeList.Add('vcmpss,1,1,XMMREG,XMMREG,MEM64,IMM8');
FOpCodeList.Add('vcmpss,1,1,XMMREG,XMMREG,XMMREG,IMM8');
+ FOpCodeList.Add('vcmptruepd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmptruepd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmptrueps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmptrueps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmptrue_uspd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmptrue_uspd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmptrue_usps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmptrue_usps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpunordpd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpunordpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpunordps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpunordps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpunord_spd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpunord_spd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vcmpunord_sps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vcmpunord_sps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vcomisd,1,1,XMMREG,MEM64,,');
FOpCodeList.Add('vcomisd,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vcomiss,1,1,XMMREG,MEM32,,');
FOpCodeList.Add('vcomiss,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vcvtdq2pd,1,1,XMMREG,MEM64,,');
FOpCodeList.Add('vcvtdq2pd,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vcvtdq2pd,1,1,YMMREG,XMMREG,,');
FOpCodeList.Add('vcvtdq2pd,1,1,YMMREG,MEM128,,');
+ FOpCodeList.Add('vcvtdq2pd,1,1,YMMREG,XMMREG,,');
FOpCodeList.Add('vcvtdq2ps,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vcvtdq2ps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vcvtpd2dq,1,1,XMMREG,XMMRM,,');
@@ -1350,10 +1365,10 @@ begin
FOpCodeList.Add('vcvtsd2si,1,1,REG64,XMMREG,,');
FOpCodeList.Add('vcvtsd2ss,1,1,XMMREG,XMMREG,MEM64,');
FOpCodeList.Add('vcvtsd2ss,1,1,XMMREG,XMMREG,XMMREG,');
- FOpCodeList.Add('vcvtsi2sd,1,1,XMMREG,XMMREG,RM32,');
FOpCodeList.Add('vcvtsi2sd,0,1,XMMREG,XMMREG,RM64,');
- FOpCodeList.Add('vcvtsi2ss,1,1,XMMREG,XMMREG,RM32,');
+ FOpCodeList.Add('vcvtsi2sd,1,1,XMMREG,XMMREG,RM32,');
FOpCodeList.Add('vcvtsi2ss,0,1,XMMREG,XMMREG,RM64,');
+ FOpCodeList.Add('vcvtsi2ss,1,1,XMMREG,XMMREG,RM32,');
FOpCodeList.Add('vcvtss2sd,1,1,XMMREG,XMMREG,MEM32,');
FOpCodeList.Add('vcvtss2sd,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vcvtss2si,1,1,REG32,MEM32,,');
@@ -1384,7 +1399,114 @@ begin
FOpCodeList.Add('vdpps,1,1,XMMREG,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vdpps,1,1,YMMREG,YMMREG,YMMRM,IMM8');
FOpCodeList.Add('vextractf128,1,1,XMMRM,YMMREG,IMM8,');
+ FOpCodeList.Add('vextracti128,1,1,XMMRM,YMMREG,IMM8,');
FOpCodeList.Add('vextractps,1,1,RM32,XMMREG,IMM8,');
+ FOpCodeList.Add('vfmadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd132sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd132ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd213sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd213ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmadd231sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmadd231ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddpd,1,1,XMMREG,XMMREG,XMMREG,XMMRM');
+ FOpCodeList.Add('vfmaddpd,1,1,XMMREG,XMMREG,XMMRM,XMMREG');
+ FOpCodeList.Add('vfmaddsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmaddsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmaddsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmaddsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmaddsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmaddsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmaddsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub132sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub132ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub213sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub213ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsub231sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsub231ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsubadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsubadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsubadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsubadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfmsubadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfmsubadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd132sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd132ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd213sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd213ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmadd231sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmadd231ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub132sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub132ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub213sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub213ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vfnmsub231sd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vfnmsub231ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vgatherdpd,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('vgatherdpd,1,1,YMMREG,XMEM64,YMMREG,');
+ FOpCodeList.Add('vgatherdps,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('vgatherdps,1,1,YMMREG,YMEM32,YMMREG,');
+ FOpCodeList.Add('vgatherqpd,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('vgatherqpd,1,1,YMMREG,YMEM64,YMMREG,');
+ FOpCodeList.Add('vgatherqps,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('vgatherqps,1,1,XMMREG,YMEM32,XMMREG,');
FOpCodeList.Add('vhaddpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vhaddpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vhaddps,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1394,20 +1516,21 @@ begin
FOpCodeList.Add('vhsubps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vhsubps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vinsertf128,1,1,YMMREG,YMMREG,XMMRM,IMM8');
+ FOpCodeList.Add('vinserti128,1,1,YMMREG,YMMREG,XMMRM,IMM8');
FOpCodeList.Add('vinsertps,1,1,XMMREG,XMMREG,MEM32,IMM8');
FOpCodeList.Add('vinsertps,1,1,XMMREG,XMMREG,XMMREG,IMM8');
FOpCodeList.Add('vlddqu,1,1,XMMREG,MEM128,,');
FOpCodeList.Add('vlddqu,1,1,YMMREG,MEM256,,');
FOpCodeList.Add('vldmxcsr,1,1,MEM32,,,');
FOpCodeList.Add('vmaskmovdqu,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vmaskmovpd,1,1,MEM256,YMMREG,YMMREG,');
FOpCodeList.Add('vmaskmovpd,1,1,MEM128,XMMREG,XMMREG,');
- FOpCodeList.Add('vmaskmovpd,1,1,YMMREG,YMMREG,MEM256,');
+ FOpCodeList.Add('vmaskmovpd,1,1,MEM256,YMMREG,YMMREG,');
FOpCodeList.Add('vmaskmovpd,1,1,XMMREG,XMMREG,MEM128,');
- FOpCodeList.Add('vmaskmovps,1,1,MEM256,YMMREG,YMMREG,');
+ FOpCodeList.Add('vmaskmovpd,1,1,YMMREG,YMMREG,MEM256,');
FOpCodeList.Add('vmaskmovps,1,1,MEM128,XMMREG,XMMREG,');
- FOpCodeList.Add('vmaskmovps,1,1,YMMREG,YMMREG,MEM256,');
+ FOpCodeList.Add('vmaskmovps,1,1,MEM256,YMMREG,YMMREG,');
FOpCodeList.Add('vmaskmovps,1,1,XMMREG,XMMREG,MEM128,');
+ FOpCodeList.Add('vmaskmovps,1,1,YMMREG,YMMREG,MEM256,');
FOpCodeList.Add('vmaxpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vmaxpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vmaxps,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1432,63 +1555,63 @@ begin
FOpCodeList.Add('vmovaps,1,1,XMMRM,XMMREG,,');
FOpCodeList.Add('vmovaps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vmovaps,1,1,YMMRM,YMMREG,,');
- FOpCodeList.Add('vmovd,1,1,XMMREG,RM32,,');
FOpCodeList.Add('vmovd,1,1,RM32,XMMREG,,');
- FOpCodeList.Add('vmovddup,1,1,YMMREG,YMMRM,,');
+ FOpCodeList.Add('vmovd,1,1,XMMREG,RM32,,');
FOpCodeList.Add('vmovddup,1,1,XMMREG,MEM64,,');
FOpCodeList.Add('vmovddup,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vmovdqa,1,1,YMMRM,YMMREG,,');
+ FOpCodeList.Add('vmovddup,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vmovdqa,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vmovdqa,1,1,XMMRM,XMMREG,,');
FOpCodeList.Add('vmovdqa,1,1,YMMREG,YMMRM,,');
- FOpCodeList.Add('vmovdqu,1,1,YMMREG,YMMRM,,');
+ FOpCodeList.Add('vmovdqa,1,1,YMMRM,YMMREG,,');
FOpCodeList.Add('vmovdqu,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vmovdqu,1,1,XMMRM,XMMREG,,');
+ FOpCodeList.Add('vmovdqu,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vmovdqu,1,1,YMMRM,YMMREG,,');
FOpCodeList.Add('vmovhlps,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vmovhpd,1,1,MEM64,XMMREG,,');
FOpCodeList.Add('vmovhpd,1,1,XMMREG,XMMREG,MEM64,');
- FOpCodeList.Add('vmovhps,1,1,XMMREG,XMMREG,MEM64,');
FOpCodeList.Add('vmovhps,1,1,MEM64,XMMREG,,');
+ FOpCodeList.Add('vmovhps,1,1,XMMREG,XMMREG,MEM64,');
FOpCodeList.Add('vmovlhps,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vmovlpd,1,1,MEM64,XMMREG,,');
FOpCodeList.Add('vmovlpd,1,1,XMMREG,XMMREG,MEM64,');
FOpCodeList.Add('vmovlps,1,1,MEM64,XMMREG,,');
FOpCodeList.Add('vmovlps,1,1,XMMREG,XMMREG,MEM64,');
+ FOpCodeList.Add('vmovmskpd,1,1,REG32,XMMREG,,');
FOpCodeList.Add('vmovmskpd,1,1,REG32,YMMREG,,');
FOpCodeList.Add('vmovmskpd,1,1,REG64,XMMREG,,');
- FOpCodeList.Add('vmovmskpd,1,1,REG32,XMMREG,,');
FOpCodeList.Add('vmovmskpd,1,1,REG64,YMMREG,,');
+ FOpCodeList.Add('vmovmskps,1,1,REG32,XMMREG,,');
FOpCodeList.Add('vmovmskps,1,1,REG32,YMMREG,,');
FOpCodeList.Add('vmovmskps,1,1,REG64,XMMREG,,');
- FOpCodeList.Add('vmovmskps,1,1,REG32,XMMREG,,');
FOpCodeList.Add('vmovmskps,1,1,REG64,YMMREG,,');
FOpCodeList.Add('vmovntdq,1,1,MEM128,XMMREG,,');
FOpCodeList.Add('vmovntdq,1,1,MEM256,YMMREG,,');
FOpCodeList.Add('vmovntdqa,1,1,XMMREG,MEM128,,');
FOpCodeList.Add('vmovntdqa,1,1,YMMREG,MEM256,,');
- FOpCodeList.Add('vmovntpd,1,1,MEM256,YMMREG,,');
FOpCodeList.Add('vmovntpd,1,1,MEM128,XMMREG,,');
- FOpCodeList.Add('vmovntps,1,1,MEM128,YMMREG,,');
+ FOpCodeList.Add('vmovntpd,1,1,MEM256,YMMREG,,');
FOpCodeList.Add('vmovntps,1,1,MEM128,XMMREG,,');
- FOpCodeList.Add('vmovq,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vmovq,1,1,XMMREG,MEM64,,');
- FOpCodeList.Add('vmovq,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vmovq,1,1,MEM64,XMMREG,,');
+ FOpCodeList.Add('vmovntps,1,1,MEM128,YMMREG,,');
FOpCodeList.Add('vmovq,0,1,RM64,XMMREG,,');
FOpCodeList.Add('vmovq,0,1,XMMREG,RM64,,');
- FOpCodeList.Add('vmovsd,1,1,XMMREG,XMMREG,XMMREG,');
+ FOpCodeList.Add('vmovq,1,1,MEM64,XMMREG,,');
+ FOpCodeList.Add('vmovq,1,1,XMMREG,MEM64,,');
+ FOpCodeList.Add('vmovq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vmovq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vmovsd,1,1,MEM64,XMMREG,,');
FOpCodeList.Add('vmovsd,1,1,XMMREG,MEM64,,');
FOpCodeList.Add('vmovsd,1,1,XMMREG,XMMREG,XMMREG,');
- FOpCodeList.Add('vmovsd,1,1,MEM64,XMMREG,,');
+ FOpCodeList.Add('vmovsd,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vmovshdup,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vmovshdup,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vmovsldup,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vmovsldup,1,1,YMMREG,YMMRM,,');
- FOpCodeList.Add('vmovss,1,1,XMMREG,XMMREG,XMMREG,');
+ FOpCodeList.Add('vmovss,1,1,MEM32,XMMREG,,');
FOpCodeList.Add('vmovss,1,1,XMMREG,MEM32,,');
FOpCodeList.Add('vmovss,1,1,XMMREG,XMMREG,XMMREG,');
- FOpCodeList.Add('vmovss,1,1,MEM32,XMMREG,,');
+ FOpCodeList.Add('vmovss,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vmovupd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vmovupd,1,1,XMMRM,XMMREG,,');
FOpCodeList.Add('vmovupd,1,1,YMMREG,YMMRM,,');
@@ -1550,10 +1673,28 @@ begin
FOpCodeList.Add('vpavgb,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpavgw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpavgw,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpblendd,1,1,XMMREG,XMMREG,XMMRM,IMM8');
+ FOpCodeList.Add('vpblendd,1,1,YMMREG,YMMREG,YMMRM,IMM8');
FOpCodeList.Add('vpblendvb,1,1,XMMREG,XMMREG,XMMRM,XMMREG');
FOpCodeList.Add('vpblendvb,1,1,YMMREG,YMMREG,YMMRM,YMMREG');
FOpCodeList.Add('vpblendw,1,1,XMMREG,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vpblendw,1,1,YMMREG,YMMREG,YMMRM,IMM8');
+ FOpCodeList.Add('vpbroadcastb,1,1,XMMREG,MEM8,,');
+ FOpCodeList.Add('vpbroadcastb,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastb,1,1,YMMREG,MEM8,,');
+ FOpCodeList.Add('vpbroadcastb,1,1,YMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastd,1,1,XMMREG,MEM32,,');
+ FOpCodeList.Add('vpbroadcastd,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastd,1,1,YMMREG,MEM32,,');
+ FOpCodeList.Add('vpbroadcastd,1,1,YMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastq,1,1,XMMREG,MEM64,,');
+ FOpCodeList.Add('vpbroadcastq,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastq,1,1,YMMREG,MEM64,,');
+ FOpCodeList.Add('vpbroadcastq,1,1,YMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastw,1,1,XMMREG,MEM16,,');
+ FOpCodeList.Add('vpbroadcastw,1,1,XMMREG,XMMREG,,');
+ FOpCodeList.Add('vpbroadcastw,1,1,YMMREG,MEM16,,');
+ FOpCodeList.Add('vpbroadcastw,1,1,YMMREG,XMMREG,,');
FOpCodeList.Add('vpclmulqdq,1,1,XMMREG,XMMREG,XMMRM,IMM8');
FOpCodeList.Add('vpcmpeqb,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpcmpeqb,1,1,YMMREG,YMMREG,YMMRM,');
@@ -1576,24 +1717,37 @@ begin
FOpCodeList.Add('vpcmpistri,1,1,XMMREG,XMMRM,IMM8,');
FOpCodeList.Add('vpcmpistrm,1,1,XMMREG,XMMRM,IMM8,');
FOpCodeList.Add('vperm2f128,1,1,YMMREG,YMMREG,YMMRM,IMM8');
- FOpCodeList.Add('vpermilpd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vperm2i128,1,1,YMMREG,YMMREG,YMMRM,IMM8');
+ FOpCodeList.Add('vpermd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpermilpd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpermilpd,1,1,XMMREG,XMMRM,IMM8,');
+ FOpCodeList.Add('vpermilpd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpermilpd,1,1,YMMREG,YMMRM,IMM8,');
- FOpCodeList.Add('vpermilpd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vpermilps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpermilps,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpermilps,1,1,XMMREG,XMMRM,IMM8,');
+ FOpCodeList.Add('vpermilps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpermilps,1,1,YMMREG,YMMRM,IMM8,');
- FOpCodeList.Add('vpermilps,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpermpd,1,1,YMMREG,YMMRM,IMM8,');
+ FOpCodeList.Add('vpermps,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpermq,1,1,YMMREG,YMMRM,IMM8,');
FOpCodeList.Add('vpextrb,1,1,REG32,XMMREG,IMM8,');
FOpCodeList.Add('vpextrb,1,1,REG64,XMMREG,IMM8,');
- FOpCodeList.Add('vpextrb,1,1,XMMREG,IMM8,');
+ FOpCodeList.Add('vpextrb,1,1,MEM8,XMMREG,IMM8,');
FOpCodeList.Add('vpextrd,1,1,RM32,XMMREG,IMM8,');
FOpCodeList.Add('vpextrq,1,1,RM64,XMMREG,IMM8,');
FOpCodeList.Add('vpextrw,1,1,REG32,XMMREG,IMM8,');
- FOpCodeList.Add('vpextrw,1,1,REG64,XMMREG,IMM8,');
FOpCodeList.Add('vpextrw,1,1,REG32,XMMREG,IMM8,');
FOpCodeList.Add('vpextrw,1,1,REG64,XMMREG,IMM8,');
- FOpCodeList.Add('vpextrw,1,1,XMMREG,IMM8,');
+ FOpCodeList.Add('vpextrw,1,1,REG64,XMMREG,IMM8,');
+ FOpCodeList.Add('vpextrw,1,1,MEM16,XMMREG,IMM8,');
+ FOpCodeList.Add('vpgatherdd,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('vpgatherdd,1,1,YMMREG,YMEM32,YMMREG,');
+ FOpCodeList.Add('vpgatherdq,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('vpgatherdq,1,1,YMMREG,XMEM64,YMMREG,');
+ FOpCodeList.Add('vpgatherqd,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('vpgatherqd,1,1,XMMREG,YMEM32,XMMREG,');
+ FOpCodeList.Add('vpgatherqq,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('vpgatherqq,1,1,YMMREG,YMEM64,YMMREG,');
FOpCodeList.Add('vphaddd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vphaddd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vphaddsw,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1607,16 +1761,24 @@ begin
FOpCodeList.Add('vphsubsw,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vphsubw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vphsubw,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpinsrb,1,1,XMMREG,XMMREG,MEM8,IMM8');
FOpCodeList.Add('vpinsrb,1,1,XMMREG,XMMREG,REG32,IMM8');
- FOpCodeList.Add('vpinsrb,1,1,XMMREG,XMMREG,IMM8');
FOpCodeList.Add('vpinsrd,1,1,XMMREG,XMMREG,RM32,IMM8');
FOpCodeList.Add('vpinsrq,1,1,XMMREG,XMMREG,RM64,IMM8');
+ FOpCodeList.Add('vpinsrw,1,1,XMMREG,XMMREG,MEM16,IMM8');
FOpCodeList.Add('vpinsrw,1,1,XMMREG,XMMREG,REG32,IMM8');
- FOpCodeList.Add('vpinsrw,1,1,XMMREG,XMMREG,IMM8');
FOpCodeList.Add('vpmaddubsw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpmaddubsw,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpmaddwd,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpmaddwd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpmaskmovd,1,1,MEM128,XMMREG,XMMREG,');
+ FOpCodeList.Add('vpmaskmovd,1,1,MEM256,YMMREG,YMMREG,');
+ FOpCodeList.Add('vpmaskmovd,1,1,XMMREG,XMMREG,MEM128,');
+ FOpCodeList.Add('vpmaskmovd,1,1,YMMREG,YMMREG,MEM256,');
+ FOpCodeList.Add('vpmaskmovq,1,1,MEM128,XMMREG,XMMREG,');
+ FOpCodeList.Add('vpmaskmovq,1,1,MEM256,YMMREG,YMMREG,');
+ FOpCodeList.Add('vpmaskmovq,1,1,XMMREG,XMMREG,MEM128,');
+ FOpCodeList.Add('vpmaskmovq,1,1,YMMREG,YMMREG,MEM256,');
FOpCodeList.Add('vpmaxsb,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpmaxsb,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpmaxsd,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1641,15 +1803,15 @@ begin
FOpCodeList.Add('vpminud,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpminuw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpminuw,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpmovmskb,1,1,REG64,XMMREG,,');
FOpCodeList.Add('vpmovmskb,1,1,REG32,XMMREG,,');
FOpCodeList.Add('vpmovmskb,1,1,REG32,YMMREG,,');
+ FOpCodeList.Add('vpmovmskb,1,1,REG64,XMMREG,,');
FOpCodeList.Add('vpmovmskb,1,1,REG64,YMMREG,,');
FOpCodeList.Add('vpmovsxbd,1,1,XMMREG,MEM32,,');
FOpCodeList.Add('vpmovsxbd,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vpmovsxbd,1,1,YMMREG,XMMREG,,');
FOpCodeList.Add('vpmovsxbd,1,1,YMMREG,MEM64,,');
- FOpCodeList.Add('vpmovsxbq,1,1,XMMREG,,');
+ FOpCodeList.Add('vpmovsxbd,1,1,YMMREG,XMMREG,,');
+ FOpCodeList.Add('vpmovsxbq,1,1,XMMREG,MEM16,,');
FOpCodeList.Add('vpmovsxbq,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vpmovsxbq,1,1,YMMREG,MEM32,,');
FOpCodeList.Add('vpmovsxbq,1,1,YMMREG,XMMREG,,');
@@ -1670,7 +1832,7 @@ begin
FOpCodeList.Add('vpmovzxbd,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vpmovzxbd,1,1,YMMREG,MEM64,,');
FOpCodeList.Add('vpmovzxbd,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vpmovzxbq,1,1,XMMREG,,');
+ FOpCodeList.Add('vpmovzxbq,1,1,XMMREG,MEM16,,');
FOpCodeList.Add('vpmovzxbq,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vpmovzxbq,1,1,YMMREG,MEM32,,');
FOpCodeList.Add('vpmovzxbq,1,1,YMMREG,XMMREG,,');
@@ -1725,10 +1887,14 @@ begin
FOpCodeList.Add('vpslld,1,1,YMMREG,YMMREG,XMMRM,');
FOpCodeList.Add('vpslldq,1,1,XMMREG,XMMREG,IMM8,');
FOpCodeList.Add('vpslldq,1,1,YMMREG,YMMREG,IMM8,');
- FOpCodeList.Add('vpsllq,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsllq,1,1,XMMREG,XMMREG,IMM8,');
- FOpCodeList.Add('vpsllq,1,1,YMMREG,YMMREG,XMMRM,');
+ FOpCodeList.Add('vpsllq,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsllq,1,1,YMMREG,YMMREG,IMM8,');
+ FOpCodeList.Add('vpsllq,1,1,YMMREG,YMMREG,XMMRM,');
+ FOpCodeList.Add('vpsllvd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpsllvd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpsllvq,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpsllvq,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpsllw,1,1,XMMREG,XMMREG,IMM8,');
FOpCodeList.Add('vpsllw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsllw,1,1,YMMREG,YMMREG,IMM8,');
@@ -1737,6 +1903,8 @@ begin
FOpCodeList.Add('vpsrad,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsrad,1,1,YMMREG,YMMREG,IMM8,');
FOpCodeList.Add('vpsrad,1,1,YMMREG,YMMREG,XMMRM,');
+ FOpCodeList.Add('vpsravd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpsravd,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpsraw,1,1,XMMREG,XMMREG,IMM8,');
FOpCodeList.Add('vpsraw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsraw,1,1,YMMREG,YMMREG,IMM8,');
@@ -1751,6 +1919,10 @@ begin
FOpCodeList.Add('vpsrlq,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsrlq,1,1,YMMREG,YMMREG,IMM8,');
FOpCodeList.Add('vpsrlq,1,1,YMMREG,YMMREG,XMMRM,');
+ FOpCodeList.Add('vpsrlvd,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpsrlvd,1,1,YMMREG,YMMREG,YMMRM,');
+ FOpCodeList.Add('vpsrlvq,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('vpsrlvq,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpsrlw,1,1,XMMREG,XMMREG,IMM8,');
FOpCodeList.Add('vpsrlw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsrlw,1,1,YMMREG,YMMREG,IMM8,');
@@ -1771,8 +1943,8 @@ begin
FOpCodeList.Add('vpsubusw,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpsubw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpsubw,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vptest,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vptest,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('vptest,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vpunpckhbw,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('vpunpckhbw,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vpunpckhdq,1,1,XMMREG,XMMREG,XMMRM,');
@@ -1795,16 +1967,16 @@ begin
FOpCodeList.Add('vrcpps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vrcpss,1,1,XMMREG,XMMREG,MEM32,');
FOpCodeList.Add('vrcpss,1,1,XMMREG,XMMREG,XMMREG,');
- FOpCodeList.Add('vroundpd,1,1,YMMREG,YMMRM,IMM8,');
FOpCodeList.Add('vroundpd,1,1,XMMREG,XMMRM,IMM8,');
- FOpCodeList.Add('vroundps,1,1,YMMREG,YMMRM,IMM8,');
+ FOpCodeList.Add('vroundpd,1,1,YMMREG,YMMRM,IMM8,');
FOpCodeList.Add('vroundps,1,1,XMMREG,XMMRM,IMM8,');
+ FOpCodeList.Add('vroundps,1,1,YMMREG,YMMRM,IMM8,');
FOpCodeList.Add('vroundsd,1,1,XMMREG,XMMREG,MEM64,IMM8');
FOpCodeList.Add('vroundsd,1,1,XMMREG,XMMREG,XMMREG,IMM8');
FOpCodeList.Add('vroundss,1,1,XMMREG,XMMREG,MEM32,IMM8');
FOpCodeList.Add('vroundss,1,1,XMMREG,XMMREG,XMMREG,IMM8');
- FOpCodeList.Add('vrsqrtps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vrsqrtps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('vrsqrtps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vrsqrtss,1,1,XMMREG,XMMREG,MEM32,');
FOpCodeList.Add('vrsqrtss,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vshufpd,1,1,XMMREG,XMMREG,XMMRM,IMM8');
@@ -1830,8 +2002,8 @@ begin
FOpCodeList.Add('vsubss,1,1,XMMREG,XMMREG,XMMREG,');
FOpCodeList.Add('vtestpd,1,1,XMMREG,XMMRM,,');
FOpCodeList.Add('vtestpd,1,1,YMMREG,YMMRM,,');
- FOpCodeList.Add('vtestps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vtestps,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('vtestps,1,1,YMMREG,YMMRM,,');
FOpCodeList.Add('vucomisd,1,1,XMMREG,MEM64,,');
FOpCodeList.Add('vucomisd,1,1,XMMREG,XMMREG,,');
FOpCodeList.Add('vucomiss,1,1,XMMREG,MEM32,,');
@@ -1850,176 +2022,9 @@ begin
FOpCodeList.Add('vxorps,1,1,YMMREG,YMMREG,YMMRM,');
FOpCodeList.Add('vzeroall,1,1,,,,');
FOpCodeList.Add('vzeroupper,1,1,,,,');
- FOpCodeList.Add('andn,1,1,REG32,REG32,RM32,');
- FOpCodeList.Add('andn,0,1,REG64,REG64,RM64,');
- FOpCodeList.Add('bextr,1,1,REG32,RM32,REG32,');
- FOpCodeList.Add('bextr,0,1,REG64,RM64,REG64,');
- FOpCodeList.Add('rorx,1,1,REG32,RM32,IMM8,');
- FOpCodeList.Add('rorx,0,1,REG64,RM64,IMM8,');
- FOpCodeList.Add('sarx,1,1,REG32,RM32,REG32,');
- FOpCodeList.Add('sarx,0,1,REG64,RM64,REG64,');
- FOpCodeList.Add('shlx,1,1,REG32,RM32,REG32,');
- FOpCodeList.Add('shlx,0,1,REG64,RM64,REG64,');
- FOpCodeList.Add('shrx,1,1,REG32,RM32,REG32,');
- FOpCodeList.Add('shrx,0,1,REG64,RM64,REG64,');
- FOpCodeList.Add('vbroadcasti128,1,1,YMMREG,MEM128,,');
- FOpCodeList.Add('vextracti128,1,1,XMMRM,YMMREG,IMM8,');
- FOpCodeList.Add('vinserti128,1,1,YMMREG,YMMREG,XMMRM,IMM8');
- FOpCodeList.Add('vpblendd,1,1,YMMREG,YMMREG,YMMRM,IMM8');
- FOpCodeList.Add('vpblendd,1,1,XMMREG,XMMREG,XMMRM,IMM8');
- FOpCodeList.Add('vpbroadcastb,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastb,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastb,1,1,XMMREG,,');
- FOpCodeList.Add('vpbroadcastb,1,1,YMMREG,,');
- FOpCodeList.Add('vpbroadcastd,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastd,1,1,XMMREG,MEM32,,');
- FOpCodeList.Add('vpbroadcastd,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastd,1,1,YMMREG,MEM32,,');
- FOpCodeList.Add('vpbroadcastq,1,1,YMMREG,MEM64,,');
- FOpCodeList.Add('vpbroadcastq,1,1,XMMREG,MEM64,,');
- FOpCodeList.Add('vpbroadcastq,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastq,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastw,1,1,XMMREG,,');
- FOpCodeList.Add('vpbroadcastw,1,1,XMMREG,XMMREG,,');
- FOpCodeList.Add('vpbroadcastw,1,1,YMMREG,,');
- FOpCodeList.Add('vpbroadcastw,1,1,YMMREG,XMMREG,,');
- FOpCodeList.Add('vperm2i128,1,1,YMMREG,YMMREG,YMMRM,IMM8');
- FOpCodeList.Add('vpermd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpermpd,1,1,YMMREG,YMMRM,IMM8,');
- FOpCodeList.Add('vpermps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpermq,1,1,YMMREG,YMMRM,IMM8,');
- FOpCodeList.Add('vpmaskmovd,1,1,XMMREG,XMMREG,MEM128,');
- FOpCodeList.Add('vpmaskmovd,1,1,MEM128,XMMREG,XMMREG,');
- FOpCodeList.Add('vpmaskmovd,1,1,YMMREG,YMMREG,MEM256,');
- FOpCodeList.Add('vpmaskmovd,1,1,MEM256,YMMREG,YMMREG,');
- FOpCodeList.Add('vpmaskmovq,1,1,XMMREG,XMMREG,MEM128,');
- FOpCodeList.Add('vpmaskmovq,1,1,MEM128,XMMREG,XMMREG,');
- FOpCodeList.Add('vpmaskmovq,1,1,MEM256,YMMREG,YMMREG,');
- FOpCodeList.Add('vpmaskmovq,1,1,YMMREG,YMMREG,MEM256,');
- FOpCodeList.Add('vpsllvd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpsllvd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vpsllvq,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vpsllvq,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpsravd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpsravd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vpsrlvd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpsrlvd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vpsrlvq,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vpsrlvq,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vgatherdpd,1,1,XMMREG,XMEM64,XMMREG,');
- FOpCodeList.Add('vgatherdpd,1,1,YMMREG,XMEM64,YMMREG,');
- FOpCodeList.Add('vgatherdps,1,1,XMMREG,XMEM32,XMMREG,');
- FOpCodeList.Add('vgatherdps,1,1,YMMREG,YMEM32,YMMREG,');
- FOpCodeList.Add('vgatherqpd,1,1,XMMREG,XMEM64,XMMREG,');
- FOpCodeList.Add('vgatherqpd,1,1,YMMREG,YMEM64,YMMREG,');
- FOpCodeList.Add('vgatherqps,1,1,XMMREG,XMEM32,XMMREG,');
- FOpCodeList.Add('vgatherqps,1,1,XMMREG,YMEM32,XMMREG,');
- FOpCodeList.Add('vpgatherdd,1,1,XMMREG,XMEM32,XMMREG,');
- FOpCodeList.Add('vpgatherdd,1,1,YMMREG,YMEM32,YMMREG,');
- FOpCodeList.Add('vpgatherdq,1,1,XMMREG,XMEM64,XMMREG,');
- FOpCodeList.Add('vpgatherdq,1,1,YMMREG,XMEM64,YMMREG,');
- FOpCodeList.Add('vpgatherqd,1,1,XMMREG,XMEM32,XMMREG,');
- FOpCodeList.Add('vpgatherqd,1,1,XMMREG,YMEM32,XMMREG,');
- FOpCodeList.Add('vpgatherqq,1,1,XMMREG,XMEM64,XMMREG,');
- FOpCodeList.Add('vpgatherqq,1,1,YMMREG,YMEM64,YMMREG,');
- FOpCodeList.Add('vfmadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddpd,1,1,XMMREG,XMMREG,XMMRM,XMMREG');
- FOpCodeList.Add('vfmaddpd,1,1,XMMREG,XMMREG,XMMREG,XMMRM');
- FOpCodeList.Add('vfmadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmadd132sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd213sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd231sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd132ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd213ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmadd231ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmaddsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmaddsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsubadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsubadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfmsub132sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub213sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub231sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub132ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub213ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfmsub231ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmadd132sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd213sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd231sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd132ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd213ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmadd231ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub132pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub132pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub213pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub213pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub231pd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub231pd,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub132ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub132ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub213ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub213ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub231ps,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub231ps,1,1,YMMREG,YMMREG,YMMRM,');
- FOpCodeList.Add('vfnmsub132sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub213sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub231sd,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub132ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub213ss,1,1,XMMREG,XMMREG,XMMRM,');
- FOpCodeList.Add('vfnmsub231ss,1,1,XMMREG,XMMREG,XMMRM,');
+ FOpCodeList.Add('xorpd,1,1,XMMREG,XMMRM,,');
+ FOpCodeList.Add('xorps,1,1,XMMREG,XMMRM,,');
+
end;
function TAVXTestGenerator.InternalMakeTestFiles(aMRef, aX64: boolean; aDestPath, aFilemask, aFileExt: String;
@@ -2089,16 +2094,16 @@ begin
if (not(aX64) and (sl[1] = '1')) or // i386
(aX64 and (sl[2] = '1')) then // x86_64
begin
- sDestFile := format('%s_%d%s', [NewOpcode, i, trim(copy(sl[4],1,1) + copy(sl[5],1,1) + copy(sl[6],1,1) + copy(sl[7],1,1))]);
+ sDestFile := format('%s_%d%s', [NewOpcode, i, trim(copy(sl[3],1,1) + copy(sl[4],1,1) + copy(sl[5],1,1) + copy(sl[6],1,1))]);
slLocalHeader := TStringList.Create;
try
slLocalHeader.Text := aHeaderList.text;
- if (sl[4] = '') and
+ if (sl[3] = '') and
+ (sl[4] = '') and
(sl[5] = '') and
- (sl[6] = '') and
- (sl[7] = '') then
+ (sl[6] = '') then
begin // Opcode with no Params, e.g. VZEROALL
slAsm.Add(' ' + sl[0]);
end
@@ -2118,6 +2123,8 @@ begin
else TAsmTestGenerator.CalcTestData(aX64, sl[0], sl[3], sl[4], sl[5], sl[6], slAsm);
end;
+
+
SaveFile(slAsm, sDestFile, aDestPath, aFileExt, slLocalHeader, aFooterList);
writeln(format('%s%s%s', [aDestPath, sDestFile, aFileExt]));
diff --git a/fixes_3_2/tests/utils/avx/avxtestgenerator.pp b/fixes_3_2/tests/utils/avx/avxtestgenerator.pp
index 0e8234d974..d94f4ec37a 100644
--- a/fixes_3_2/tests/utils/avx/avxtestgenerator.pp
+++ b/fixes_3_2/tests/utils/avx/avxtestgenerator.pp
@@ -31,6 +31,8 @@ begin
with TAVXTestGenerator.Create do
try
+ TAsmTestGenerator.CalcTestInstFile;
+
with TOptions.Create do
try
LoadParams;