summaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex-reg.h
blob: 81bb41646c5f14fdbd150258f20810069f1769d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  /* REG_EVEX_0F71 */
  {
    { Bad_Opcode },
    { Bad_Opcode },
    { "%XEvpsrlw",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { Bad_Opcode },
    { "%XEvpsraw",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { Bad_Opcode },
    { "%XEvpsllw",	{ Vex, EXx, Ib }, PREFIX_DATA },
  },
  /* REG_EVEX_0F72 */
  {
    { "vpror%DQ",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { "vprol%DQ",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { VEX_W_TABLE (EVEX_W_0F72_R_2) },
    { Bad_Opcode },
    { "%XEvpsra%DQ",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { Bad_Opcode },
    { VEX_W_TABLE (EVEX_W_0F72_R_6) },
  },
  /* REG_EVEX_0F73 */
  {
    { Bad_Opcode },
    { Bad_Opcode },
    { VEX_W_TABLE (EVEX_W_0F73_R_2) },
    { "%XEvpsrldqY",	{ Vex, EXx, Ib }, PREFIX_DATA },
    { Bad_Opcode },
    { Bad_Opcode },
    { VEX_W_TABLE (EVEX_W_0F73_R_6) },
    { "%XEvpslldqY",	{ Vex, EXx, Ib }, PREFIX_DATA },
  },
  /* REG_EVEX_0F38C6_L_2 */
  {
    { Bad_Opcode },
    { "vgatherpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
    { "vgatherpf1dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
    { Bad_Opcode },
    { Bad_Opcode },
    { "vscatterpf0dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
    { "vscatterpf1dp%XW",  { MVexVSIBDWpX }, PREFIX_DATA },
  },
  /* REG_EVEX_0F38C7_L_2 */
  {
    { Bad_Opcode },
    { "vgatherpf0qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
    { "vgatherpf1qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
    { Bad_Opcode },
    { Bad_Opcode },
    { "vscatterpf0qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
    { "vscatterpf1qp%XW",  { MVexVSIBQWpX }, PREFIX_DATA },
  },
  /* REG_EVEX_MAP4_80 */
  {
    { "addA",	{ VexGb, Eb, Ib }, NO_PREFIX },
    { "orA",	{ 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 },
  },
  /* REG_EVEX_MAP4_81 */
  {
    { "addQ",	{ VexGv, Ev, Iv }, PREFIX_NP_OR_DATA },
    { "orQ",	{ 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 },
  },
  /* REG_EVEX_MAP4_83 */
  {
    { "addQ",	{ VexGv, Ev, sIb }, PREFIX_NP_OR_DATA },
    { "orQ",	{ 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 },
  },
  /* REG_EVEX_MAP4_8F */
  {
    { VEX_W_TABLE (EVEX_W_MAP4_8F_R_0) },
  },
  /* REG_EVEX_MAP4_F6 */
  {
    { Bad_Opcode },
    { Bad_Opcode },
    { "notA",	{ VexGb, Eb }, NO_PREFIX },
    { "negA",	{ VexGb, 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 },
  },
  /* REG_EVEX_MAP4_FE */
  {
    { "incA",	{ VexGb, Eb }, NO_PREFIX },
    { "decA",	{ VexGb, Eb }, NO_PREFIX },
  },
  /* REG_EVEX_MAP4_FF */
  {
    { "incQ",	{ VexGv, Ev }, PREFIX_NP_OR_DATA },
    { "decQ",	{ VexGv, Ev }, PREFIX_NP_OR_DATA },
    { Bad_Opcode },
    { Bad_Opcode },
    { Bad_Opcode },
    { Bad_Opcode },
    { VEX_W_TABLE (EVEX_W_MAP4_FF_R_6) },
  },