-
Notifications
You must be signed in to change notification settings - Fork 9
/
x86_tbl_entries.h
executable file
·577 lines (566 loc) · 64.6 KB
/
x86_tbl_entries.h
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
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
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
386
387
388
389
390
391
392
393
394
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
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
// order matters. ins with F_X32_ONLY and F_X64_ONLY should go first
{ 0x00, 0x00, F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "ADD", I_ADD },
{ 0x01, 0x00, F_X32_ONLY | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "ADD", I_ADD },
{ 0x01, 0x00, F_X64_ONLY | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "ADD", I_ADD },
{ 0x01, 0xD0, F_0F | F_OPC2, OP_ABSENT, OP_ABSENT, OP_ABSENT, "XGETBV", I_XGETBV },
{ 0x02, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "ADD", I_ADD },
{ 0x03, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "ADD", I_ADD },
{ 0x03, 0x00, F_MODRM | F_0F | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "LSL", I_LSL },
{ 0x04, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "ADD", I_ADD },
{ 0x05, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "ADD", I_ADD },
{ 0x05, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "ADD", I_ADD },
{ 0x06, 0x00, 0, OP_ES, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x07, 0x00, 0, OP_ES, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x08, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "OR", I_OR },
{ 0x09, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "OR", I_OR },
{ 0x0A, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "OR", I_OR },
{ 0x0B, 0x00, F_0F, OP_ABSENT, OP_ABSENT, OP_ABSENT, "UD2", I_UD2 },
{ 0x0B, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "OR", I_OR },
{ 0x0C, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "OR", I_OR },
{ 0x0D, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "OR", I_OR },
{ 0x0D, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "OR", I_OR },
{ 0x0E, 0x00, 0, OP_CS, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x10, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVSD", I_SIMD_MOVSD }, // [!] второй операнд неверен, see manual
{ 0x10, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVUPS", I_MOVUPS },
{ 0x10, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVSS", I_MOVSS },
{ 0x10, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "ADC", I_ADC },
{ 0x11, 0x00, F_0F | F_MODRM, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVUPS", I_MOVUPS },
{ 0x11, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVSD", I_SIMD_MOVSD }, // [!] второй операнд неверен, see manual
{ 0x11, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVSS", I_MOVSS }, // [!] второй операнд неверен, see manual
{ 0x11, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "ADC", I_ADC },
{ 0x12, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_MM, OP_ABSENT, "MOVLPD", I_MOVLPD },
{ 0x12, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "ADC", I_ADC },
{ 0x12, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVSLDUP", I_MOVSLDUP },
{ 0x13, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_RM_MM, OP_MODRM_R_XMM, OP_ABSENT, "MOVLPD", I_MOVLPD },
{ 0x13, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "ADC", I_ADC },
{ 0x14, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "UNPCKLPD", I_UNPCKLPD },
{ 0x14, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "UNPCKLPS", I_UNPCKLPS },
{ 0x14, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "ADC", I_ADC },
{ 0x15, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "UNPCKHPD", I_UNPCKHPD },
{ 0x15, 0x00, F_REXW_ABSENT | F_IMM32, OP_EAX, OP_IMM32, OP_ABSENT, "ADC", I_ADC },
{ 0x15, 0x00, F_REXW_PRESENT | F_IMM32, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "ADC", I_ADC },
{ 0x16, 0x00, 0, OP_SS, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x17, 0x00, 0, OP_SS, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x18, 0x00, F_0F | F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "PREFETCHNTA", I_PREFETCHNTA },
{ 0x18, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "SBB", I_SBB },
{ 0x19, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "SBB", I_SBB },
{ 0x1A, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "SBB", I_SBB },
{ 0x1B, 0x00, F_PREFIX66_ALLOWED | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "SBB", I_SBB },
{ 0x1C, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "SBB", I_SBB },
{ 0x1D, 0x00, F_REXW_ABSENT | F_IMM32, OP_EAX, OP_IMM32, OP_ABSENT, "SBB", I_SBB },
{ 0x1D, 0x00, F_REXW_PRESENT | F_IMM32, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "SBB", I_SBB },
{ 0x1E, 0x00, 0, OP_DS, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x1F, 0x00, 0, OP_DS, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x1F, 0x00, F_PREFIX66_ALLOWED | F_0F | F_MODRM_REG_0 | F_MODRM | F_X64_PROMOTE_OP1_32_TO_64, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "NOP", I_NOP },
{ 0x20, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "AND", I_AND },
{ 0x21, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "AND", I_AND },
{ 0x22, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "AND", I_AND },
{ 0x23, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "AND", I_AND },
{ 0x24, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "AND", I_AND },
{ 0x25, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "AND", I_AND },
{ 0x25, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "AND", I_AND },
{ 0x27, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "DAA", I_DAA },
{ 0x28, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVAPS", I_MOVAPS },
{ 0x28, 0x00, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVAPD", I_MOVAPD },
{ 0x28, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "SUB", I_SUB },
{ 0x29, 0x00, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVAPD", I_MOVAPD },
{ 0x29, 0x00, F_0F | F_MODRM, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVAPS", I_MOVAPS },
{ 0x29, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "SUB", I_SUB },
{ 0x2A, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM32, OP_ABSENT, "CVTSI2SD", I_CVTSI2SD },
{ 0x2A, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM32, OP_ABSENT, "CVTSI2SS", I_CVTSI2SS },
{ 0x2A, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "SUB", I_SUB },
{ 0x2B, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "SUB", I_SUB },
{ 0x2C, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R32, OP_MODRM_RM_MM, OP_ABSENT, "CVTTSD2SI", I_CVTTSD2SI }, // xmm/m64 ?
{ 0x2C, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "SUB", I_SUB },
{ 0x2D, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R32, OP_MODRM_RM_MM, OP_ABSENT, "CVTSD2SI", I_CVTSD2SI }, // [!] второй операнд неверен
{ 0x2D, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "SUB", I_SUB },
{ 0x2D, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "SUB", I_SUB },
{ 0x2E, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "UCOMISD", I_UCOMISD },
{ 0x2F, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "DAS", I_DAS },
{ 0x2F, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "COMISD", I_COMISD },
{ 0x2F, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "COMISS", I_COMISS },
{ 0x30, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "XOR", I_XOR },
{ 0x31, 0x00, F_0F, OP_ABSENT, OP_ABSENT, OP_ABSENT, "RDTSC", I_RDTSC },
{ 0x31, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "XOR", I_XOR },
{ 0x32, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "XOR", I_XOR },
{ 0x33, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "XOR", I_XOR },
{ 0x34, 0x00, F_0F, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SYSENTER", I_SYSENTER },
{ 0x34, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "XOR", I_XOR },
{ 0x35, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "XOR", I_XOR },
{ 0x35, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "XOR", I_XOR },
{ 0x37, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "AAA", I_AAA },
{ 0x38, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "CMP", I_CMP },
{ 0x38, 0xDB, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM | F_OPC2, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "AESIMC", I_AESIMC },
{ 0x38, 0x39, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM | F_OPC2, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PMINSD", I_PMINSD },
{ 0x38, 0x3D, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM | F_OPC2, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PMAXSD", I_PMAXSD },
{ 0x38, 0xDC, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM | F_OPC2, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "AESENC", I_AESENC },
{ 0x38, 0xDD, F_0F | F_PREFIX66_IS_PART_OF_OPCODE | F_MODRM | F_OPC2, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "AESENCLAST", I_AESENCLAST },
{ 0x39, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "CMP", I_CMP },
{ 0x3A, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "CMP", I_CMP },
{ 0x3A, 0xDF, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_OPC2 | F_MODRM | F_IMM8, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_IMM8, "AESKEYGENASSIST", I_AESKEYGENASSIST },
{ 0x3B, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMP", I_CMP },
{ 0x3C, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "CMP", I_CMP },
{ 0x3D, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "CMP", I_CMP },
{ 0x3D, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "CMP", I_CMP },
{ 0x3F, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "AAS", I_AAS },
{ 0x40, 0x00, F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "INC", I_INC },
{ 0x40, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVO", I_CMOVO },
{ 0x42, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVB", I_CMOVB },
{ 0x43, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVNB", I_CMOVNB },
{ 0x44, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVZ", I_CMOVZ },
{ 0x45, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVNZ", I_CMOVNZ },
{ 0x46, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVBE", I_CMOVBE },
{ 0x47, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVA", I_CMOVA },
{ 0x48, 0x00, 0 | F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "DEC", I_DEC },
{ 0x48, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVS", I_CMOVS },
{ 0x49, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVNS", I_CMOVNS },
{ 0x4C, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVL", I_CMOVL },
{ 0x4D, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVGE", I_CMOVGE },
{ 0x4E, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVLE", I_CMOVLE },
{ 0x4F, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "CMOVG", I_CMOVG },
{ 0x50, 0x00, F_X32_ONLY | F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x50, 0x00, F_X64_ONLY | F_PREFIX66_ALLOWED | F_REG64_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG64_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x51, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "SQRTSD", I_SQRTSD }, // [!] второй операнд неверен
{ 0x54, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ANDPD", I_ANDPD },
{ 0x54, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ANDPS", I_ANDPS },
{ 0x56, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ORPD", I_ORPD },
{ 0x57, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "XORPD", I_XORPD },
{ 0x57, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "XORPS", I_XORPS },
{ 0x58, 0x00, F_X32_ONLY | F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x58, 0x00, F_X64_ONLY | F_PREFIX66_ALLOWED | F_REG64_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG64_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x58, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ADDPD", I_ADDPD },
{ 0x58, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ADDSD", I_ADDSD }, // [!] второй операнд неверен
{ 0x58, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "ADDSS", I_ADDSS },
{ 0x59, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MULPD", I_MULPD },
{ 0x59, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MULSD", I_MULSD },
{ 0x59, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MULSS", I_MULSS },
{ 0x5A, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "CVTSD2SS", I_CVTSD2SS }, // [!] второй операнд неверен
{ 0x5A, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "CVTPS2PD", I_CVTPS2PD }, // [!] второй операнд неверен
{ 0x5B, 0x00, F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "CVTDQ2PS", I_CVTDQ2PS }, // [!] второй операнд неверен
{ 0x5C, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "SUBPD", I_SUBPD },
{ 0x5C, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "SUBSD", I_SUBSD }, // [!] второй операнд неверен
{ 0x5C, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "SUBSS", I_SUBSS }, // [!] второй операнд неверен
{ 0x5D, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MINSD", I_MINSD }, // [!] второй операнд неверен
{ 0x5E, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "DIVSD", I_DIVSD }, // [!] второй операнд неверен
{ 0x5E, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "DIVSS", I_DIVSS }, // [!] второй операнд неверен
{ 0x5F, 0x00, F_F2 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MAXSD", I_MAXSD }, // [!] второй операнд неверен
{ 0x60, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "PUSHA", I_PUSHA },
{ 0x61, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "POPA", I_POPA },
{ 0x61, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PUNPCKLWD", I_PUNPCKLWD },
{ 0x62, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PUNPCKLDQ", I_PUNPCKLDQ },
{ 0x62, 0x00, F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "BOUND", I_BOUND },
{ 0x63, 0x00, F_X32_ONLY | F_MODRM, OP_MODRM_RM16, OP_MODRM_R16, OP_ABSENT, "ARPL", I_ARPL },
{ 0x63, 0x00, F_X64_ONLY | F_MODRM, OP_MODRM_R64, OP_MODRM_RM32, OP_ABSENT, "MOVSXD", I_MOVSXD },
{ 0x63, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PACKSSWB", I_PACKSSWB },
{ 0x65, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PCMPGTW", I_PCMPGTW },
{ 0x66, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PCMPGTD", I_PCMPGTD },
{ 0x68, 0x00, F_X32_ONLY | F_IMM32, OP_IMM32, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x68, 0x00, F_X64_ONLY | F_IMM32, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0x69, 0x00, F_REXW_ABSENT | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_IMM32, "IMUL", I_IMUL },
{ 0x69, 0x00, F_REXW_PRESENT | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_R64, OP_MODRM_RM64, OP_IMM32_SIGN_EXTENDED_TO_IMM64, "IMUL", I_IMUL },
{ 0x69, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PUNPCKHWD", I_PUNPCKHWD },
{ 0x6A, 0x00, F_X32_ONLY | F_IMM8 | F_PREFIX66_ALLOWED, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH }, // imm8 is signextended to dword
{ 0x6A, 0x00, F_X64_ONLY | F_IMM8 | F_PREFIX66_ALLOWED, OP_IMM8_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH }, // imm8 is signextended to dword
{ 0x6A, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PUNPCKHDQ", I_PUNPCKHDQ },
{ 0x6B, 0x00, F_REXW_ABSENT | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, "IMUL", I_IMUL },
{ 0x6B, 0x00, F_REXW_PRESENT | F_MODRM | F_IMM8, OP_MODRM_R64, OP_MODRM_RM64, OP_IMM8_SIGN_EXTENDED_TO_IMM32, "IMUL", I_IMUL },
{ 0x6B, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PACKSSDW", I_PACKSSDW },
{ 0x6C, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "INSB", I_INSB },
{ 0x6C, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PUNPCKLQDQ", I_PUNPCKLQDQ },
{ 0x6D, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "INSD", I_INSD },
{ 0x6D, 0x00, F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "INSW", I_INSW },
{ 0x6E, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "OUTSB", I_OUTSB },
{ 0x6E, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM32, OP_ABSENT, "MOVD", I_MOVD },
{ 0x6F, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "OUTSD", I_OUTSD },
{ 0x6F, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVDQA", I_MOVDQA },
{ 0x6F, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVDQU", I_MOVDQU },
{ 0x6F, 0x00, F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "OUTSW", I_OUTSW },
{ 0x70, 0x00, F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_IMM8, "PSHUFD", I_PSHUFD },
{ 0x70, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JO", I_JO },
{ 0x71, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JNO", I_JNO },
{ 0x72, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JB", I_JB }, // JC, JNAE
{ 0x73, 0x00, F_0F | F_MODRM_REG_7 | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_IMM8, OP_ABSENT, "PSLLDQ", I_PSLLDQ },
{ 0x73, 0x00, F_MODRM_REG_2 | F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_IMM8, OP_ABSENT, "PSRLQ", I_PSRLQ }, // 2
{ 0x73, 0x00, F_MODRM_REG_3 | F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_IMM8, OP_ABSENT, "PSRLDQ", I_PSRLDQ }, // 3
{ 0x73, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JNB", I_JNB }, // JAE, JNC
{ 0x74, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JZ", I_JZ }, // JE
{ 0x75, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JNZ", I_JNZ }, // JNE
{ 0x75, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PCMPEQW", I_PCMPEQW },
{ 0x76, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JBE", I_JBE }, // JNA
{ 0x76, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PCMPEQD", I_PCMPEQD },
{ 0x77, 0x00, F_0F, OP_ABSENT, OP_ABSENT, OP_ABSENT, "EMMS", I_EMMS },
{ 0x77, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JA", I_JA }, // JNBE
{ 0x78, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JS", I_JS },
{ 0x79, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JNS", I_JNS },
{ 0x7A, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JP", I_JP }, // JPE
{ 0x7B, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JNP", I_JNP }, // JPO
{ 0x7C, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JL", I_JL }, // JNGE
{ 0x7D, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JGE", I_JGE }, // JNL
{ 0x7E, 0x00, F_0F | F_REXW_ABSENT | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_RM32, OP_MODRM_R_XMM, OP_ABSENT, "MOVD", I_MOVD },
{ 0x7E, 0x00, F_0F | F_REXW_PRESENT | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_RM64, OP_MODRM_R_XMM, OP_ABSENT, "MOVQ", I_MOVQ },
{ 0x7E, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "MOVQ", I_MOVQ }, // [!] второй оп?
{ 0x7E, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JLE", I_JLE }, // JNG
{ 0x7F, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_RM_XMM, OP_MODRM_R_XMM, OP_ABSENT, "MOVDQA", I_MOVDQA },
{ 0x7F, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JG", I_JG }, // JNLE
{ 0x80, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JO", I_JO },
{ 0x80, 0x00, F_MODRM_REG_0 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "ADD", I_ADD },
{ 0x80, 0x00, F_MODRM_REG_1 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "OR", I_OR },
{ 0x80, 0x00, F_MODRM_REG_2 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "ADC", I_ADC },
{ 0x80, 0x00, F_MODRM_REG_3 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SBB", I_SBB },
{ 0x80, 0x00, F_MODRM_REG_4 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "AND", I_AND },
{ 0x80, 0x00, F_MODRM_REG_5 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SUB", I_SUB },
{ 0x80, 0x00, F_MODRM_REG_6 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "XOR", I_XOR },
{ 0x80, 0x00, F_MODRM_REG_7 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "CMP", I_CMP },
{ 0x81, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JNO", I_JNO },
{ 0x81, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "ADD", I_ADD },
{ 0x81, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "OR", I_OR },
{ 0x81, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "ADC", I_ADC },
{ 0x81, 0x00, F_MODRM_REG_3 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "SBB", I_SBB },
{ 0x81, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "AND", I_AND },
{ 0x81, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "SUB", I_SUB },
{ 0x81, 0x00, F_MODRM_REG_6 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "XOR", I_XOR },
{ 0x81, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "CMP", I_CMP },
{ 0x82, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JB", I_JB }, // or JC , JNAE
{ 0x82, 0x00, F_MODRM_REG_0 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "ADD", I_ADD }, // as copied from 0x80. it's synonims!
{ 0x82, 0x00, F_MODRM_REG_1 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "OR", I_OR },
{ 0x82, 0x00, F_MODRM_REG_2 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "ADC", I_ADC },
{ 0x82, 0x00, F_MODRM_REG_3 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SBB", I_SBB },
{ 0x82, 0x00, F_MODRM_REG_4 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "AND", I_AND },
{ 0x82, 0x00, F_MODRM_REG_5 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SUB", I_SUB },
{ 0x82, 0x00, F_MODRM_REG_6 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "XOR", I_XOR },
{ 0x82, 0x00, F_MODRM_REG_7 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "CMP", I_CMP },
{ 0x83, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JNB", I_JNB }, // JAE, JNC
{ 0x83, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "ADD", I_ADD },
{ 0x83, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "OR", I_OR },
{ 0x83, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "ADC", I_ADC },
{ 0x83, 0x00, F_MODRM_REG_3 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "SBB", I_SBB },
{ 0x83, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "AND", I_AND },
{ 0x83, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "SUB", I_SUB },
{ 0x83, 0x00, F_MODRM_REG_6 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "XOR", I_XOR },
{ 0x83, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM8_SIGN_EXTENDED_TO_IMM32, OP_ABSENT, "CMP", I_CMP },
{ 0x84, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JZ", I_JZ }, // JE
{ 0x84, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "TEST", I_TEST },
{ 0x85, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JNZ", I_JNZ }, // JNE
{ 0x85, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "TEST", I_TEST },
{ 0x86, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JBE", I_JBE }, // JNA
{ 0x86, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "XCHG", I_XCHG },
{ 0x87, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JA", I_JA }, // JNBE
{ 0x87, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "XCHG", I_XCHG },
{ 0x88, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JS", I_JS },
{ 0x88, 0x00, F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "MOV", I_MOV },
{ 0x89, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JNS", I_JNS },
{ 0x89, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "MOV", I_MOV },
{ 0x8A, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JP", I_JP }, // JPE
{ 0x8A, 0x00, F_MODRM, OP_MODRM_R8, OP_MODRM_RM8, OP_ABSENT, "MOV", I_MOV },
{ 0x8B, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JNP", I_JNP }, // JPO
{ 0x8B, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "MOV", I_MOV },
{ 0x8C, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JL", I_JL }, // JNGE
{ 0x8C, 0x00, F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM16, OP_MODRM_SREG, OP_ABSENT, "MOV", I_MOV },
{ 0x8D, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JGE", I_JGE }, // JNL
{ 0x8D, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "LEA", I_LEA },
{ 0x8E, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JLE", I_JLE }, // JNG
{ 0x8E, 0x00, F_MODRM, OP_MODRM_SREG, OP_MODRM_RM16, OP_ABSENT, "MOV", I_MOV },
{ 0x8F, 0x00, F_0F | F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JG", I_JG }, // JNLE
{ 0x8F, 0x00, F_MODRM_REG_0 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0x90, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_EAX, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, "XCHG", I_XCHG },
{ 0x90, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETO", I_SETO },
{ 0x90, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "PAUSE", I_PAUSE },
{ 0x91, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETNO", I_SETNO },
{ 0x92, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETB", I_SETB }, // SETC, SETNAE
{ 0x93, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETNB", I_SETNB }, // SETAE, SETNC
{ 0x94, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETE", I_SETE }, // SETZ
{ 0x95, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETNE", I_SETNE }, // SETNZ
{ 0x96, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETBE", I_SETBE }, // SETNA
{ 0x97, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETA", I_SETA }, // SETNBE
{ 0x98, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETS", I_SETS },
{ 0x98, 0x00, F_REXW_ABSENT | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CBW", I_CBW },
{ 0x98, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CWDE", I_CWDE },
{ 0x98, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CDQE", I_CDQE },
{ 0x99, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETNS", I_SETNS },
{ 0x99, 0x00, F_REXW_ABSENT | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CWD", I_CWD },
{ 0x99, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CDQ", I_CDQ },
{ 0x99, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CQO", I_CQO },
{ 0x9A, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETP", I_SETP }, // SETPE
{ 0x9B, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "WAIT", I_WAIT }, // or FWAIT
{ 0x9B, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETNP", I_SETNP }, // SETPO
{ 0x9C, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETL", I_SETL }, // SETNGE
{ 0x9C, 0x00, F_X32_ONLY, OP_ABSENT, OP_ABSENT, OP_ABSENT, "PUSHFD", I_PUSHFD },
{ 0x9C, 0x00, F_X64_ONLY, OP_ABSENT, OP_ABSENT, OP_ABSENT, "PUSHFQ", I_PUSHFQ },
{ 0x9D, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETGE", I_SETGE }, // SETNL
{ 0x9D, 0x00, F_X32_ONLY, OP_ABSENT, OP_ABSENT, OP_ABSENT, "POPFD", I_POPFD },
{ 0x9D, 0x00, F_X64_ONLY, OP_ABSENT, OP_ABSENT, OP_ABSENT, "POPFQ", I_POPFQ },
{ 0x9E, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SAHF", I_SAHF },
{ 0x9E, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETLE", I_SETLE }, // SETNG
{ 0x9F, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "LAHF", I_LAHF },
{ 0x9F, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "SETG", I_SETG }, // SETNLE
{ 0xA0, 0x00, F_X32_ONLY | F_PTR, OP_AL, OP_MOFFS8, OP_ABSENT, "MOV", I_MOV },
// FIXME: untested
{ 0xA0, 0x00, F_X64_ONLY | F_IMM64, OP_AL, OP_IMM64_AS_ABSOLUTE_ADDRESS_PTR_TO_BYTE, OP_ABSENT, "MOV", I_MOV },
{ 0xA1, 0x00, F_X32_ONLY | F_PTR | F_PREFIX66_ALLOWED, OP_EAX, OP_MOFFS32, OP_ABSENT, "MOV", I_MOV },
// FIXME: untested
{ 0xA1, 0x00, F_X64_ONLY | F_IMM64, OP_EAX, OP_IMM64_AS_ABSOLUTE_ADDRESS_PTR_TO_DWORD, OP_ABSENT, "MOV", I_MOV },
{ 0xA2, 0x00, F_0F, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CPUID", I_CPUID },
{ 0xA2, 0x00, F_X32_ONLY | F_PTR, OP_MOFFS8, OP_AL, OP_ABSENT, "MOV", I_MOV }, // mov byte ptr [x], al
// FIXME: untested
{ 0xA2, 0x00, F_X64_ONLY | F_IMM64, OP_IMM64_AS_ABSOLUTE_ADDRESS_PTR_TO_BYTE, OP_AL, OP_ABSENT, "MOV", I_MOV }, // mov byte ptr [x], al
{ 0xA3, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "BT", I_BT },
{ 0xA3, 0x00, F_X32_ONLY | F_PTR | F_PREFIX66_ALLOWED, OP_MOFFS32, OP_EAX, OP_ABSENT, "MOV", I_MOV },
// FIXME: untested
{ 0xA3, 0x00, F_X64_ONLY | F_IMM64 | F_PREFIX66_ALLOWED, OP_IMM64_AS_ABSOLUTE_ADDRESS_PTR_TO_DWORD, OP_EAX, OP_ABSENT, "MOV", I_MOV },
{ 0xA4, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "MOVSB", I_MOVSB },
{ 0xA4, 0x00, F_0F | F_MODRM | F_IMM8, OP_MODRM_RM32, OP_MODRM_R32, OP_IMM8, "SHLD", I_SHLD },
{ 0xA4, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP MOVSB", I_REP_MOVSB },
{ 0xA5, 0x00, F_0F | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_CL, "SHLD", I_SHLD },
{ 0xA5, 0x00, F_F3 | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP MOVSW", I_REP_MOVSW },
{ 0xA5, 0x00, F_F3 | F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP MOVSD", I_REP_MOVSD },
{ 0xA5, 0x00, F_F3 | F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP MOVSQ", I_REP_MOVSQ },
{ 0xA5, 0x00, F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "MOVSW", I_MOVSW },
{ 0xA5, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "MOVSD", I_MOVSD },
{ 0xA5, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "MOVSQ", I_MOVSQ },
{ 0xA6, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CMPSB", I_CMPSB },
{ 0xA6, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP CMPSB", I_REP_CMPSB },
{ 0xA7, 0x00, F_F3 | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP CMPSW", I_REP_CMPSW },
{ 0xA7, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP CMPSD", I_REP_CMPSD },
{ 0xA7, 0x00, F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CMPSW", I_CMPSW },
{ 0xA7, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CMPSD", I_CMPSD },
{ 0xA7, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CMPSQ", I_CMPSQ },
{ 0xA8, 0x00, F_0F, OP_GS, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0xA8, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "TEST", I_TEST },
{ 0xA9, 0x00, F_0F, OP_GS, OP_ABSENT, OP_ABSENT, "POP", I_POP },
{ 0xA9, 0x00, F_REXW_ABSENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM32, OP_ABSENT, "TEST", I_TEST },
{ 0xA9, 0x00, F_REXW_PRESENT | F_IMM32 | F_PREFIX66_ALLOWED, OP_RAX, OP_IMM32_SIGN_EXTENDED_TO_IMM64, OP_ABSENT, "TEST", I_TEST },
{ 0xAA, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STOSB", I_STOSB },
{ 0xAA, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP STOSB", I_REP_STOSB },
{ 0xAB, 0x00, F_0F | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "BTS", I_BTS },
{ 0xAB, 0x00, F_F3 | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP STOSW", I_REP_STOSW },
{ 0xAB, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REP STOSD", I_REP_STOSD },
{ 0xAB, 0x00, F_REXW_ABSENT | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STOSW", I_STOSW },
{ 0xAB, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STOSD", I_STOSD },
{ 0xAB, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STOSQ", I_STOSQ },
{ 0xAC, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "LODSB", I_LODSB },
{ 0xAC, 0x00, F_0F | F_MODRM | F_IMM8 | 0, OP_MODRM_RM32, OP_MODRM_R32, OP_IMM8, "SHRD", I_SHRD },
{ 0xAD, 0x00, F_0F | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_CL, "SHRD", I_SHRD },
{ 0xAD, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "LODSD", I_LODSD },
{ 0xAD, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "LODSQ", I_LODSQ },
{ 0xAE, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SCASB", I_SCASB },
{ 0xAE, 0x00, F_0F | F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FXSAVE", I_FXSAVE }, // actually, op1 is m512btye
{ 0xAE, 0x00, F_0F | F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "LDMXCSR", I_LDMXCSR },
{ 0xAE, 0x00, F_0F | F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "STMXCSR", I_STMXCSR },
{ 0xAE, 0x00, F_0F | F_MODRM_REG_5 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "LFENCE", I_LFENCE },
{ 0xAE, 0x00, F_F2, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPNE SCASB", I_REPNE_SCASB },
{ 0xAE, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPE SCASB", I_REPE_SCASB },
{ 0xAF, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "IMUL", I_IMUL },
{ 0xAF, 0x00, F_F2 | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPNE SCASW", I_REPNE_SCASW },
{ 0xAF, 0x00, F_F2, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPNE SCASD", I_REPNE_SCASD },
{ 0xAF, 0x00, F_F3 | F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPE SCASW", I_REPE_SCASW },
{ 0xAF, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "REPE SCASD", I_REPE_SCASD },
{ 0xAF, 0x00, F_PREFIX66_IS_PART_OF_OPCODE, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SCASW", I_SCASW },
{ 0xAF, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SCASD", I_SCASD },
{ 0xAF, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SCASQ", I_SCASQ },
{ 0xB0, 0x00, F_IMM8 | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG8_FROM_LOWEST_PART_OF_1ST_BYTE, OP_IMM8, OP_ABSENT, "MOV", I_MOV },
{ 0xB0, 0x00, F_0F | F_MODRM, OP_MODRM_RM8, OP_MODRM_R8, OP_ABSENT, "CMPXCHG", I_CMPXCHG },
{ 0xB1, 0x00, F_0F | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "CMPXCHG", I_CMPXCHG },
{ 0xB3, 0x00, F_0F | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "BTR", I_BTR },
{ 0xB6, 0x00, F_0F | F_REXW_ABSENT | F_MODRM | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_R32, OP_MODRM_RM8, OP_ABSENT, "MOVZX", I_MOVZX },
{ 0xB6, 0x00, F_0F | F_REXW_PRESENT | F_MODRM | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_R64, OP_MODRM_RM8, OP_ABSENT, "MOVZX", I_MOVZX },
{ 0xB7, 0x00, F_0F | F_MODRM, OP_MODRM_R32, OP_MODRM_RM16, OP_ABSENT, "MOVZX", I_MOVZX }, // word ptr!
{ 0xB8, 0x00, F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_IMM32 | F_PREFIX66_ALLOWED | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_IMM32, OP_ABSENT, "MOV", I_MOV },
{ 0xBA, 0x00, F_MODRM_REG_4 | F_0F | F_PREFIX66_ALLOWED | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "BT", I_BT },
{ 0xBA, 0x00, F_MODRM_REG_5 | F_0F | F_PREFIX66_ALLOWED | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "BTS", I_BTS },
{ 0xBA, 0x00, F_MODRM_REG_6 | F_0F | F_PREFIX66_ALLOWED | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "BTR", I_BTR },
{ 0xBA, 0x00, F_MODRM_REG_7 | F_0F | F_PREFIX66_ALLOWED | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "BTC", I_BTC },
{ 0xBC, 0x00, F_0F | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "BSF", I_BSF },
{ 0xBD, 0x00, F_0F | F_MODRM, OP_MODRM_R32, OP_MODRM_RM32, OP_ABSENT, "BSR", I_BSR },
{ 0xBE, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_R32, OP_MODRM_RM8, OP_ABSENT, "MOVSX", I_MOVSX },
{ 0xBF, 0x00, F_0F | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_R32, OP_MODRM_RM16, OP_ABSENT, "MOVSX", I_MOVSX },
{ 0xC0, 0x00, F_MODRM_REG_1 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "ROR", I_ROR },
{ 0xC0, 0x00, F_MODRM_REG_2 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "RCL", I_RCL },
{ 0xC0, 0x00, F_MODRM_REG_4 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SHL", I_SHL },
{ 0xC0, 0x00, F_MODRM_REG_5 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SHR", I_SHR },
{ 0xC0, 0x00, F_MODRM_REG_7 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "SAR", I_SAR },
{ 0xC1, 0x00, F_0F | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_MODRM_R32, OP_ABSENT, "XADD", I_XADD },
{ 0xC1, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "ROL", I_ROL },
{ 0xC1, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "ROR", I_ROR },
{ 0xC1, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "RCL", I_RCL },
{ 0xC1, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "SHL", I_SHL },
{ 0xC1, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "SHR", I_SHR },
{ 0xC1, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_IMM8 | F_PREFIX66_APPLIED_TO_OP1_ONLY, OP_MODRM_RM32, OP_IMM8, OP_ABSENT, "SAR", I_SAR },
{ 0xC2, 0x00, F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_IMM8, "CMPPD", I_CMPPD },
{ 0xC2, 0x00, F_IMM16, OP_IMM16, OP_ABSENT, OP_ABSENT, "RETN", I_RETN },
{ 0xC3, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "RETN", I_RETN },
{ 0xC3, 0x00, F_F3, OP_ABSENT, OP_ABSENT, OP_ABSENT, "RETN", I_RETN },
{ 0xC4, 0x00, F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM32, OP_IMM8, "PINSRW", I_PINSRW }, // [!] костыль. на самом деле надо не так.
{ 0xC5, 0x00, F_0F | F_MODRM | F_IMM8 | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R32, OP_MODRM_RM_XMM, OP_IMM8, "PEXTRW", I_PEXTRW },
{ 0xC6, 0x00, F_MODRM_REG_0 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "MOV", I_MOV },
{ 0xC7, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "MOV", I_MOV },
{ 0xC7, 0x00, F_MODRM_REG_1 | F_0F | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "CMPXCHG8B", I_CMPXCHG8B }, // 1
{ 0xC8, 0x00, F_0F | F_MODRM | F_REG32_IS_LOWEST_PART_OF_1ST_BYTE, OP_REG32_FROM_LOWEST_PART_OF_1ST_BYTE, OP_ABSENT, OP_ABSENT, "BSWAP", I_BSWAP },
{ 0xC8, 0x00, F_X32_ONLY | F_IMM16 | F_IMM8, OP_IMM16_SIGN_EXTENDED_TO_IMM32, OP_IMM8, OP_ABSENT, "ENTER", I_ENTER },
{ 0xC8, 0x00, F_X64_ONLY | F_IMM16 | F_IMM8, OP_IMM16_SIGN_EXTENDED_TO_IMM64, OP_IMM8, OP_ABSENT, "ENTER", I_ENTER },
{ 0xC9, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "LEAVE", I_LEAVE },
{ 0xCA, 0x00, F_IMM16, OP_IMM16, OP_ABSENT, OP_ABSENT, "RETF", I_RETF },
{ 0xCB, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "RETF", I_RETF },
{ 0xCC, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "INT3", I_INT3 },
{ 0xCD, 0x00, F_IMM8, OP_IMM8, OP_ABSENT, OP_ABSENT, "INT", I_INT },
{ 0xCE, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "INTO", I_INTO },
{ 0xCF, 0x00, F_REXW_ABSENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "IRETD", I_IRETD },
{ 0xCF, 0x00, F_REXW_PRESENT, OP_ABSENT, OP_ABSENT, OP_ABSENT, "IRETQ", I_IRETQ },
{ 0xD0, 0x00, F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "ROL", I_ROL },
{ 0xD0, 0x00, F_MODRM_REG_1 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "ROR", I_ROR },
{ 0xD0, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "RCL", I_RCL },
{ 0xD0, 0x00, F_MODRM_REG_4 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "SHL", I_SHL },
{ 0xD0, 0x00, F_MODRM_REG_5 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "SHR", I_SHR },
{ 0xD0, 0x00, F_MODRM_REG_7 | F_MODRM, OP_MODRM_RM8, OP_1, OP_ABSENT, "SAR", I_SAR },
{ 0xD1, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "ROL", I_ROL },
{ 0xD1, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "ROR", I_ROR },
{ 0xD1, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "RCL", I_RCL },
{ 0xD1, 0x00, F_MODRM_REG_3 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "RCR", I_RCR },
{ 0xD1, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "SHL", I_SHL },
{ 0xD1, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "SHR", I_SHR },
{ 0xD1, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_1, OP_ABSENT, "SAR", I_SAR },
{ 0xD1, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSRLW", I_PSRLW },
{ 0xD2, 0x00, F_MODRM_REG_1 | F_MODRM, OP_MODRM_RM8, OP_CL, OP_ABSENT, "ROR", I_ROR },
{ 0xD2, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM8, OP_CL, OP_ABSENT, "RCL", I_RCL },
{ 0xD2, 0x00, F_MODRM_REG_4 | F_MODRM, OP_MODRM_RM8, OP_CL, OP_ABSENT, "SHL", I_SHL },
{ 0xD2, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSRLD", I_PSRLD },
{ 0xD3, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSRLQ", I_PSRLQ }, // 2
{ 0xD3, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "ROL", I_ROL },
{ 0xD3, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "ROR", I_ROR },
{ 0xD3, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "RCL", I_RCL },
{ 0xD3, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "SHL", I_SHL },
{ 0xD3, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "SHR", I_SHR },
{ 0xD3, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM, OP_MODRM_RM32, OP_CL, OP_ABSENT, "SAR", I_SAR },
{ 0xD4, 0x00, F_IMM8, OP_IMM8, OP_ABSENT, OP_ABSENT, "AAM", I_AAM },
{ 0xD5, 0x00, F_IMM8, OP_IMM8, OP_ABSENT, OP_ABSENT, "AAD", I_AAD },
{ 0xD6, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "SETALC", I_SETALC }, // AKA SALC, undocummented
{ 0xD6, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_RM_MM, OP_MODRM_R_XMM, OP_ABSENT, "MOVQ", I_MOVQ },
{ 0xD7, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "XLAT", I_XLAT },
{ 0xD7, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R32, OP_MODRM_RM_XMM, OP_ABSENT, "PMOVMSKB", I_PMOVMSKB },
{ 0xD8, 0x00, F_MODRM_REG_0 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FADD", I_FADD }, // /0
{ 0xD8, 0x00, F_MODRM_REG_1 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FMUL", I_FMUL }, // /1
{ 0xD8, 0x00, F_MODRM_REG_2 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FCOM", I_FCOM }, // /2
{ 0xD8, 0x00, F_MODRM_REG_3 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FCOMP", I_FCOMP },// /3
{ 0xD8, 0x00, F_MODRM_REG_4 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FSUB", I_FSUB }, // /4
{ 0xD8, 0x00, F_MODRM_REG_5 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FSUBR", I_FSUBR }, // /5
{ 0xD8, 0x00, F_MODRM_REG_6 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FDIV", I_FDIV }, // /6
{ 0xD8, 0x00, F_MODRM_REG_7 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FDIVR", I_FDIVR },// /7
{ 0xD9, 0x00, F_MODRM_REG_0 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FLD", I_FLD },
{ 0xD9, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FST", I_FST },
{ 0xD9, 0x00, F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FSTP", I_FSTP },
{ 0xD9, 0x00, F_MODRM_REG_1 | F_MODRM_MOD_IS_3 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FXCH", I_FXCH },
{ 0xD9, 0x00, F_MODRM_REG_4 | F_MODRM_MOD_IS_3 | F_MODRM_RM_0 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FCHS", I_FCHS },
{ 0xD9, 0x00, F_MODRM_REG_4 | F_MODRM_MOD_IS_3 | F_MODRM_RM_1 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FABS", I_FABS },
{ 0xD9, 0x00, F_MODRM_REG_4 | F_MODRM_MOD_IS_3 | F_MODRM_RM_5 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FXAM", I_FXAM },
{ 0xD9, 0x00, F_MODRM_REG_4 | F_MODRM_MOD_IS_NOT_3 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FLDENV", I_FLDENV },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_0 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLD1", I_FLD1 },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_1 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDL2T", I_FLDL2T },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_2 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDL2E", I_FLDL2E },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_3 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDPI", I_FLDPI },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_4 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDLG2", I_FLDLG2 },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_5 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDLN2", I_FLDLN2 },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_3 | F_MODRM_RM_6 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FLDZ", I_FLDZ },
{ 0xD9, 0x00, F_MODRM_REG_5 | F_MODRM_MOD_IS_NOT_3 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FLDCW", I_FLDCW }, // Loads a 16-bit value from the specified memory location into the x87 control word.
{ 0xD9, 0x00, F_MODRM_REG_6 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FNSTENV", I_FNSTENV },
{ 0xD9, 0x00, F_MODRM_REG_7 | F_MODRM_MOD_IS_3 | F_MODRM_RM_7 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FCOS", I_FCOS },
{ 0xD9, 0x00, F_MODRM_REG_7 | F_MODRM_MOD_IS_NOT_3 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FNSTCW", I_FNSTCW }, // store two bytes
{ 0xDA, 0x00, F_MODRM_REG_0 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FIADD", I_FIADD },
{ 0xDA, 0x00, F_MODRM_REG_2 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM_MOD_IS_3 | F_MODRM_RM_0 | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FCMOVBE", I_FCMOVBE },
{ 0xDA, 0x00, F_MODRM_REG_2 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FICOM", I_FICOM },
{ 0xDA, 0x00, F_MODRM_REG_3 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FICOMP", I_FICOMP },
{ 0xDA, 0x00, F_MODRM_REG_5 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM | F_MODRM_MOD_IS_3 | F_MODRM_RM_1, OP_ST0, OP_ST1, OP_ABSENT, "FUCOMPP", I_FUCOMPP },
{ 0xDA, 0x00, F_MODRM_REG_5 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FISUBR", I_FISUBR },
{ 0xDB, 0x00, F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FILD", I_FILD },
{ 0xDB, 0x00, F_MODRM_REG_2 | F_MODRM | F_MODRM_MOD_IS_3 | F_MODRM_RM_0, OP_ST0, OP_MODRM_RM32, OP_ABSENT, "FCMOVNBE", I_FCMOVNBE },
{ 0xDB, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FIST", I_FIST },
{ 0xDB, 0x00, F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FISTP", I_FISTP },
{ 0xDB, 0x00, F_MODRM_REG_4 | F_MODRM_RM_2 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FNCLEX", I_FNCLEX }, // e2, rm=2
{ 0xDB, 0x00, F_MODRM_REG_4 | F_MODRM_RM_3 | F_MODRM, OP_ABSENT, OP_ABSENT, OP_ABSENT, "FNINIT", I_FNINIT }, // e3, rm=3
{ 0xDB, 0x00, F_MODRM_REG_5 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FLD", I_FLD }, // op_modrm_rm - 80 bit!
{ 0xDB, 0x00, F_MODRM_REG_7 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FSTP", I_FSTP }, // op_modrm_rm - 80 bit!
{ 0xDB, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PAND", I_PAND },
{ 0xDC, 0x00, F_MODRM_REG_0 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FADD", I_FADD },
{ 0xDC, 0x00, F_MODRM_REG_1 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FMUL", I_FMUL },
{ 0xDC, 0x00, F_MODRM_REG_2 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FCOM", I_FCOM },
{ 0xDC, 0x00, F_MODRM_REG_3 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FCOMP", I_FCOMP },
{ 0xDC, 0x00, F_MODRM_REG_4 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FSUB", I_FSUB },
{ 0xDC, 0x00, F_MODRM_REG_5 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FSUBR", I_FSUBR },
{ 0xDC, 0x00, F_MODRM_REG_6 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FDIV", I_FDIV },
{ 0xDC, 0x00, F_MODRM_REG_7 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ST0, OP_ABSENT, "FDIVR", I_FDIVR },
{ 0xDD, 0x00, F_MODRM_REG_0 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FLD", I_FLD },
{ 0xDD, 0x00, F_MODRM_REG_2 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_M64FP, OP_ABSENT, OP_ABSENT, "FST", I_FST },
{ 0xDD, 0x00, F_MODRM_REG_3 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FSTP", I_FSTP },
{ 0xDD, 0x00, F_MODRM_REG_4 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FUCOM", I_FUCOM },
{ 0xDD, 0x00, F_MODRM_REG_5 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FUCOMP", I_FUCOMP },
{ 0xDD, 0x00, F_MODRM_REG_7 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FSTSW", I_FSTSW },
{ 0xDE, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FICOM", I_FICOM },
{ 0xDE, 0x00, F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FICOMP", I_FICOMP },
{ 0xDE, 0x00, F_MODRM_MOD_IS_3 | F_MODRM_REG_1 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FMULP", I_FMULP },
{ 0xDE, 0x00, F_MODRM_MOD_IS_3 | F_MODRM_REG_7 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FDIVP", I_FDIVP },
{ 0xDE, 0x00, F_MODRM_MOD_IS_3 | F_MODRM_REG_6 | F_WHEN_MOD3_TREAT_RM_AS_STx | F_MODRM, OP_MODRM_RM32, OP_ST0, OP_ABSENT, "FDIVRP", I_FDIVRP },
{ 0xDF, 0x00, F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "FILD", I_FILD },
{ 0xDF, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FIST", I_FIST },
{ 0xDF, 0x00, F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM16, OP_ABSENT, OP_ABSENT, "FISTP", I_FISTP },
{ 0xDF, 0x00, F_MODRM_REG_4 | F_MODRM_RM_0 | F_MODRM, OP_AX, OP_ABSENT, OP_ABSENT, "FNSTSW", I_FNSTSW },
{ 0xDF, 0x00, F_MODRM_REG_5 | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FILD", I_FILD },
{ 0xDF, 0x00, F_MODRM_REG_7 | F_MODRM, OP_MODRM_RM_MM, OP_ABSENT, OP_ABSENT, "FISTP", I_FISTP },
{ 0xE0, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "LOOPNE", I_LOOPNE },
{ 0xE1, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "LOOPE", I_LOOPE },
{ 0xE2, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "LOOP", I_LOOP },
{ 0xE3, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JECXZ", I_JECXZ },
{ 0xE4, 0x00, F_IMM8, OP_AL, OP_IMM8, OP_ABSENT, "IN", I_IN },
{ 0xE5, 0x00, F_IMM8 | F_PREFIX66_ALLOWED, OP_EAX, OP_IMM8, OP_ABSENT, "IN", I_IN },
{ 0xE6, 0x00, F_F3 | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "CVTDQ2PD", I_CVTDQ2PD }, // [!] второй операнд неверен
{ 0xE6, 0x00, F_IMM8, OP_IMM8, OP_AL, OP_ABSENT, "OUT", I_OUT },
{ 0xE7, 0x00, F_IMM8 | F_PREFIX66_ALLOWED, OP_IMM8, OP_EAX, OP_ABSENT, "OUT", I_OUT },
{ 0xE8, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "CALL", I_CALL },
{ 0xE9, 0x00, F_X32_ONLY | F_IMM32, OP_IMM32_AS_REL32, OP_ABSENT, OP_ABSENT, "JMP", I_JMP },
{ 0xE9, 0x00, F_X64_ONLY | F_IMM32, OP_IMM32_SIGN_EXTENDED_TO_REL64, OP_ABSENT, OP_ABSENT, "JMP", I_JMP },
{ 0xE9, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSUBSW", I_PSUBSW },
{ 0xEA, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PMINSW", I_PMINSW },
{ 0xEB, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "POR", I_POR },
{ 0xEB, 0x00, F_X64_PROMOTE_OP1_32_TO_64 | F_IMM8, OP_IMM8_AS_REL32, OP_ABSENT, OP_ABSENT, "JMP", I_JMP },
{ 0xEC, 0x00, 0, OP_AL, OP_DX, OP_ABSENT, "IN", I_IN },
{ 0xED, 0x00, F_PREFIX66_ALLOWED, OP_EAX, OP_DX, OP_ABSENT, "IN", I_IN },
{ 0xED, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PADDSW", I_PADDSW },
{ 0xEE, 0x00, 0, OP_DX, OP_AL, OP_ABSENT, "OUT", I_OUT },
{ 0xEE, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PMAXSW", I_PMAXSW },
{ 0xEF, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PXOR", I_PXOR },
{ 0xEF, 0x00, F_PREFIX66_ALLOWED, OP_DX, OP_EAX, OP_ABSENT, "OUT", I_OUT },
{ 0xF1, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "ICEBP", I_ICEBP }, // undocummented
{ 0xF3, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSLLQ", I_PSLLQ },
{ 0xF4, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "HLT", I_HLT },
{ 0xF5, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CMC", I_CMC },
{ 0xF6, 0x00, F_MODRM_REG_0 | F_MODRM | F_IMM8, OP_MODRM_RM8, OP_IMM8, OP_ABSENT, "TEST", I_TEST },
{ 0xF6, 0x00, F_MODRM_REG_2 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "NOT", I_NOT },
{ 0xF6, 0x00, F_MODRM_REG_3 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "NEG", I_NEG },
{ 0xF6, 0x00, F_MODRM_REG_4 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "MUL", I_MUL },
{ 0xF6, 0x00, F_MODRM_REG_5 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "IMUL", I_IMUL },
{ 0xF6, 0x00, F_MODRM_REG_6 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "DIV", I_DIV },
{ 0xF7, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_REXW_SIGN_EXTEND_OP2_32_TO_64 | F_MODRM | F_IMM32 | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_IMM32, OP_ABSENT, "TEST", I_TEST },
{ 0xF7, 0x00, F_MODRM_REG_2 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "NOT", I_NOT },
{ 0xF7, 0x00, F_MODRM_REG_3 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "NEG", I_NEG },
{ 0xF7, 0x00, F_MODRM_REG_4 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "MUL", I_MUL },
{ 0xF7, 0x00, F_MODRM_REG_5 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "IMUL", I_IMUL },
{ 0xF7, 0x00, F_MODRM_REG_6 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "DIV", I_DIV },
{ 0xF7, 0x00, F_MODRM_REG_7 | F_REXW_PROMOTE_ALL_32_OPS_TO_64 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "IDIV", I_IDIV },
{ 0xF8, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CLC", I_CLC },
{ 0xF9, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STC", I_STC },
{ 0xF9, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSUBW", I_PSUBW },
{ 0xFA, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CLI", I_CLI },
{ 0xFA, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSUBD", I_PSUBD },
{ 0xFB, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STI", I_STI },
{ 0xFB, 0x00, F_0F | F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PSUBQ", I_PSUBQ },
{ 0xFC, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "CLD", I_CLD },
{ 0xFC, 0x00, F_MODRM | F_PREFIX66_IS_PART_OF_OPCODE | F_0F, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PADDB", I_PADDB },
{ 0xFD, 0x00, 0, OP_ABSENT, OP_ABSENT, OP_ABSENT, "STD", I_STD },
{ 0xFE, 0x00, F_MODRM_REG_0 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "INC", I_INC },
{ 0xFE, 0x00, F_MODRM_REG_1 | F_MODRM, OP_MODRM_RM8, OP_ABSENT, OP_ABSENT, "DEC", I_DEC },
{ 0xFE, 0x00, F_PREFIX66_IS_PART_OF_OPCODE | F_0F | F_MODRM, OP_MODRM_R_XMM, OP_MODRM_RM_XMM, OP_ABSENT, "PADDD", I_PADDD },
{ 0xFF, 0x00, F_MODRM_REG_0 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "INC", I_INC },
{ 0xFF, 0x00, F_MODRM_REG_1 | F_REXW_PROMOTE_OP1_32_TO_64 | F_MODRM | F_PREFIX66_ALLOWED, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "DEC", I_DEC },
{ 0xFF, 0x00, F_MODRM_REG_2 | F_X32_ONLY | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "CALL", I_CALL }, // [?] IDA marks this as "large"
{ 0xFF, 0x00, F_MODRM_REG_2 | F_X64_ONLY | F_MODRM, OP_MODRM_RM64, OP_ABSENT, OP_ABSENT, "CALL", I_CALL }, // [?] IDA marks this as "large"
{ 0xFF, 0x00, F_MODRM_REG_4 | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "JMP", I_JMP },
{ 0xFF, 0x00, F_MODRM_REG_6 | F_X32_ONLY | F_PREFIX66_ALLOWED | F_MODRM, OP_MODRM_RM32, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
{ 0xFF, 0x00, F_MODRM_REG_6 | F_X64_ONLY | F_MODRM, OP_MODRM_RM64, OP_ABSENT, OP_ABSENT, "PUSH", I_PUSH },
/* vim: set expandtab ts=4 sw=4 : */