1 static const struct dis386 evex_len_table[][3] = { 2 /* EVEX_LEN_0F6E_P_2 */ 3 { 4 { "vmovK", { XMScalar, Edq }, 0 }, 5 }, 6 7 /* EVEX_LEN_0F7E_P_1 */ 8 { 9 { VEX_W_TABLE (EVEX_W_0F7E_P_1) }, 10 }, 11 12 /* EVEX_LEN_0F7E_P_2 */ 13 { 14 { "vmovK", { Edq, XMScalar }, 0 }, 15 }, 16 17 /* EVEX_LEN_0FD6_P_2 */ 18 { 19 { VEX_W_TABLE (EVEX_W_0FD6_P_2) }, 20 }, 21 22 /* EVEX_LEN_0F3819_P_2_W_0 */ 23 { 24 { Bad_Opcode }, 25 { "vbroadcastf32x2", { XM, EXxmm_mq }, 0 }, 26 { "vbroadcastf32x2", { XM, EXxmm_mq }, 0 }, 27 }, 28 29 /* EVEX_LEN_0F3819_P_2_W_1 */ 30 { 31 { Bad_Opcode }, 32 { "vbroadcastsd", { XM, EXxmm_mq }, 0 }, 33 { "vbroadcastsd", { XM, EXxmm_mq }, 0 }, 34 }, 35 36 /* EVEX_LEN_0F381A_P_2_W_0 */ 37 { 38 { Bad_Opcode }, 39 { "vbroadcastf32x4", { XM, EXxmm }, 0 }, 40 { "vbroadcastf32x4", { XM, EXxmm }, 0 }, 41 }, 42 43 /* EVEX_LEN_0F381A_P_2_W_1 */ 44 { 45 { Bad_Opcode }, 46 { "vbroadcastf64x2", { XM, EXxmm }, 0 }, 47 { "vbroadcastf64x2", { XM, EXxmm }, 0 }, 48 }, 49 50 /* EVEX_LEN_0F381B_P_2_W_0 */ 51 { 52 { Bad_Opcode }, 53 { Bad_Opcode }, 54 { "vbroadcastf32x8", { XM, EXxmmq }, 0 }, 55 }, 56 57 /* EVEX_LEN_0F381B_P_2_W_1 */ 58 { 59 { Bad_Opcode }, 60 { Bad_Opcode }, 61 { "vbroadcastf64x4", { XM, EXymm }, 0 }, 62 }, 63 64 /* EVEX_LEN_0F385A_P_2_W_0 */ 65 { 66 { Bad_Opcode }, 67 { "vbroadcasti32x4", { XM, EXxmm }, 0 }, 68 { "vbroadcasti32x4", { XM, EXxmm }, 0 }, 69 }, 70 71 /* EVEX_LEN_0F385A_P_2_W_1 */ 72 { 73 { Bad_Opcode }, 74 { "vbroadcasti64x2", { XM, EXxmm }, 0 }, 75 { "vbroadcasti64x2", { XM, EXxmm }, 0 }, 76 }, 77 78 /* EVEX_LEN_0F385B_P_2_W_0 */ 79 { 80 { Bad_Opcode }, 81 { Bad_Opcode }, 82 { "vbroadcasti32x8", { XM, EXxmmq }, 0 }, 83 }, 84 85 /* EVEX_LEN_0F385B_P_2_W_1 */ 86 { 87 { Bad_Opcode }, 88 { Bad_Opcode }, 89 { "vbroadcasti64x4", { XM, EXymm }, 0 }, 90 }, 91 92 /* EVEX_LEN_0F38C6_REG_1_PREFIX_2 */ 93 { 94 { Bad_Opcode }, 95 { Bad_Opcode }, 96 { "vgatherpf0dp%XW", { MVexVSIBDWpX }, 0 }, 97 }, 98 99 /* EVEX_LEN_0F38C6_REG_2_PREFIX_2 */ 100 { 101 { Bad_Opcode }, 102 { Bad_Opcode }, 103 { "vgatherpf1dp%XW", { MVexVSIBDWpX }, 0 }, 104 }, 105 106 /* EVEX_LEN_0F38C6_REG_5_PREFIX_2 */ 107 { 108 { Bad_Opcode }, 109 { Bad_Opcode }, 110 { "vscatterpf0dp%XW", { MVexVSIBDWpX }, 0 }, 111 }, 112 113 /* EVEX_LEN_0F38C6_REG_6_PREFIX_2 */ 114 { 115 { Bad_Opcode }, 116 { Bad_Opcode }, 117 { "vscatterpf1dp%XW", { MVexVSIBDWpX }, 0 }, 118 }, 119 120 /* EVEX_LEN_0F38C7_R_1_P_2_W_0 */ 121 { 122 { Bad_Opcode }, 123 { Bad_Opcode }, 124 { "vgatherpf0qps", { MVexVSIBDQWpX }, 0 }, 125 }, 126 127 /* EVEX_LEN_0F38C7_R_1_P_2_W_1 */ 128 { 129 { Bad_Opcode }, 130 { Bad_Opcode }, 131 { "vgatherpf0qpd", { MVexVSIBQWpX }, 0 }, 132 }, 133 134 /* EVEX_LEN_0F38C7_R_2_P_2_W_0 */ 135 { 136 { Bad_Opcode }, 137 { Bad_Opcode }, 138 { "vgatherpf1qps", { MVexVSIBDQWpX }, 0 }, 139 }, 140 141 /* EVEX_LEN_0F38C7_R_2_P_2_W_1 */ 142 { 143 { Bad_Opcode }, 144 { Bad_Opcode }, 145 { "vgatherpf1qpd", { MVexVSIBQWpX }, 0 }, 146 }, 147 148 /* EVEX_LEN_0F38C7_R_5_P_2_W_0 */ 149 { 150 { Bad_Opcode }, 151 { Bad_Opcode }, 152 { "vscatterpf0qps", { MVexVSIBDQWpX }, 0 }, 153 }, 154 155 /* EVEX_LEN_0F38C7_R_5_P_2_W_1 */ 156 { 157 { Bad_Opcode }, 158 { Bad_Opcode }, 159 { "vscatterpf0qpd", { MVexVSIBQWpX }, 0 }, 160 }, 161 162 /* EVEX_LEN_0F38C7_R_6_P_2_W_0 */ 163 { 164 { Bad_Opcode }, 165 { Bad_Opcode }, 166 { "vscatterpf1qps", { MVexVSIBDQWpX }, 0 }, 167 }, 168 169 /* EVEX_LEN_0F38C7_R_6_P_2_W_1 */ 170 { 171 { Bad_Opcode }, 172 { Bad_Opcode }, 173 { "vscatterpf1qpd", { MVexVSIBQWpX }, 0 }, 174 }, 175 176 /* EVEX_LEN_0F3A18_P_2_W_0 */ 177 { 178 { Bad_Opcode }, 179 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, 0 }, 180 { "vinsertf32x4", { XM, Vex, EXxmm, Ib }, 0 }, 181 }, 182 183 /* EVEX_LEN_0F3A18_P_2_W_1 */ 184 { 185 { Bad_Opcode }, 186 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, 0 }, 187 { "vinsertf64x2", { XM, Vex, EXxmm, Ib }, 0 }, 188 }, 189 190 /* EVEX_LEN_0F3A19_P_2_W_0 */ 191 { 192 { Bad_Opcode }, 193 { "vextractf32x4", { EXxmm, XM, Ib }, 0 }, 194 { "vextractf32x4", { EXxmm, XM, Ib }, 0 }, 195 }, 196 197 /* EVEX_LEN_0F3A19_P_2_W_1 */ 198 { 199 { Bad_Opcode }, 200 { "vextractf64x2", { EXxmm, XM, Ib }, 0 }, 201 { "vextractf64x2", { EXxmm, XM, Ib }, 0 }, 202 }, 203 204 /* EVEX_LEN_0F3A1A_P_2_W_0 */ 205 { 206 { Bad_Opcode }, 207 { Bad_Opcode }, 208 { "vinsertf32x8", { XM, Vex, EXxmmq, Ib }, 0 }, 209 }, 210 211 /* EVEX_LEN_0F3A1A_P_2_W_1 */ 212 { 213 { Bad_Opcode }, 214 { Bad_Opcode }, 215 { "vinsertf64x4", { XM, Vex, EXxmmq, Ib }, 0 }, 216 }, 217 218 /* EVEX_LEN_0F3A1B_P_2_W_0 */ 219 { 220 { Bad_Opcode }, 221 { Bad_Opcode }, 222 { "vextractf32x8", { EXxmmq, XM, Ib }, 0 }, 223 }, 224 225 /* EVEX_LEN_0F3A1B_P_2_W_1 */ 226 { 227 { Bad_Opcode }, 228 { Bad_Opcode }, 229 { "vextractf64x4", { EXxmmq, XM, Ib }, 0 }, 230 }, 231 232 /* EVEX_LEN_0F3A23_P_2_W_0 */ 233 { 234 { Bad_Opcode }, 235 { "vshuff32x4", { XM, Vex, EXx, Ib }, 0 }, 236 { "vshuff32x4", { XM, Vex, EXx, Ib }, 0 }, 237 }, 238 239 /* EVEX_LEN_0F3A23_P_2_W_1 */ 240 { 241 { Bad_Opcode }, 242 { "vshuff64x2", { XM, Vex, EXx, Ib }, 0 }, 243 { "vshuff64x2", { XM, Vex, EXx, Ib }, 0 }, 244 }, 245 246 /* EVEX_LEN_0F3A38_P_2_W_0 */ 247 { 248 { Bad_Opcode }, 249 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, 0 }, 250 { "vinserti32x4", { XM, Vex, EXxmm, Ib }, 0 }, 251 }, 252 253 /* EVEX_LEN_0F3A38_P_2_W_1 */ 254 { 255 { Bad_Opcode }, 256 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, 0 }, 257 { "vinserti64x2", { XM, Vex, EXxmm, Ib }, 0 }, 258 }, 259 260 /* EVEX_LEN_0F3A39_P_2_W_0 */ 261 { 262 { Bad_Opcode }, 263 { "vextracti32x4", { EXxmm, XM, Ib }, 0 }, 264 { "vextracti32x4", { EXxmm, XM, Ib }, 0 }, 265 }, 266 267 /* EVEX_LEN_0F3A39_P_2_W_1 */ 268 { 269 { Bad_Opcode }, 270 { "vextracti64x2", { EXxmm, XM, Ib }, 0 }, 271 { "vextracti64x2", { EXxmm, XM, Ib }, 0 }, 272 }, 273 274 /* EVEX_LEN_0F3A3A_P_2_W_0 */ 275 { 276 { Bad_Opcode }, 277 { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 }, 278 { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 }, 279 }, 280 281 /* EVEX_LEN_0F3A3A_P_2_W_1 */ 282 { 283 { Bad_Opcode }, 284 { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 }, 285 { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 }, 286 }, 287 288 /* EVEX_LEN_0F3A3B_P_2_W_0 */ 289 { 290 { Bad_Opcode }, 291 { "vextracti32x8", { EXxmmq, XM, Ib }, 0 }, 292 { "vextracti32x8", { EXxmmq, XM, Ib }, 0 }, 293 }, 294 295 /* EVEX_LEN_0F3A3B_P_2_W_1 */ 296 { 297 { Bad_Opcode }, 298 { "vextracti64x4", { EXxmmq, XM, Ib }, 0 }, 299 { "vextracti64x4", { EXxmmq, XM, Ib }, 0 }, 300 }, 301 302 /* EVEX_LEN_0F3A43_P_2_W_0 */ 303 { 304 { Bad_Opcode }, 305 { "vshufi32x4", { XM, Vex, EXx, Ib }, 0 }, 306 { "vshufi32x4", { XM, Vex, EXx, Ib }, 0 }, 307 }, 308 309 /* EVEX_LEN_0F3A43_P_2_W_1 */ 310 { 311 { Bad_Opcode }, 312 { "vshufi64x2", { XM, Vex, EXx, Ib }, 0 }, 313 { "vshufi64x2", { XM, Vex, EXx, Ib }, 0 }, 314 }, 315 }; 316