aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorCui, Lili <lili.cui@intel.com>2024-04-07 17:28:25 +0800
committerCui, Lili <lili.cui@intel.com>2024-04-07 17:28:25 +0800
commitdd74a603376ea0c32d06ba18ba52b73e77530cde (patch)
treef304d02f00f07fcf639545d0f78bfa7b70617745 /opcodes
parentbc0d0a5596224491ac6f507f758c4be106b6b5b2 (diff)
downloadgdb-dd74a603376ea0c32d06ba18ba52b73e77530cde.zip
gdb-dd74a603376ea0c32d06ba18ba52b73e77530cde.tar.gz
gdb-dd74a603376ea0c32d06ba18ba52b73e77530cde.tar.bz2
Support APX NF
For the case when NDD and NF are both 0 in evex-promoted format, we will fully support and test it in another patch. gas/ChangeLog: * NEWS: Support Intel APX NF. * config/tc-i386.c (enum i386_error): Add unsupported_nf. (struct _i386_insn): Add has_nf. (is_apx_evex_encoding): Ditto. (build_apx_evex_prefix): Encode the NF bit. (md_assemble): Handle unsupported_nf. (parse_insn): Handle Prefix_NF and report bad for illegal combination. (can_convert_NDD_to_legacy): Replace i.tm.opcode_modifier.nf with i.has_nf. (match_template): Support D for APX_F insns and check NF support. * testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d: Add bad test for NF bit. * testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s: Ditto. * testsuite/gas/i386/x86-64-apx-inval.l: Ditto. * testsuite/gas/i386/x86-64-apx-inval.s: Ditto. * testsuite/gas/i386/x86-64.exp: Add apx nf tests. * testsuite/gas/i386/x86-64-apx-nf-intel.d: New test. * testsuite/gas/i386/x86-64-apx-nf.d: Ditto. * testsuite/gas/i386/x86-64-apx-nf.s: Ditto. opcodes/ChangeLog: * i386-dis-evex.h: Add %NF to the instructions that support APX NF and add new instruction imul, popcnt, tzcnt and lzcnt to EVEX table. * i386-dis-evex-reg.h: Ditto. * i386-dis.c (struct instr_info): Add nf. (struct dis386): Add "NF" for EVEX.NF. (get_valid_dis386): Set ins->vex.nf and report bad-nf for illegal case. (print_insn): Handle ins.vex.nf. (putop): Handle "%NF". * i386-opc.h (Prefix_NF): New. * i386-opc.tbl: Added new entries to support full APX NF instructions. * i386-mnem.h: Regenerated. * i386-tbl.h: Regenerated.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/i386-dis-evex-reg.h50
-rw-r--r--opcodes/i386-dis-evex.h76
-rw-r--r--opcodes/i386-dis.c110
-rw-r--r--opcodes/i386-mnem.h9
-rw-r--r--opcodes/i386-opc.h1
-rw-r--r--opcodes/i386-opc.tbl23
-rw-r--r--opcodes/i386-tbl.h953
7 files changed, 825 insertions, 397 deletions
diff --git a/opcodes/i386-dis-evex-reg.h b/opcodes/i386-dis-evex-reg.h
index 81bb416..7408295 100644
--- a/opcodes/i386-dis-evex-reg.h
+++ b/opcodes/i386-dis-evex-reg.h
@@ -51,33 +51,33 @@
},
/* REG_EVEX_MAP4_80 */
{
- { "addA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "orA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFaddA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NForA", { VexGb, Eb, Ib }, NO_PREFIX },
{ "adcA", { VexGb, Eb, Ib }, NO_PREFIX },
{ "sbbA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "andA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "subA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "xorA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFandA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFsubA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFxorA", { VexGb, Eb, Ib }, NO_PREFIX },
},
/* REG_EVEX_MAP4_81 */
{
- { "addQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
- { "orQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
+ { "%NFaddQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
+ { "%NForQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
{ "adcQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
{ "sbbQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
- { "andQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
- { "subQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
- { "xorQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
+ { "%NFandQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
+ { "%NFsubQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
+ { "%NFxorQ", { VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
},
/* REG_EVEX_MAP4_83 */
{
- { "addQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
- { "orQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
+ { "%NFaddQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
+ { "%NForQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
{ "adcQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
{ "sbbQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
- { "andQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
- { "subQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
- { "xorQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
+ { "%NFandQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
+ { "%NFsubQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
+ { "%NFxorQ", { VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
},
/* REG_EVEX_MAP4_8F */
{
@@ -88,24 +88,32 @@
{ Bad_Opcode },
{ Bad_Opcode },
{ "notA", { VexGb, Eb }, NO_PREFIX },
- { "negA", { VexGb, Eb }, NO_PREFIX },
+ { "%NFnegA", { VexGb, Eb }, NO_PREFIX },
+ { "%NFmulA", { Eb }, NO_PREFIX },
+ { "%NFimulA", { Eb }, NO_PREFIX },
+ { "%NFdivA", { Eb }, NO_PREFIX },
+ { "%NFidivA", { Eb }, NO_PREFIX },
},
/* REG_EVEX_MAP4_F7 */
{
{ Bad_Opcode },
{ Bad_Opcode },
{ "notQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
- { "negQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFnegQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFmulQ", { Ev }, PREFIX_NP_OR_DATA },
+ { "%NFimulQ", { Ev }, PREFIX_NP_OR_DATA },
+ { "%NFdivQ", { Ev }, PREFIX_NP_OR_DATA },
+ { "%NFidivQ", { Ev }, PREFIX_NP_OR_DATA },
},
/* REG_EVEX_MAP4_FE */
{
- { "incA", { VexGb, Eb }, NO_PREFIX },
- { "decA", { VexGb, Eb }, NO_PREFIX },
+ { "%NFincA", { VexGb, Eb }, NO_PREFIX },
+ { "%NFdecA", { VexGb, Eb }, NO_PREFIX },
},
/* REG_EVEX_MAP4_FF */
{
- { "incQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
- { "decQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFincQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFdecQ", { VexGv, Ev }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index b3258af..7a41c76 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -875,64 +875,64 @@ static const struct dis386 evex_table[][256] = {
/* EVEX_MAP4_ */
{
/* 00 */
- { "addB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "addS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "addB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "addS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NFaddB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "%NFaddS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "%NFaddB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "%NFaddS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 08 */
- { "orB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "orS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "orB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "orS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NForB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "%NForS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "%NForB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "%NForS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 10 */
- { "adcB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "adcS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "adcB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "adcS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "adcB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "adcS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "adcB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "adcS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 18 */
- { "sbbB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "sbbS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "sbbB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "sbbS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "sbbB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "sbbS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "sbbB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "sbbS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 20 */
- { "andB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "andS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "andB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "andS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
- { "shldS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFandB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "%NFandS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "%NFandB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "%NFandS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NFshldS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 28 */
- { "subB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "subS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "subB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "subS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
- { "shrdS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFsubB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "%NFsubS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "%NFsubB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "%NFsubS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NFshrdS", { VexGv, Ev, Gv, Ib }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
/* 30 */
- { "xorB", { VexGb, Eb, Gb }, NO_PREFIX },
- { "xorS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
- { "xorB", { VexGb, Gb, EbS }, NO_PREFIX },
- { "xorS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NFxorB", { VexGb, Eb, Gb }, NO_PREFIX },
+ { "%NFxorS", { VexGv, Ev, Gv }, PREFIX_NP_OR_DATA },
+ { "%NFxorB", { VexGb, Gb, EbS }, NO_PREFIX },
+ { "%NFxorS", { VexGv, Gv, EvS }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
@@ -993,9 +993,9 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
/* 68 */
{ Bad_Opcode },
+ { "%NFimulS", { Gv, Ev, Iv }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { "%NFimulS", { Gv, Ev, sIb }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
@@ -1028,7 +1028,7 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
/* 88 */
- { Bad_Opcode },
+ { "%NFpopcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
@@ -1060,7 +1060,7 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { "shldS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
+ { "%NFshldS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
/* A8 */
@@ -1069,9 +1069,9 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { "shrdS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
+ { "%NFshrdS", { VexGv, Ev, Gv, CL }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
- { "imulS", { VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFimulS", { VexGv, Gv, Ev }, PREFIX_NP_OR_DATA },
/* B0 */
{ Bad_Opcode },
{ Bad_Opcode },
@@ -1149,8 +1149,8 @@ static const struct dis386 evex_table[][256] = {
{ PREFIX_TABLE (PREFIX_EVEX_MAP4_F1) },
{ PREFIX_TABLE (PREFIX_EVEX_MAP4_F2) },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { "%NFtzcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
+ { "%NFlzcntS", { Gv, Ev }, PREFIX_NP_OR_DATA },
{ REG_TABLE (REG_EVEX_MAP4_F6) },
{ REG_TABLE (REG_EVEX_MAP4_F7) },
/* F8 */
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index b86e6ff..5d2ec6d 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -225,6 +225,7 @@ struct instr_info
bool zeroing;
bool b;
bool no_broadcast;
+ bool nf;
}
vex;
@@ -1808,6 +1809,7 @@ struct dis386 {
"XV" => print "{vex} " pseudo prefix
"XE" => print "{evex} " pseudo prefix if no EVEX-specific functionality is
is used by an EVEX-encoded (AVX512VL) instruction.
+ "NF" => print "{nf} " pseudo prefix when EVEX.NF = 1.
"YK" keep unused, to avoid ambiguity with the combined use of Y and K.
"YX" keep unused, to avoid ambiguity with the combined use of Y and X.
"LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond
@@ -2612,25 +2614,25 @@ static const struct dis386 reg_table[][8] = {
},
/* REG_C0 */
{
- { "rolA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "rorA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFrolA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFrorA", { VexGb, Eb, Ib }, NO_PREFIX },
{ "rclA", { VexGb, Eb, Ib }, NO_PREFIX },
{ "rcrA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "shlA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "shrA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "shlA", { VexGb, Eb, Ib }, NO_PREFIX },
- { "sarA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFshrA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, Ib }, NO_PREFIX },
+ { "%NFsarA", { VexGb, Eb, Ib }, NO_PREFIX },
},
/* REG_C1 */
{
- { "rolQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
- { "rorQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFrolQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFrorQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
{ "rclQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
{ "rcrQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
- { "shrQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
- { "sarQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFshrQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
+ { "%NFsarQ", { VexGv, Ev, Ib }, PREFIX_NP_OR_DATA },
},
/* REG_C6 */
{
@@ -2656,47 +2658,47 @@ static const struct dis386 reg_table[][8] = {
},
/* REG_D0 */
{
- { "rolA", { VexGb, Eb, I1 }, NO_PREFIX },
- { "rorA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFrolA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFrorA", { VexGb, Eb, I1 }, NO_PREFIX },
{ "rclA", { VexGb, Eb, I1 }, NO_PREFIX },
{ "rcrA", { VexGb, Eb, I1 }, NO_PREFIX },
- { "shlA", { VexGb, Eb, I1 }, NO_PREFIX },
- { "shrA", { VexGb, Eb, I1 }, NO_PREFIX },
- { "shlA", { VexGb, Eb, I1 }, NO_PREFIX },
- { "sarA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFshrA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, I1 }, NO_PREFIX },
+ { "%NFsarA", { VexGb, Eb, I1 }, NO_PREFIX },
},
/* REG_D1 */
{
- { "rolQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
- { "rorQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFrolQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFrorQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
{ "rclQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
{ "rcrQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
- { "shrQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
- { "sarQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFshrQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
+ { "%NFsarQ", { VexGv, Ev, I1 }, PREFIX_NP_OR_DATA },
},
/* REG_D2 */
{
- { "rolA", { VexGb, Eb, CL }, NO_PREFIX },
- { "rorA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFrolA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFrorA", { VexGb, Eb, CL }, NO_PREFIX },
{ "rclA", { VexGb, Eb, CL }, NO_PREFIX },
{ "rcrA", { VexGb, Eb, CL }, NO_PREFIX },
- { "shlA", { VexGb, Eb, CL }, NO_PREFIX },
- { "shrA", { VexGb, Eb, CL }, NO_PREFIX },
- { "shlA", { VexGb, Eb, CL }, NO_PREFIX },
- { "sarA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFshrA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFshlA", { VexGb, Eb, CL }, NO_PREFIX },
+ { "%NFsarA", { VexGb, Eb, CL }, NO_PREFIX },
},
/* REG_D3 */
{
- { "rolQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
- { "rorQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFrolQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFrorQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
{ "rclQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
{ "rcrQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
- { "shrQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
- { "shlQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
- { "sarQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFshrQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFshlQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
+ { "%NFsarQ", { VexGv, Ev, CL }, PREFIX_NP_OR_DATA },
},
/* REG_F6 */
{
@@ -2937,9 +2939,9 @@ static const struct dis386 reg_table[][8] = {
/* REG_VEX_0F38F3_L_0_P_0 */
{
{ Bad_Opcode },
- { "blsrS", { VexGdq, Edq }, 0 },
- { "blsmskS", { VexGdq, Edq }, 0 },
- { "blsiS", { VexGdq, Edq }, 0 },
+ { "%NFblsrS", { VexGdq, Edq }, 0 },
+ { "%NFblsmskS", { VexGdq, Edq }, 0 },
+ { "%NFblsiS", { VexGdq, Edq }, 0 },
},
/* REG_VEX_MAP7_F8_L_0_W_0 */
{
@@ -4089,7 +4091,7 @@ static const struct dis386 prefix_table[][4] = {
/* PREFIX_VEX_0F38F2_L_0 */
{
- { "andnS", { Gdq, VexGdq, Edq }, 0 },
+ { "%NFandnS", { Gdq, VexGdq, Edq }, 0 },
},
/* PREFIX_VEX_0F38F3_L_0 */
@@ -4099,7 +4101,7 @@ static const struct dis386 prefix_table[][4] = {
/* PREFIX_VEX_0F38F5_L_0 */
{
- { "bzhiS", { Gdq, Edq, VexGdq }, 0 },
+ { "%NFbzhiS", { Gdq, Edq, VexGdq }, 0 },
{ "pextS", { Gdq, VexGdq, Edq }, 0 },
{ Bad_Opcode },
{ "pdepS", { Gdq, VexGdq, Edq }, 0 },
@@ -4115,7 +4117,7 @@ static const struct dis386 prefix_table[][4] = {
/* PREFIX_VEX_0F38F7_L_0 */
{
- { "bextrS", { Gdq, Edq, VexGdq }, 0 },
+ { "%NFbextrS", { Gdq, Edq, VexGdq }, 0 },
{ "sarxS", { Gdq, Edq, VexGdq }, 0 },
{ "shlxS", { Gdq, Edq, VexGdq }, 0 },
{ "shrxS", { Gdq, Edq, VexGdq }, 0 },
@@ -9140,6 +9142,9 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
ins->vex.v = *ins->codep & 0x8;
ins->vex.mask_register_specifier = *ins->codep & 0x7;
ins->vex.zeroing = *ins->codep & 0x80;
+ /* Set the NF bit for EVEX-Promoted instructions, this bit will be cleared
+ when it's an evex_default one. */
+ ins->vex.nf = *ins->codep & 0x4;
if (ins->address_mode != mode_64bit)
{
@@ -9593,6 +9598,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
&& ins.vex.prefix == DATA_PREFIX_OPCODE)
sizeflag ^= DFLAG;
+ if(ins.evex_type == evex_default)
+ ins.vex.nf = false;
+ else
+ /* For EVEX-promoted formats, we need to clear EVEX.NF (ccmp and ctest
+ are cleared separately.) in mask_register_specifier and keep the low
+ 2 bits of mask_register_specifier to report errors for invalid cases
+ . */
+ ins.vex.mask_register_specifier &= 0x3;
+
if (dp != NULL && putop (&ins, dp->name, sizeflag) == 0)
{
if (!get_sib (&ins, sizeflag))
@@ -9645,6 +9659,9 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
oappend (&ins, "/(bad)");
}
}
+ /* vex.nf is cleared after being consumed. */
+ if (ins.vex.nf)
+ oappend (&ins, "{bad-nf}");
/* Check whether rounding control was enabled for an insn not
supporting it, when evex.b is not treated as evex.nd. */
@@ -10557,6 +10574,15 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
}
else if (l == 1 && last[0] == 'C')
break;
+ else if (l == 1 && last[0] == 'N')
+ {
+ if (ins->vex.nf)
+ {
+ oappend (ins, "{nf} ");
+ /* This bit needs to be cleared after it is consumed. */
+ ins->vex.nf = false;
+ }
+ }
else
abort ();
break;
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 940ec23..b47db51 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -2365,7 +2365,8 @@ extern const char i386_mnemonics[];
#define MN__load_ 0x476b
#define MN__store_ 0x4772
#define MN__nooptimize_ 0x477a
-#define MN__rex_ 0x4787
-#define MN__evex_ 0x478d
-#define MN__vex_ 0x4794
-#define MN__insn 0x479a
+#define MN__nf_ 0x4787
+#define MN__rex_ 0x478c
+#define MN__evex_ 0x4792
+#define MN__vex_ 0x4799
+#define MN__insn 0x479f
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 0a2c44a..ce54c9d 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -1018,6 +1018,7 @@ typedef struct insn_template
#define Prefix_REX 8 /* {rex} */
#define Prefix_REX2 9 /* {rex2} */
#define Prefix_NoOptimize 10 /* {nooptimize} */
+#define Prefix_NF 11 /* {nf} */
/* the bits in opcode_modifier are used to generate the final opcode from
the base_opcode. These bits also are used to detect alternate forms of
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 5d0c81b..fb2e9e9 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -320,17 +320,20 @@ sti, 0xfb, 0, NoSuf, {}
<alu2>, <alu2:opc> << 3, APX_F, D|<alu2:c>|W|CheckOperandSize|Modrm|No_sSuf|DstVVVV|EVexMap4|<alu2:nf>|<alu2:optz>, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
<alu2>, <alu2:opc> << 3, 0, D|W|CheckOperandSize|Modrm|No_sSuf|HLEPrefixLock|<alu2:optz>|<alu2:optt>, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<alu2>, <alu2:opc> << 3, APX_F, D|W|CheckOperandSize|Modrm|No_sSuf|EVexMap4|<alu2:nf>, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<alu2>, 0x83/<alu2:opc>, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|<alu2:nf>, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
<alu2>, 0x83/<alu2:opc>, 0, Modrm|No_bSuf|No_sSuf|HLEPrefixLock|<alu2:opti>, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<alu2>, 0x83/<alu2:opc>, 0, Modrm|No_bSuf|No_sSuf|EVexMap4|<alu2:nf>, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<alu2>, 0x04 | (<alu2:opc> << 3), 0, W|No_sSuf|<alu2:opti>, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
<alu2>, 0x80/<alu2:opc>, APX_F, W|Modrm|CheckOperandSize|No_sSuf|DstVVVV|EVexMap4|<alu2:nf>, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
<alu2>, 0x80/<alu2:opc>, 0, W|Modrm|No_sSuf|HLEPrefixLock|<alu2:opti>, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
-<alu2>, 0x80/<alu2:opc>, APX_F, W|Modrm|EVexMap4|No_sSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<alu2>, 0x80/<alu2:opc>, APX_F, W|Modrm|EVexMap4|No_sSuf|<alu2:nf>, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<alu2>
// clr with 1 operand is really xor with 2 operands.
clr, 0x30, 0, W|Modrm|No_sSuf|RegKludge|Optimize, { Reg8|Reg16|Reg32|Reg64 }
+clr, 0x30, APX_F, W|Modrm|No_sSuf|RegKludge|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64 }
cmp, 0x38, 0, D|W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
cmp, 0x83/7, 0, Modrm|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
@@ -346,6 +349,7 @@ test, 0xf6/0, 0, W|Modrm|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16
<incdec>, 0x40 | (<incdec:opc> << 3), No64, No_bSuf|No_sSuf|No_qSuf, { Reg16|Reg32 }
<incdec>, 0xfe/<incdec:opc>, APX_F, W|Modrm|No_sSuf|CheckOperandSize|DstVVVV|EVexMap4|NF, {Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64}
<incdec>, 0xfe/<incdec:opc>, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<incdec>, 0xfe/<incdec:opc>, APX_F, W|Modrm|No_sSuf|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<incdec>
@@ -353,6 +357,7 @@ test, 0xf6/0, 0, W|Modrm|No_sSuf|Optimize, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16
<alu1>, 0xf6/<alu1:opc>, APX_F, W|Modrm|CheckOperandSize|No_sSuf|DstVVVV|EVexMap4|<alu1:nf>, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
<alu1>, 0xf6/<alu1:opc>, 0, W|Modrm|No_sSuf|HLEPrefixLock, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<alu1>, 0xf6/<alu1:opc>, APX_F, W|Modrm|No_sSuf|EVexMap4|<alu1:nf>, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<alu1>
@@ -388,22 +393,30 @@ cqto, 0x99, x64, Size64|NoSuf, {}
<mul:opc, mul:4, imul:5>
<mul>, 0xf6/<mul:opc>, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<mul>, 0xf6/<mul:opc>, APX_F, W|Modrm|No_sSuf|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
imul, 0xaf, APX_F, C|Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
imul, 0xfaf, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 0xaf, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
imul, 0x6b, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 0x6b, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
imul, 0x69, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 0x69, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// imul with 2 operands mimics imul with 3 by putting the register in
// both i.rm.reg & i.rm.regmem fields. RegKludge enables this
// transformation.
imul, 0x6b, i186, Modrm|No_bSuf|No_sSuf|RegKludge, { Imm8S, Reg16|Reg32|Reg64 }
+imul, 0x6b, APX_F, Modrm|No_bSuf|No_sSuf|RegKludge|EVexMap4|NF, { Imm8S, Reg16|Reg32|Reg64 }
imul, 0x69, i186, Modrm|No_bSuf|No_sSuf|RegKludge, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64 }
+imul, 0x69, APX_F, Modrm|No_bSuf|No_sSuf|RegKludge|EVexMap4|NF, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64 }
<mul>
<div:opc, div:6, idiv:7>
<div>, 0xf6/<div:opc>, 0, W|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+<div>, 0xf6/<div:opc>, APX_F, W|Modrm|No_sSuf|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<div>, 0xf6/<div:opc>, 0, W|CheckOperandSize|Modrm|No_sSuf, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+<div>, 0xf6/<div:opc>, APX_F, W|CheckOperandSize|Modrm|No_sSuf|EVexMap4|NF, { Reg8|Reg16|Reg32|Reg64|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
<div>
@@ -434,8 +447,10 @@ imul, 0x69, i186, Modrm|No_bSuf|No_sSuf|RegKludge, { Imm16|Imm32|Imm32S, Reg16|R
sh<shd>d, 0x24 | <shd:opc>, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
sh<shd>d, 0x0fa4 | <shd:opc>, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+sh<shd>d, 0x24 | <shd:opc>, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
sh<shd>d, 0xa5 | <shd:opc>, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
sh<shd>d, 0x0fa5 | <shd:opc>, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+sh<shd>d, 0xa5 | <shd:opc>, APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
sh<shd>d, 0x0fa5 | <shd:opc>, i386, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
<shd>
@@ -896,7 +911,8 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {}
<pseudopfx:ident:cpu, disp8:Disp8:0, disp16:Disp16:No64, disp32:Disp32:i386, +
load:Load:0, store:Store:0, +
vex:VEX:0, vex2:VEX:0, vex3:VEX3:0, evex:EVEX:0, +
- rex:REX:x64, rex2:REX2:APX_F, nooptimize:NoOptimize:0>
+ rex:REX:x64, rex2:REX2:APX_F, nf:NF:APX_F, +
+ nooptimize:NoOptimize:0>
{<pseudopfx>}, PSEUDO_PREFIX/Prefix_<pseudopfx:ident>, <pseudopfx:cpu>, NoSuf|IsPrefix, {}
@@ -1944,6 +1960,7 @@ blsi, 0xf3/3, APX_F(BMI), Modrm|CheckOperandSize|Vex128|EVex128|Space0F38|VexVVV
blsmsk, 0xf3/2, APX_F(BMI), Modrm|CheckOperandSize|Vex128|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf|NF, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
blsr, 0xf3/1, APX_F(BMI), Modrm|CheckOperandSize|Vex128|EVex128|Space0F38|VexVVVV|No_bSuf|No_wSuf|No_sSuf|NF, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64 }
tzcnt, 0xf30fbc, BMI, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+tzcnt, 0xf4, BMI&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// TBM instructions
@@ -2021,9 +2038,11 @@ insertq, 0xf20f78, SSE4a, Modrm|NoSuf, { Imm8, Imm8, RegXMM, RegXMM }
// LZCNT instruction
lzcnt, 0xf30fbd, LZCNT, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lzcnt, 0xf5, LZCNT&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// POPCNT instruction
popcnt, 0xf30fb8, POPCNT, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+popcnt, 0x88, POPCNT&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// VIA PadLock extensions.
xstore-rng, 0xfa7c0, PadLock, NoSuf|RepPrefixOk, {}
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index bc98f5d..3b1acab 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -814,6 +814,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_add, 0x00 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_add, 0x83, 3, SPACE_EVEXMAP4, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -836,6 +846,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_add, 0x83, 2, SPACE_EVEXMAP4, 0,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_add, 0x04 | (0 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -870,7 +890,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } } } },
{ MN_add, 0x80, 2, SPACE_EVEXMAP4, 0,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
@@ -900,6 +920,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_or, 0x01 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_or, 0x83, 3, SPACE_EVEXMAP4, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -922,6 +952,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_or, 0x83, 2, SPACE_EVEXMAP4, 1,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_or, 0x04 | (1 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -956,7 +996,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } } } },
{ MN_or, 0x80, 2, SPACE_EVEXMAP4, 1,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
@@ -986,6 +1026,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_adc, 0x02 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_adc, 0x83, 3, SPACE_EVEXMAP4, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1008,6 +1058,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_adc, 0x83, 2, SPACE_EVEXMAP4, 2,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_adc, 0x04 | (2 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1072,6 +1132,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_sbb, 0x03 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_sbb, 0x83, 3, SPACE_EVEXMAP4, 3,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1094,6 +1164,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_sbb, 0x83, 2, SPACE_EVEXMAP4, 3,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_sbb, 0x04 | (3 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1158,6 +1238,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_and, 0x04 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_and, 0x83, 3, SPACE_EVEXMAP4, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -1180,6 +1270,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_and, 0x83, 2, SPACE_EVEXMAP4, 4,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_and, 0x04 | (4 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -1214,7 +1314,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } } } },
{ MN_and, 0x80, 2, SPACE_EVEXMAP4, 4,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
@@ -1244,6 +1344,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_sub, 0x05 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_sub, 0x83, 3, SPACE_EVEXMAP4, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -1266,6 +1376,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_sub, 0x83, 2, SPACE_EVEXMAP4, 5,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_sub, 0x04 | (5 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1300,7 +1420,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } } } },
{ MN_sub, 0x80, 2, SPACE_EVEXMAP4, 5,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
@@ -1330,6 +1450,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_xor, 0x06 <<3, 2, SPACE_EVEXMAP4, None,
+ { 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_xor, 0x83, 3, SPACE_EVEXMAP4, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -1352,6 +1482,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_xor, 0x83, 2, SPACE_EVEXMAP4, 6,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_xor, 0x04 | (6 <<3), 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1386,7 +1526,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } } } },
{ MN_xor, 0x80, 2, SPACE_EVEXMAP4, 6,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
@@ -1402,6 +1542,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_clr, 0x30, 1, SPACE_EVEXMAP4, None,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_cmp, 0x38, 2, SPACE_BASE, None,
{ 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1498,6 +1646,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_inc, 0xfe, 1, SPACE_EVEXMAP4, 0,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_dec, 0x40 | (1 <<3), 1, SPACE_BASE, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -1524,6 +1680,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_dec, 0xfe, 1, SPACE_EVEXMAP4, 1,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_not, 0xf6, 2, SPACE_EVEXMAP4, 2,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1542,6 +1706,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_not, 0xf6, 1, SPACE_EVEXMAP4, 2,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_neg, 0xf6, 2, SPACE_EVEXMAP4, 3,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -1560,6 +1732,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_neg, 0xf6, 1, SPACE_EVEXMAP4, 3,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_aaa, 0x37, 0, SPACE_BASE, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1728,6 +1908,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_mul, 0xf6, 1, SPACE_EVEXMAP4, 4,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_imul, 0xf6, 1, SPACE_BASE, 5,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1736,6 +1924,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_imul, 0xf6, 1, SPACE_EVEXMAP4, 5,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_imul, 0xaf, 3, SPACE_EVEXMAP4, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
@@ -1758,6 +1954,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_imul, 0xaf, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_imul, 0x6b, 3, SPACE_BASE, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1770,6 +1976,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_imul, 0x6b, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_imul, 0x69, 3, SPACE_BASE, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1782,6 +2000,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_imul, 0x69, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_imul, 0x6b, 2, SPACE_BASE, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1792,6 +2022,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_imul, 0x6b, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_imul, 0x69, 2, SPACE_BASE, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1802,6 +2042,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_imul, 0x69, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_div, 0xf6, 1, SPACE_BASE, 6,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1810,6 +2060,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_div, 0xf6, 1, SPACE_EVEXMAP4, 6,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_div, 0xf6, 2, SPACE_BASE, 6,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1820,6 +2078,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_div, 0xf6, 2, SPACE_EVEXMAP4, 6,
+ { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_idiv, 0xf6, 1, SPACE_BASE, 7,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1828,6 +2096,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_idiv, 0xf6, 1, SPACE_EVEXMAP4, 7,
+ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_idiv, 0xf6, 2, SPACE_BASE, 7,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1838,6 +2114,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_idiv, 0xf6, 2, SPACE_EVEXMAP4, 7,
+ { 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_rol, 0xd0, 3, SPACE_EVEXMAP4, 0,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -2696,6 +2982,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_shld, 0x24 | 0, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_shld, 0xa5 | 0, 4, SPACE_EVEXMAP4, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -2722,6 +3020,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_shld, 0xa5 | 0, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_shld, 0xa5 | 0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2758,6 +3068,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_shrd, 0x24 | 8, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_shrd, 0xa5 | 8, 4, SPACE_EVEXMAP4, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
@@ -2784,6 +3106,18 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
+ { MN_shrd, 0xa5 | 8, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_shrd, 0xa5 | 8, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6200,6 +6534,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN__nf_, 0x00, 0, SPACE_BASE, Prefix_NF,
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN__nooptimize_, 0x00, 0, SPACE_BASE, Prefix_NoOptimize,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -30490,6 +30832,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_tzcnt, 0xf4, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_blcfill, 0x01, 2, SPACE_XOP09, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -31066,6 +31418,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_lzcnt, 0xf5, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 25, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_popcnt, 0xb8, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -31076,6 +31438,16 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_popcnt, 0x88, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 0 },
+ { { 26, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_xstore_rng, 0xa7c0, 0, SPACE_0F, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41402,295 +41774,295 @@ static const i386_op_off_t i386_op_sets[] =
48, 49, 50, 52, 56, 60, 61, 62,
63, 65, 67, 69, 70, 71, 72, 73,
74, 76, 78, 80, 82, 83, 84, 85,
- 93, 101, 109, 117, 125, 133, 141, 142,
- 146, 149, 152, 155, 157, 159, 160, 161,
- 162, 163, 165, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 187, 189, 191, 201, 211, 221, 231,
- 241, 251, 261, 271, 276, 281, 290, 293,
- 301, 304, 310, 312, 314, 316, 318, 319,
- 320, 321, 322, 323, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343,
- 344, 345, 346, 347, 348, 349, 350, 351,
- 353, 355, 357, 359, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 383, 384, 385, 386, 387, 388,
- 389, 390, 391, 393, 395, 397, 399, 402,
- 405, 407, 409, 412, 415, 418, 421, 423,
- 424, 425, 427, 429, 431, 433, 434, 435,
- 436, 437, 438, 439, 440, 441, 443, 445,
- 447, 449, 451, 453, 454, 456, 458, 460,
- 462, 464, 466, 468, 470, 472, 476, 478,
- 479, 480, 481, 484, 485, 489, 491, 492,
- 493, 494, 496, 500, 501, 505, 506, 507,
- 509, 511, 512, 513, 514, 515, 516, 517,
- 518, 519, 520, 521, 525, 526, 529, 533,
- 534, 540, 544, 545, 551, 555, 556, 559,
- 563, 564, 570, 574, 575, 581, 582, 583,
- 584, 585, 586, 587, 588, 589, 590, 591,
- 592, 593, 594, 595, 596, 597, 598, 599,
- 600, 601, 602, 603, 604, 607, 610, 611,
- 612, 613, 614, 615, 616, 617, 618, 619,
- 620, 621, 622, 623, 624, 625, 626, 627,
- 628, 629, 630, 631, 632, 633, 634, 635,
- 636, 637, 638, 639, 640, 641, 642, 643,
- 644, 645, 646, 647, 648, 649, 650, 651,
- 652, 653, 654, 655, 656, 657, 658, 659,
- 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 672, 673, 674, 675,
- 676, 677, 678, 679, 680, 681, 682, 683,
- 684, 685, 686, 687, 688, 689, 690, 691,
- 692, 693, 694, 695, 696, 697, 698, 699,
- 700, 701, 702, 703, 704, 705, 707, 709,
+ 95, 105, 115, 125, 135, 145, 155, 157,
+ 161, 164, 168, 172, 175, 178, 179, 180,
+ 181, 182, 184, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198,
+ 200, 213, 217, 221, 231, 241, 251, 261,
+ 271, 281, 291, 301, 308, 315, 324, 327,
+ 335, 338, 344, 346, 348, 350, 352, 353,
+ 354, 355, 356, 357, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 367, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 383, 384, 385,
+ 387, 389, 391, 393, 395, 396, 397, 398,
+ 399, 400, 401, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422,
+ 423, 424, 425, 427, 429, 431, 433, 436,
+ 439, 441, 443, 446, 449, 452, 455, 457,
+ 458, 459, 461, 463, 465, 467, 468, 469,
+ 470, 471, 472, 473, 474, 475, 477, 479,
+ 481, 483, 485, 487, 488, 490, 492, 494,
+ 496, 498, 500, 502, 504, 506, 510, 512,
+ 513, 514, 515, 518, 519, 523, 525, 526,
+ 527, 528, 530, 534, 535, 539, 540, 541,
+ 543, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 554, 555, 559, 560, 563, 567,
+ 568, 574, 578, 579, 585, 589, 590, 593,
+ 597, 598, 604, 608, 609, 615, 616, 617,
+ 618, 619, 620, 621, 622, 623, 624, 625,
+ 626, 627, 628, 629, 630, 631, 632, 633,
+ 634, 635, 636, 637, 638, 641, 644, 645,
+ 646, 647, 648, 649, 650, 651, 652, 653,
+ 654, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 673, 674, 675, 676, 677,
+ 678, 679, 680, 681, 682, 683, 684, 685,
+ 686, 687, 688, 689, 690, 691, 692, 693,
+ 694, 695, 696, 697, 698, 699, 700, 701,
+ 702, 703, 704, 705, 706, 707, 708, 709,
710, 711, 712, 713, 714, 715, 716, 717,
- 718, 719, 721, 723, 725, 727, 729, 731,
- 733, 735, 737, 739, 741, 743, 745, 747,
- 749, 751, 753, 755, 757, 759, 761, 763,
- 765, 767, 769, 771, 773, 775, 777, 779,
- 780, 781, 782, 783, 784, 785, 786, 787,
- 788, 789, 790, 791, 794, 797, 800, 803,
- 806, 809, 810, 811, 812, 813, 814, 815,
- 821, 829, 832, 835, 838, 841, 844, 847,
- 850, 853, 856, 859, 862, 865, 868, 871,
- 874, 877, 880, 883, 886, 889, 892, 895,
- 898, 904, 910, 916, 922, 928, 934, 940,
- 946, 949, 952, 955, 958, 961, 964, 967,
- 970, 973, 976, 979, 982, 985, 988, 991,
- 993, 995, 997, 999, 1001, 1003, 1005, 1007,
- 1009, 1011, 1013, 1015, 1017, 1019, 1021, 1023,
- 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1038,
- 1039, 1045, 1047, 1048, 1050, 1052, 1054, 1056,
- 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1072,
- 1074, 1077, 1079, 1081, 1082, 1084, 1087, 1089,
- 1091, 1093, 1095, 1098, 1101, 1108, 1114, 1117,
- 1120, 1123, 1126, 1129, 1132, 1133, 1134, 1135,
- 1136, 1139, 1140, 1142, 1144, 1146, 1148, 1149,
- 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,
- 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181,
- 1183, 1185, 1187, 1189, 1191, 1193, 1195, 1197,
- 1199, 1201, 1203, 1205, 1207, 1209, 1211, 1213,
- 1215, 1218, 1224, 1226, 1228, 1230, 1232, 1234,
- 1236, 1238, 1241, 1244, 1246, 1248, 1251, 1253,
- 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269,
- 1271, 1273, 1275, 1277, 1279, 1281, 1283, 1284,
- 1286, 1288, 1290, 1292, 1294, 1296, 1297, 1299,
- 1301, 1303, 1305, 1307, 1309, 1310, 1311, 1314,
- 1316, 1318, 1320, 1322, 1324, 1326, 1328, 1330,
- 1332, 1334, 1336, 1338, 1340, 1342, 1344, 1346,
- 1348, 1350, 1351, 1352, 1355, 1357, 1358, 1359,
- 1360, 1361, 1362, 1363, 1365, 1367, 1368, 1369,
- 1370, 1371, 1374, 1377, 1380, 1383, 1386, 1389,
- 1392, 1395, 1398, 1401, 1404, 1407, 1410, 1413,
- 1416, 1419, 1422, 1425, 1428, 1430, 1432, 1436,
- 1440, 1442, 1444, 1448, 1450, 1452, 1454, 1456,
- 1460, 1462, 1464, 1468, 1470, 1472, 1474, 1478,
- 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494,
- 1496, 1498, 1500, 1502, 1504, 1506, 1508, 1510,
- 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
- 1528, 1530, 1532, 1534, 1536, 1538, 1542, 1546,
- 1548, 1550, 1554, 1555, 1556, 1557, 1558, 1559,
- 1560, 1561, 1562, 1564, 1566, 1568, 1570, 1572,
- 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588,
- 1590, 1592, 1594, 1596, 1598, 1599, 1600, 1602,
- 1604, 1606, 1608, 1609, 1610, 1611, 1612, 1614,
- 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631,
- 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1647,
- 1649, 1651, 1653, 1655, 1657, 1659, 1661, 1663,
- 1665, 1667, 1669, 1671, 1673, 1675, 1677, 1679,
- 1681, 1683, 1685, 1687, 1689, 1691, 1693, 1695,
- 1697, 1699, 1701, 1703, 1705, 1707, 1709, 1711,
- 1713, 1715, 1717, 1719, 1721, 1723, 1725, 1727,
- 1729, 1731, 1733, 1735, 1737, 1739, 1741, 1743,
- 1745, 1747, 1749, 1751, 1753, 1755, 1757, 1759,
- 1761, 1763, 1765, 1767, 1769, 1771, 1773, 1775,
- 1777, 1779, 1781, 1783, 1785, 1787, 1789, 1791,
- 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807,
- 1809, 1811, 1813, 1815, 1817, 1819, 1821, 1823,
- 1825, 1827, 1829, 1831, 1833, 1835, 1837, 1839,
- 1841, 1843, 1845, 1847, 1849, 1851, 1853, 1855,
- 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1871,
- 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887,
- 1889, 1891, 1893, 1895, 1897, 1899, 1901, 1903,
- 1905, 1907, 1909, 1911, 1913, 1915, 1917, 1919,
- 1921, 1923, 1925, 1927, 1929, 1931, 1933, 1935,
- 1937, 1939, 1941, 1943, 1945, 1947, 1949, 1951,
- 1953, 1955, 1957, 1959, 1961, 1963, 1965, 1967,
- 1969, 1971, 1973, 1975, 1977, 1979, 1981, 1983,
- 1985, 1987, 1989, 1991, 1993, 1995, 1997, 1999,
- 2004, 2006, 2011, 2013, 2015, 2020, 2022, 2024,
- 2026, 2031, 2033, 2035, 2037, 2041, 2047, 2049,
- 2054, 2056, 2058, 2060, 2062, 2064, 2066, 2068,
- 2070, 2072, 2073, 2074, 2076, 2078, 2079, 2080,
- 2081, 2082, 2084, 2086, 2087, 2088, 2089, 2091,
- 2093, 2095, 2097, 2099, 2101, 2103, 2105, 2107,
- 2109, 2111, 2113, 2115, 2119, 2120, 2121, 2123,
- 2127, 2131, 2133, 2137, 2141, 2142, 2143, 2145,
- 2147, 2149, 2151, 2156, 2160, 2164, 2166, 2168,
- 2170, 2172, 2173, 2175, 2177, 2179, 2181, 2183,
- 2185, 2187, 2189, 2191, 2193, 2195, 2197, 2199,
- 2201, 2203, 2205, 2207, 2209, 2211, 2213, 2215,
- 2217, 2218, 2219, 2221, 2223, 2224, 2225, 2228,
- 2231, 2234, 2237, 2239, 2241, 2243, 2245, 2247,
- 2249, 2250, 2251, 2252, 2254, 2258, 2260, 2262,
- 2268, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
- 2279, 2283, 2285, 2287, 2291, 2293, 2295, 2297,
- 2299, 2301, 2303, 2305, 2307, 2309, 2311, 2313,
- 2315, 2317, 2319, 2320, 2323, 2326, 2331, 2336,
- 2339, 2342, 2345, 2348, 2353, 2358, 2361, 2364,
- 2366, 2368, 2370, 2372, 2374, 2376, 2378, 2379,
- 2381, 2383, 2385, 2387, 2389, 2390, 2391, 2392,
- 2396, 2400, 2402, 2406, 2410, 2414, 2418, 2422,
- 2424, 2428, 2430, 2432, 2434, 2436, 2438, 2440,
- 2442, 2444, 2445, 2447, 2449, 2451, 2453, 2455,
- 2457, 2459, 2461, 2462, 2463, 2464, 2466, 2468,
- 2470, 2472, 2473, 2474, 2476, 2478, 2480, 2482,
- 2484, 2486, 2487, 2489, 2491, 2493, 2495, 2496,
- 2497, 2499, 2501, 2503, 2505, 2507, 2509, 2511,
- 2513, 2514, 2515, 2517, 2518, 2521, 2524, 2526,
- 2529, 2530, 2531, 2533, 2534, 2536, 2538, 2540,
- 2542, 2544, 2545, 2546, 2547, 2548, 2549, 2552,
- 2557, 2562, 2567, 2572, 2575, 2580, 2585, 2587,
- 2589, 2591, 2593, 2594, 2595, 2597, 2599, 2601,
- 2603, 2605, 2607, 2609, 2610, 2611, 2612, 2613,
- 2614, 2615, 2620, 2625, 2626, 2627, 2628, 2629,
- 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637,
- 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645,
- 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653,
- 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661,
- 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669,
- 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677,
- 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685,
- 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693,
- 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701,
- 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709,
- 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717,
- 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725,
- 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733,
- 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741,
- 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
- 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757,
- 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765,
- 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773,
- 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781,
- 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789,
- 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797,
- 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805,
- 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813,
- 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821,
- 2822, 2823, 2824, 2825, 2826, 2828, 2830, 2831,
+ 718, 719, 720, 721, 722, 723, 724, 725,
+ 726, 727, 728, 729, 730, 731, 732, 733,
+ 734, 735, 736, 737, 738, 739, 740, 742,
+ 744, 745, 746, 747, 748, 749, 750, 751,
+ 752, 753, 754, 756, 758, 760, 762, 764,
+ 766, 768, 770, 772, 774, 776, 778, 780,
+ 782, 784, 786, 788, 790, 792, 794, 796,
+ 798, 800, 802, 804, 806, 808, 810, 812,
+ 814, 815, 816, 817, 818, 819, 820, 821,
+ 822, 823, 824, 825, 826, 829, 832, 835,
+ 838, 841, 844, 845, 846, 847, 848, 849,
+ 850, 856, 864, 867, 870, 873, 876, 879,
+ 882, 885, 888, 891, 894, 897, 900, 903,
+ 906, 909, 912, 915, 918, 921, 924, 927,
+ 930, 933, 939, 945, 951, 957, 963, 969,
+ 975, 981, 984, 987, 990, 993, 996, 999,
+ 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023,
+ 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040,
+ 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
+ 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072,
+ 1073, 1074, 1080, 1082, 1083, 1085, 1087, 1089,
+ 1091, 1092, 1094, 1096, 1098, 1100, 1102, 1104,
+ 1107, 1109, 1112, 1114, 1116, 1117, 1119, 1122,
+ 1124, 1126, 1128, 1130, 1133, 1136, 1143, 1149,
+ 1152, 1155, 1158, 1161, 1164, 1167, 1168, 1169,
+ 1170, 1171, 1174, 1175, 1177, 1179, 1181, 1183,
+ 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198,
+ 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214,
+ 1216, 1218, 1220, 1222, 1224, 1226, 1228, 1230,
+ 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246,
+ 1248, 1250, 1253, 1259, 1261, 1263, 1265, 1267,
+ 1269, 1271, 1273, 1276, 1279, 1281, 1283, 1286,
+ 1288, 1290, 1292, 1294, 1296, 1298, 1300, 1302,
+ 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318,
+ 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1332,
+ 1334, 1336, 1338, 1340, 1342, 1344, 1345, 1346,
+ 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363,
+ 1365, 1367, 1369, 1371, 1373, 1375, 1377, 1379,
+ 1381, 1383, 1385, 1386, 1387, 1390, 1392, 1393,
+ 1394, 1395, 1396, 1397, 1398, 1400, 1402, 1403,
+ 1404, 1405, 1406, 1409, 1412, 1415, 1418, 1421,
+ 1424, 1427, 1430, 1433, 1436, 1439, 1442, 1445,
+ 1448, 1451, 1454, 1457, 1460, 1463, 1465, 1467,
+ 1471, 1475, 1477, 1479, 1483, 1485, 1487, 1489,
+ 1491, 1495, 1497, 1499, 1503, 1505, 1507, 1509,
+ 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527,
+ 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1543,
+ 1545, 1547, 1549, 1551, 1553, 1555, 1557, 1559,
+ 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1577,
+ 1581, 1583, 1585, 1589, 1590, 1591, 1592, 1593,
+ 1594, 1595, 1596, 1597, 1599, 1601, 1603, 1605,
+ 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621,
+ 1623, 1625, 1627, 1629, 1631, 1633, 1634, 1635,
+ 1637, 1639, 1641, 1643, 1644, 1645, 1646, 1647,
+ 1649, 1652, 1654, 1656, 1658, 1660, 1662, 1664,
+ 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680,
+ 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696,
+ 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712,
+ 1714, 1716, 1718, 1720, 1722, 1724, 1726, 1728,
+ 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744,
+ 1746, 1748, 1750, 1752, 1754, 1756, 1758, 1760,
+ 1762, 1764, 1766, 1768, 1770, 1772, 1774, 1776,
+ 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1792,
+ 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1808,
+ 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824,
+ 1826, 1828, 1830, 1832, 1834, 1836, 1838, 1840,
+ 1842, 1844, 1846, 1848, 1850, 1852, 1854, 1856,
+ 1858, 1860, 1862, 1864, 1866, 1868, 1870, 1872,
+ 1874, 1876, 1878, 1880, 1882, 1884, 1886, 1888,
+ 1890, 1892, 1894, 1896, 1898, 1900, 1902, 1904,
+ 1906, 1908, 1910, 1912, 1914, 1916, 1918, 1920,
+ 1922, 1924, 1926, 1928, 1930, 1932, 1934, 1936,
+ 1938, 1940, 1942, 1944, 1946, 1948, 1950, 1952,
+ 1954, 1956, 1958, 1960, 1962, 1964, 1966, 1968,
+ 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984,
+ 1986, 1988, 1990, 1992, 1994, 1996, 1998, 2000,
+ 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016,
+ 2018, 2020, 2022, 2024, 2026, 2028, 2030, 2032,
+ 2034, 2039, 2041, 2046, 2048, 2050, 2055, 2057,
+ 2059, 2061, 2066, 2068, 2070, 2072, 2076, 2082,
+ 2084, 2089, 2091, 2093, 2095, 2097, 2099, 2101,
+ 2103, 2105, 2107, 2108, 2109, 2111, 2113, 2114,
+ 2115, 2116, 2117, 2119, 2121, 2122, 2123, 2124,
+ 2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140,
+ 2142, 2144, 2146, 2148, 2150, 2154, 2155, 2156,
+ 2158, 2162, 2166, 2168, 2172, 2176, 2177, 2178,
+ 2180, 2182, 2184, 2186, 2191, 2195, 2199, 2201,
+ 2203, 2205, 2207, 2208, 2210, 2212, 2214, 2216,
+ 2218, 2220, 2222, 2224, 2226, 2228, 2230, 2232,
+ 2234, 2236, 2238, 2240, 2242, 2244, 2246, 2248,
+ 2250, 2252, 2253, 2254, 2256, 2258, 2259, 2260,
+ 2263, 2266, 2269, 2272, 2274, 2276, 2278, 2280,
+ 2282, 2284, 2285, 2286, 2287, 2289, 2293, 2295,
+ 2297, 2303, 2307, 2308, 2309, 2310, 2311, 2312,
+ 2313, 2314, 2318, 2320, 2322, 2326, 2328, 2330,
+ 2332, 2334, 2336, 2338, 2340, 2342, 2344, 2346,
+ 2348, 2350, 2352, 2354, 2355, 2358, 2361, 2366,
+ 2371, 2374, 2377, 2380, 2383, 2388, 2393, 2396,
+ 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413,
+ 2414, 2416, 2418, 2420, 2422, 2424, 2425, 2426,
+ 2427, 2431, 2435, 2437, 2441, 2445, 2449, 2453,
+ 2457, 2459, 2463, 2465, 2467, 2469, 2471, 2473,
+ 2475, 2477, 2479, 2480, 2482, 2484, 2486, 2488,
+ 2490, 2492, 2494, 2496, 2497, 2498, 2499, 2501,
+ 2503, 2505, 2507, 2508, 2509, 2511, 2513, 2515,
+ 2517, 2519, 2521, 2522, 2524, 2526, 2528, 2530,
+ 2531, 2532, 2534, 2536, 2538, 2540, 2542, 2544,
+ 2546, 2548, 2549, 2550, 2552, 2553, 2556, 2559,
+ 2561, 2564, 2565, 2566, 2568, 2569, 2571, 2573,
+ 2575, 2577, 2579, 2580, 2581, 2582, 2583, 2584,
+ 2587, 2592, 2597, 2602, 2607, 2610, 2615, 2620,
+ 2622, 2624, 2626, 2628, 2629, 2630, 2632, 2634,
+ 2636, 2638, 2640, 2642, 2644, 2645, 2646, 2647,
+ 2648, 2649, 2650, 2655, 2660, 2661, 2662, 2663,
+ 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671,
+ 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679,
+ 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687,
+ 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695,
+ 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703,
+ 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711,
+ 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719,
+ 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727,
+ 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735,
+ 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743,
+ 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751,
+ 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759,
+ 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767,
+ 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775,
+ 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783,
+ 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791,
+ 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799,
+ 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807,
+ 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815,
+ 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823,
+ 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831,
2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839,
2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847,
2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855,
- 2856, 2857, 2858, 2860, 2862, 2864, 2866, 2867,
- 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875,
- 2876, 2877, 2878, 2879, 2881, 2882, 2883, 2884,
- 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892,
- 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900,
- 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908,
- 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916,
- 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924,
- 2925, 2926, 2928, 2930, 2931, 2932, 2934, 2935,
- 2937, 2939, 2940, 2941, 2943, 2945, 2946, 2947,
- 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955,
- 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963,
- 2966, 2969, 2970, 2971, 2972, 2973, 2974, 2975,
- 2977, 2979, 2981, 2982, 2983, 2984, 2985, 2986,
- 2987, 2989, 2990, 2991, 2992, 2993, 2994, 2995,
- 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003,
- 3004, 3005, 3006, 3007, 3008, 3009, 3012, 3015,
- 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023,
- 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031,
- 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039,
- 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047,
- 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055,
- 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063,
- 3064, 3065, 3066, 3067, 3068, 3069, 3072, 3074,
- 3077, 3080, 3082, 3085, 3088, 3091, 3094, 3095,
- 3098, 3099, 3100, 3101, 3102, 3103, 3107, 3109,
- 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119,
- 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127,
- 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135,
- 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143,
- 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151,
- 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159,
- 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167,
- 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176,
- 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184,
- 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192,
- 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200,
- 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208,
- 3211, 3214, 3217, 3220, 3223, 3226, 3229, 3232,
- 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3254,
- 3255, 3256, 3257, 3259, 3260, 3261, 3262, 3263,
- 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271,
- 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279,
- 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287,
- 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295,
- 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303,
- 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311,
- 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319,
- 3320, 3323, 3326, 3327, 3328, 3329, 3330, 3331,
- 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339,
- 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
- 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
- 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
- 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
- 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379,
- 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387,
- 3388, 3391, 3394, 3397, 3398, 3399, 3400, 3401,
- 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409,
- 3410, 3411, 3412, 3413, 3416, 3419, 3420, 3421,
- 3424, 3425, 3426, 3427, 3428, 3431, 3434, 3437,
- 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445,
- 3446, 3447, 3449, 3451, 3452, 3453, 3454, 3455,
- 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463,
- 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471,
- 3472, 3473, 3474, 3475, 3476, 3478, 3480, 3481,
- 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489,
- 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497,
- 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505,
- 3507, 3509, 3511, 3513, 3514, 3515, 3516, 3517,
- 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525,
- 3526, 3527, 3528, 3530, 3531, 3533, 3536, 3538,
- 3539, 3540, 3542, 3544, 3545, 3546, 3547, 3548,
- 3549, 3550, 3552, 3554, 3556, 3558, 3559, 3560,
- 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3569,
- 3571, 3572, 3574, 3576, 3577, 3582, 3584, 3586,
- 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3595,
- 3597, 3598, 3599, 3600, 3602, 3605, 3608, 3611,
- 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620,
- 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628,
- 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636,
- 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644,
- 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652,
- 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660,
- 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668,
- 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676,
- 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684,
- 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692,
- 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700,
- 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708,
- 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716,
- 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724,
- 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732,
- 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740,
- 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748,
- 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3758,
- 3759, 3760, 3763, 3764, 3765, 3767, 3768, 3769,
- 3770, 3772, 3773, 3774, 3775, 3777, 3778, 3779,
- 3780, 3783, 3784, 3785, 3786, 3787, 3790, 3793,
- 3796, 3799, 3802, 3803, 3804, 3805, 3806, 3808,
- 3810, 3811, 3812, 3813, 3816, 3819, 3822, 3825,
- 3828, 3829, 3830, 3831, 3833, 3834, 3835, 3836,
- 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845,
- 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853,
- 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861,
- 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869,
- 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877,
- 3879, 3881, 3883, 3885, 3887, 3888, 3889, 3892,
- 3895, 3896, 3897, 3898, 3899
+ 2856, 2857, 2858, 2859, 2860, 2861, 2863, 2865,
+ 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873,
+ 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881,
+ 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889,
+ 2890, 2891, 2892, 2893, 2895, 2897, 2899, 2901,
+ 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909,
+ 2910, 2911, 2912, 2913, 2914, 2916, 2917, 2918,
+ 2919, 2921, 2922, 2923, 2924, 2925, 2926, 2927,
+ 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935,
+ 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943,
+ 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951,
+ 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959,
+ 2960, 2961, 2962, 2964, 2966, 2967, 2968, 2970,
+ 2971, 2973, 2975, 2976, 2977, 2979, 2981, 2983,
+ 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992,
+ 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000,
+ 3001, 3004, 3007, 3008, 3009, 3010, 3011, 3012,
+ 3013, 3015, 3017, 3019, 3020, 3021, 3022, 3023,
+ 3024, 3025, 3027, 3028, 3029, 3030, 3031, 3032,
+ 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040,
+ 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3050,
+ 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060,
+ 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068,
+ 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076,
+ 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084,
+ 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092,
+ 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100,
+ 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3110,
+ 3112, 3115, 3118, 3120, 3123, 3126, 3129, 3132,
+ 3133, 3136, 3137, 3138, 3139, 3140, 3141, 3145,
+ 3147, 3150, 3151, 3152, 3153, 3154, 3155, 3156,
+ 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164,
+ 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172,
+ 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180,
+ 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188,
+ 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196,
+ 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204,
+ 3205, 3207, 3208, 3209, 3210, 3211, 3212, 3213,
+ 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221,
+ 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229,
+ 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237,
+ 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245,
+ 3246, 3249, 3252, 3255, 3258, 3261, 3264, 3267,
+ 3270, 3273, 3276, 3279, 3282, 3285, 3288, 3291,
+ 3292, 3293, 3294, 3295, 3297, 3298, 3299, 3300,
+ 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308,
+ 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316,
+ 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324,
+ 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332,
+ 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340,
+ 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348,
+ 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356,
+ 3357, 3358, 3361, 3364, 3365, 3366, 3367, 3368,
+ 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376,
+ 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384,
+ 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392,
+ 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400,
+ 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408,
+ 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416,
+ 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424,
+ 3425, 3426, 3429, 3432, 3435, 3436, 3437, 3438,
+ 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446,
+ 3447, 3448, 3449, 3450, 3451, 3454, 3457, 3458,
+ 3459, 3462, 3463, 3464, 3465, 3466, 3469, 3472,
+ 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482,
+ 3483, 3484, 3485, 3487, 3489, 3490, 3491, 3492,
+ 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500,
+ 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508,
+ 3509, 3510, 3511, 3512, 3513, 3514, 3516, 3518,
+ 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526,
+ 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534,
+ 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542,
+ 3543, 3545, 3547, 3549, 3551, 3552, 3553, 3554,
+ 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562,
+ 3563, 3564, 3565, 3566, 3568, 3569, 3571, 3574,
+ 3576, 3577, 3578, 3580, 3582, 3583, 3584, 3585,
+ 3586, 3587, 3588, 3590, 3592, 3594, 3596, 3597,
+ 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605,
+ 3607, 3609, 3610, 3612, 3614, 3615, 3620, 3622,
+ 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631,
+ 3633, 3635, 3636, 3637, 3638, 3640, 3643, 3646,
+ 3649, 3651, 3652, 3653, 3654, 3655, 3656, 3657,
+ 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665,
+ 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673,
+ 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681,
+ 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689,
+ 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697,
+ 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705,
+ 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713,
+ 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721,
+ 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729,
+ 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737,
+ 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745,
+ 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753,
+ 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761,
+ 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769,
+ 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777,
+ 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785,
+ 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793,
+ 3796, 3797, 3798, 3801, 3802, 3803, 3805, 3806,
+ 3807, 3808, 3810, 3811, 3812, 3813, 3815, 3816,
+ 3817, 3818, 3821, 3822, 3823, 3824, 3825, 3828,
+ 3831, 3834, 3837, 3840, 3841, 3842, 3843, 3844,
+ 3846, 3848, 3849, 3850, 3851, 3854, 3857, 3860,
+ 3863, 3866, 3867, 3868, 3869, 3871, 3872, 3873,
+ 3874, 3876, 3877, 3878, 3879, 3880, 3881, 3882,
+ 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890,
+ 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898,
+ 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906,
+ 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914,
+ 3915, 3917, 3919, 3921, 3923, 3925, 3926, 3927,
+ 3930, 3933, 3934, 3935, 3936, 3937
};
/* i386 mnemonics table. */
@@ -43688,6 +44060,7 @@ const char i386_mnemonics[] =
"\0""{load}"
"\0""{store}"
"\0""{nooptimize}"
+ "\0""{nf}"
"\0""{rex}"
"\0""{evex}"
"\0""{vex}"