13 #ifdef GET_REGINFO_ENUM
14 #undef GET_REGINFO_ENUM
264 X86_GR8RegClassID = 0,
265 X86_GR8_NOREXRegClassID = 1,
266 X86_VK1RegClassID = 2,
267 X86_VK2RegClassID = 3,
268 X86_VK4RegClassID = 4,
269 X86_VK8RegClassID = 5,
270 X86_VK1WMRegClassID = 6,
271 X86_VK2WMRegClassID = 7,
272 X86_VK4WMRegClassID = 8,
273 X86_VK8WMRegClassID = 9,
274 X86_GR8_ABCD_HRegClassID = 10,
275 X86_GR8_ABCD_LRegClassID = 11,
276 X86_GR16RegClassID = 12,
277 X86_GR16_NOREXRegClassID = 13,
278 X86_VK16RegClassID = 14,
279 X86_VK16WMRegClassID = 15,
280 X86_SEGMENT_REGRegClassID = 16,
281 X86_GR16_ABCDRegClassID = 17,
282 X86_FPCCRRegClassID = 18,
283 X86_FR32XRegClassID = 19,
284 X86_FR32RegClassID = 20,
285 X86_GR32RegClassID = 21,
286 X86_GR32_NOAXRegClassID = 22,
287 X86_GR32_NOSPRegClassID = 23,
288 X86_GR32_NOAX_and_GR32_NOSPRegClassID = 24,
289 X86_DEBUG_REGRegClassID = 25,
290 X86_GR32_NOREXRegClassID = 26,
291 X86_VK32RegClassID = 27,
292 X86_GR32_NOAX_and_GR32_NOREXRegClassID = 28,
293 X86_GR32_NOREX_NOSPRegClassID = 29,
294 X86_RFP32RegClassID = 30,
295 X86_VK32WMRegClassID = 31,
296 X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 32,
297 X86_GR32_ABCDRegClassID = 33,
298 X86_GR32_ABCD_and_GR32_NOAXRegClassID = 34,
299 X86_GR32_TCRegClassID = 35,
300 X86_GR32_ADRegClassID = 36,
301 X86_GR32_NOAX_and_GR32_TCRegClassID = 37,
302 X86_CCRRegClassID = 38,
303 X86_GR32_AD_and_GR32_NOAXRegClassID = 39,
304 X86_RFP64RegClassID = 40,
305 X86_FR64XRegClassID = 41,
306 X86_GR64RegClassID = 42,
307 X86_CONTROL_REGRegClassID = 43,
308 X86_FR64RegClassID = 44,
309 X86_GR64_with_sub_8bitRegClassID = 45,
310 X86_GR64_NOSPRegClassID = 46,
311 X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 47,
312 X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID = 48,
313 X86_GR64_NOREXRegClassID = 49,
314 X86_GR64_TCRegClassID = 50,
315 X86_GR64_NOSP_and_GR64_TCRegClassID = 51,
316 X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID = 52,
317 X86_VK64RegClassID = 53,
318 X86_VR64RegClassID = 54,
319 X86_GR64_NOREX_NOSPRegClassID = 55,
320 X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 56,
321 X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 57,
322 X86_VK64WMRegClassID = 58,
323 X86_GR64_NOREX_and_GR64_TCRegClassID = 59,
324 X86_GR64_TCW64RegClassID = 60,
325 X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID = 61,
326 X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID = 62,
327 X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID = 63,
328 X86_GR64_ABCDRegClassID = 64,
329 X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID = 65,
330 X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID = 66,
331 X86_GR64_with_sub_32bit_in_GR32_TCRegClassID = 67,
332 X86_GR64_with_sub_32bit_in_GR32_ADRegClassID = 68,
333 X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID = 69,
334 X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID = 70,
335 X86_RSTRegClassID = 71,
336 X86_RFP80RegClassID = 72,
337 X86_VR128XRegClassID = 73,
338 X86_VR128RegClassID = 74,
339 X86_VR256XRegClassID = 75,
340 X86_VR256RegClassID = 76,
341 X86_VR512RegClassID = 77,
342 X86_VR512_with_sub_xmm_in_FR32RegClassID = 78,
347 #ifdef GET_REGINFO_MC_DESC
348 #undef GET_REGINFO_MC_DESC
350 static const MCPhysReg X86RegDiffLists[] = {
394 65520, 65530, 65534, 65533, 0,
396 65520, 65523, 65533, 65535, 0,
397 65520, 65526, 65534, 65535, 0,
398 65520, 65520, 65535, 65535, 0,
401 static const uint16_t X86SubRegIdxLists[] = {
409 { 5, 0, 0, 0, 0, 0 },
410 { 850, 2, 90, 3, 2273, 0 },
411 { 878, 2, 86, 3, 2273, 0 },
412 { 996, 151, 87, 6, 0, 2 },
413 { 853, 2, 78, 3, 2193, 0 },
414 { 881, 2, 74, 3, 2193, 0 },
415 { 907, 1, 83, 2, 544, 3 },
416 { 898, 2, 82, 3, 544, 0 },
417 { 1004, 141, 75, 6, 48, 2 },
418 { 856, 2, 70, 3, 2081, 0 },
419 { 884, 2, 66, 3, 2081, 0 },
420 { 930, 2, 2, 3, 2081, 0 },
421 { 1012, 146, 67, 6, 96, 2 },
422 { 859, 2, 58, 3, 2049, 0 },
423 { 863, 1, 63, 2, 624, 3 },
424 { 890, 2, 62, 3, 624, 0 },
425 { 887, 2, 54, 3, 2017, 0 },
426 { 933, 2, 2, 3, 2017, 0 },
427 { 1020, 134, 55, 6, 496, 2 },
428 { 995, 150, 56, 5, 0, 2 },
429 { 906, 24, 56, 1, 544, 3 },
430 { 1003, 140, 56, 5, 323, 2 },
431 { 1011, 145, 56, 5, 323, 2 },
432 { 862, 28, 56, 1, 624, 3 },
433 { 1019, 133, 56, 5, 496, 2 },
434 { 942, 2, 2, 3, 1985, 0 },
435 { 914, 37, 52, 10, 1985, 5 },
436 { 1027, 2, 2, 3, 1985, 0 },
437 { 936, 2, 2, 3, 1985, 0 },
438 { 870, 10, 45, 1, 1985, 3 },
439 { 922, 14, 45, 1, 1985, 3 },
440 { 990, 2, 2, 3, 1985, 0 },
441 { 939, 2, 2, 3, 1985, 0 },
442 { 946, 2, 2, 3, 1985, 0 },
443 { 915, 2, 51, 3, 656, 0 },
444 { 999, 149, 2, 4, 0, 2 },
445 { 910, 23, 2, 0, 544, 3 },
446 { 1007, 139, 2, 4, 275, 2 },
447 { 1015, 144, 2, 4, 275, 2 },
448 { 866, 27, 2, 0, 624, 3 },
449 { 1023, 132, 2, 4, 496, 2 },
450 { 918, 36, 2, 9, 1592, 5 },
451 { 1031, 2, 2, 3, 1592, 0 },
452 { 874, 9, 2, 0, 1889, 3 },
453 { 926, 13, 2, 0, 1889, 3 },
454 { 871, 1, 48, 2, 896, 3 },
455 { 894, 2, 47, 3, 896, 0 },
456 { 923, 1, 44, 2, 1504, 3 },
457 { 902, 2, 43, 3, 1504, 0 },
458 { 949, 2, 2, 3, 1889, 0 },
459 { 86, 2, 2, 3, 1889, 0 },
460 { 184, 2, 2, 3, 1889, 0 },
461 { 264, 2, 2, 3, 1889, 0 },
462 { 344, 2, 2, 3, 1889, 0 },
463 { 424, 2, 2, 3, 1889, 0 },
464 { 504, 2, 2, 3, 1889, 0 },
465 { 574, 2, 2, 3, 1889, 0 },
466 { 644, 2, 2, 3, 1889, 0 },
467 { 707, 2, 2, 3, 1889, 0 },
468 { 766, 2, 2, 3, 1889, 0 },
469 { 18, 2, 2, 3, 1889, 0 },
470 { 116, 2, 2, 3, 1889, 0 },
471 { 214, 2, 2, 3, 1889, 0 },
472 { 294, 2, 2, 3, 1889, 0 },
473 { 374, 2, 2, 3, 1889, 0 },
474 { 454, 2, 2, 3, 1889, 0 },
475 { 90, 2, 2, 3, 1889, 0 },
476 { 188, 2, 2, 3, 1889, 0 },
477 { 268, 2, 2, 3, 1889, 0 },
478 { 348, 2, 2, 3, 1889, 0 },
479 { 428, 2, 2, 3, 1889, 0 },
480 { 508, 2, 2, 3, 1889, 0 },
481 { 578, 2, 2, 3, 1889, 0 },
482 { 648, 2, 2, 3, 1889, 0 },
483 { 711, 2, 2, 3, 1889, 0 },
484 { 770, 2, 2, 3, 1889, 0 },
485 { 23, 2, 2, 3, 1889, 0 },
486 { 121, 2, 2, 3, 1889, 0 },
487 { 219, 2, 2, 3, 1889, 0 },
488 { 299, 2, 2, 3, 1889, 0 },
489 { 379, 2, 2, 3, 1889, 0 },
490 { 459, 2, 2, 3, 1889, 0 },
491 { 82, 2, 2, 3, 1889, 0 },
492 { 180, 2, 2, 3, 1889, 0 },
493 { 260, 2, 2, 3, 1889, 0 },
494 { 340, 2, 2, 3, 1889, 0 },
495 { 420, 2, 2, 3, 1889, 0 },
496 { 500, 2, 2, 3, 1889, 0 },
497 { 570, 2, 2, 3, 1889, 0 },
498 { 640, 2, 2, 3, 1889, 0 },
499 { 64, 2, 2, 3, 1889, 0 },
500 { 162, 2, 2, 3, 1889, 0 },
501 { 242, 2, 2, 3, 1889, 0 },
502 { 322, 2, 2, 3, 1889, 0 },
503 { 402, 2, 2, 3, 1889, 0 },
504 { 482, 2, 2, 3, 1889, 0 },
505 { 552, 2, 2, 3, 1889, 0 },
506 { 622, 2, 2, 3, 1889, 0 },
507 { 68, 2, 2, 3, 1889, 0 },
508 { 166, 2, 2, 3, 1889, 0 },
509 { 246, 2, 2, 3, 1889, 0 },
510 { 326, 2, 2, 3, 1889, 0 },
511 { 406, 2, 2, 3, 1889, 0 },
512 { 486, 2, 2, 3, 1889, 0 },
513 { 556, 2, 2, 3, 1889, 0 },
514 { 626, 2, 2, 3, 1889, 0 },
515 { 708, 120, 2, 0, 1889, 3 },
516 { 767, 120, 2, 0, 1889, 3 },
517 { 19, 120, 2, 0, 1889, 3 },
518 { 117, 120, 2, 0, 1889, 3 },
519 { 215, 120, 2, 0, 1889, 3 },
520 { 295, 120, 2, 0, 1889, 3 },
521 { 375, 120, 2, 0, 1889, 3 },
522 { 455, 120, 2, 0, 1889, 3 },
523 { 94, 2, 2, 3, 1889, 0 },
524 { 192, 2, 2, 3, 1889, 0 },
525 { 272, 2, 2, 3, 1889, 0 },
526 { 352, 2, 2, 3, 1889, 0 },
527 { 432, 2, 2, 3, 1889, 0 },
528 { 512, 2, 2, 3, 1889, 0 },
529 { 582, 2, 2, 3, 1889, 0 },
530 { 652, 2, 2, 3, 1889, 0 },
531 { 67, 2, 96, 3, 1889, 0 },
532 { 165, 2, 96, 3, 1889, 0 },
533 { 245, 2, 96, 3, 1889, 0 },
534 { 325, 2, 96, 3, 1889, 0 },
535 { 405, 2, 96, 3, 1889, 0 },
536 { 485, 2, 96, 3, 1889, 0 },
537 { 555, 2, 96, 3, 1889, 0 },
538 { 625, 2, 96, 3, 1889, 0 },
539 { 692, 2, 96, 3, 1889, 0 },
540 { 751, 2, 96, 3, 1889, 0 },
541 { 0, 2, 96, 3, 1889, 0 },
542 { 98, 2, 96, 3, 1889, 0 },
543 { 196, 2, 96, 3, 1889, 0 },
544 { 276, 2, 96, 3, 1889, 0 },
545 { 356, 2, 96, 3, 1889, 0 },
546 { 436, 2, 96, 3, 1889, 0 },
547 { 516, 2, 96, 3, 1889, 0 },
548 { 586, 2, 96, 3, 1889, 0 },
549 { 656, 2, 96, 3, 1889, 0 },
550 { 715, 2, 96, 3, 1889, 0 },
551 { 28, 2, 96, 3, 1889, 0 },
552 { 126, 2, 96, 3, 1889, 0 },
553 { 224, 2, 96, 3, 1889, 0 },
554 { 304, 2, 96, 3, 1889, 0 },
555 { 384, 2, 96, 3, 1889, 0 },
556 { 464, 2, 96, 3, 1889, 0 },
557 { 534, 2, 96, 3, 1889, 0 },
558 { 604, 2, 96, 3, 1889, 0 },
559 { 674, 2, 96, 3, 1889, 0 },
560 { 733, 2, 96, 3, 1889, 0 },
561 { 46, 2, 96, 3, 1889, 0 },
562 { 144, 2, 96, 3, 1889, 0 },
563 { 72, 116, 97, 13, 1809, 7 },
564 { 170, 116, 97, 13, 1809, 7 },
565 { 250, 116, 97, 13, 1809, 7 },
566 { 330, 116, 97, 13, 1809, 7 },
567 { 410, 116, 97, 13, 1809, 7 },
568 { 490, 116, 97, 13, 1809, 7 },
569 { 560, 116, 97, 13, 1809, 7 },
570 { 630, 116, 97, 13, 1809, 7 },
571 { 697, 116, 97, 13, 1809, 7 },
572 { 756, 116, 97, 13, 1809, 7 },
573 { 6, 116, 97, 13, 1809, 7 },
574 { 104, 116, 97, 13, 1809, 7 },
575 { 202, 116, 97, 13, 1809, 7 },
576 { 282, 116, 97, 13, 1809, 7 },
577 { 362, 116, 97, 13, 1809, 7 },
578 { 442, 116, 97, 13, 1809, 7 },
579 { 522, 116, 97, 13, 1809, 7 },
580 { 592, 116, 97, 13, 1809, 7 },
581 { 662, 116, 97, 13, 1809, 7 },
582 { 721, 116, 97, 13, 1809, 7 },
583 { 34, 116, 97, 13, 1809, 7 },
584 { 132, 116, 97, 13, 1809, 7 },
585 { 230, 116, 97, 13, 1809, 7 },
586 { 310, 116, 97, 13, 1809, 7 },
587 { 390, 116, 97, 13, 1809, 7 },
588 { 470, 116, 97, 13, 1809, 7 },
589 { 540, 116, 97, 13, 1809, 7 },
590 { 610, 116, 97, 13, 1809, 7 },
591 { 680, 116, 97, 13, 1809, 7 },
592 { 739, 116, 97, 13, 1809, 7 },
593 { 52, 116, 97, 13, 1809, 7 },
594 { 150, 116, 97, 13, 1809, 7 },
595 { 77, 115, 2, 12, 1777, 7 },
596 { 175, 115, 2, 12, 1777, 7 },
597 { 255, 115, 2, 12, 1777, 7 },
598 { 335, 115, 2, 12, 1777, 7 },
599 { 415, 115, 2, 12, 1777, 7 },
600 { 495, 115, 2, 12, 1777, 7 },
601 { 565, 115, 2, 12, 1777, 7 },
602 { 635, 115, 2, 12, 1777, 7 },
603 { 702, 115, 2, 12, 1777, 7 },
604 { 761, 115, 2, 12, 1777, 7 },
605 { 12, 115, 2, 12, 1777, 7 },
606 { 110, 115, 2, 12, 1777, 7 },
607 { 208, 115, 2, 12, 1777, 7 },
608 { 288, 115, 2, 12, 1777, 7 },
609 { 368, 115, 2, 12, 1777, 7 },
610 { 448, 115, 2, 12, 1777, 7 },
611 { 528, 115, 2, 12, 1777, 7 },
612 { 598, 115, 2, 12, 1777, 7 },
613 { 668, 115, 2, 12, 1777, 7 },
614 { 727, 115, 2, 12, 1777, 7 },
615 { 40, 115, 2, 12, 1777, 7 },
616 { 138, 115, 2, 12, 1777, 7 },
617 { 236, 115, 2, 12, 1777, 7 },
618 { 316, 115, 2, 12, 1777, 7 },
619 { 396, 115, 2, 12, 1777, 7 },
620 { 476, 115, 2, 12, 1777, 7 },
621 { 546, 115, 2, 12, 1777, 7 },
622 { 616, 115, 2, 12, 1777, 7 },
623 { 686, 115, 2, 12, 1777, 7 },
624 { 745, 115, 2, 12, 1777, 7 },
625 { 58, 115, 2, 12, 1777, 7 },
626 { 156, 115, 2, 12, 1777, 7 },
627 { 804, 2, 107, 3, 1681, 0 },
628 { 808, 2, 107, 3, 1681, 0 },
629 { 774, 2, 107, 3, 1681, 0 },
630 { 779, 2, 107, 3, 1681, 0 },
631 { 784, 2, 107, 3, 1681, 0 },
632 { 789, 2, 107, 3, 1681, 0 },
633 { 794, 2, 107, 3, 1681, 0 },
634 { 799, 2, 107, 3, 1681, 0 },
635 { 842, 121, 109, 1, 1649, 3 },
636 { 846, 121, 109, 1, 1649, 3 },
637 { 812, 121, 109, 1, 1649, 3 },
638 { 817, 121, 109, 1, 1649, 3 },
639 { 822, 121, 109, 1, 1649, 3 },
640 { 827, 121, 109, 1, 1649, 3 },
641 { 832, 121, 109, 1, 1649, 3 },
642 { 837, 121, 109, 1, 1649, 3 },
643 { 982, 122, 108, 2, 1617, 3 },
644 { 986, 122, 108, 2, 1617, 3 },
645 { 952, 122, 108, 2, 1617, 3 },
646 { 957, 122, 108, 2, 1617, 3 },
647 { 962, 122, 108, 2, 1617, 3 },
648 { 967, 122, 108, 2, 1617, 3 },
649 { 972, 122, 108, 2, 1617, 3 },
650 { 977, 122, 108, 2, 1617, 3 },
655 X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH, X86_SIL, X86_DIL, X86_BPL, X86_SPL, X86_R8B, X86_R9B, X86_R10B, X86_R11B, X86_R14B, X86_R15B, X86_R12B, X86_R13B,
660 0xb6, 0xa6, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
665 X86_AL, X86_CL, X86_DL, X86_AH, X86_CH, X86_DH, X86_BL, X86_BH,
669 static const uint8_t GR8_NOREXBits[] = {
675 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
680 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
685 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
690 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
695 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
700 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
705 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
710 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
715 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
720 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
725 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
730 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
735 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
740 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
745 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
750 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
755 X86_AH, X86_CH, X86_DH, X86_BH,
759 static uint8_t GR8_ABCD_HBits[] = {
765 X86_AL, X86_CL, X86_DL, X86_BL,
769 static uint8_t GR8_ABCD_LBits[] = {
775 X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP, X86_R8W, X86_R9W, X86_R10W, X86_R11W, X86_R14W, X86_R15W, X86_R12W, X86_R13W,
780 0x48, 0x51, 0x04, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
785 X86_AX, X86_CX, X86_DX, X86_SI, X86_DI, X86_BX, X86_BP, X86_SP,
789 static uint8_t GR16_NOREXBits[] = {
790 0x48, 0x51, 0x04, 0x00, 0x00, 0xa0,
795 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
800 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
805 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
809 static uint8_t VK16WMBits[] = {
810 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
815 X86_CS, X86_DS, X86_SS, X86_ES, X86_FS, X86_GS,
819 static const uint8_t SEGMENT_REGBits[] = {
820 0x00, 0x08, 0x02, 0x10, 0x03, 0x00, 0x02,
825 X86_AX, X86_CX, X86_DX, X86_BX,
829 static const uint8_t GR16_ABCDBits[] = {
839 static const uint8_t FPCCRBits[] = {
840 0x00, 0x00, 0x00, 0x80,
845 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
850 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
855 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
860 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
865 X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
870 0x00, 0x00, 0xf8, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
875 X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
879 static uint8_t GR32_NOAXBits[] = {
880 0x00, 0x00, 0xf0, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
885 X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
889 static uint8_t GR32_NOSPBits[] = {
890 0x00, 0x00, 0xf8, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
894 static const MCPhysReg GR32_NOAX_and_GR32_NOSP[] = {
895 X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_R8D, X86_R9D, X86_R10D, X86_R11D, X86_R14D, X86_R15D, X86_R12D, X86_R13D,
899 static uint8_t GR32_NOAX_and_GR32_NOSPBits[] = {
900 0x00, 0x00, 0xf0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
905 X86_DR0, X86_DR1, X86_DR2, X86_DR3, X86_DR4, X86_DR5, X86_DR6, X86_DR7,
909 static const uint8_t DEBUG_REGBits[] = {
910 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
915 X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP,
919 static const uint8_t GR32_NOREXBits[] = {
920 0x00, 0x00, 0xf8, 0x61,
925 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
930 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
934 static const MCPhysReg GR32_NOAX_and_GR32_NOREX[] = {
935 X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP, X86_ESP,
939 static const uint8_t GR32_NOAX_and_GR32_NOREXBits[] = {
940 0x00, 0x00, 0xf0, 0x61,
944 static const MCPhysReg GR32_NOREX_NOSP[] = {
945 X86_EAX, X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP,
949 static const uint8_t GR32_NOREX_NOSPBits[] = {
950 0x00, 0x00, 0xf8, 0x21,
955 X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
960 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
965 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
969 static uint8_t VK32WMBits[] = {
970 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
974 static const MCPhysReg GR32_NOAX_and_GR32_NOREX_NOSP[] = {
975 X86_ECX, X86_EDX, X86_ESI, X86_EDI, X86_EBX, X86_EBP,
979 static const uint8_t GR32_NOAX_and_GR32_NOREX_NOSPBits[] = {
980 0x00, 0x00, 0xf0, 0x21,
985 X86_EAX, X86_ECX, X86_EDX, X86_EBX,
989 static const uint8_t GR32_ABCDBits[] = {
990 0x00, 0x00, 0x68, 0x01,
994 static const MCPhysReg GR32_ABCD_and_GR32_NOAX[] = {
995 X86_ECX, X86_EDX, X86_EBX,
999 static const uint8_t GR32_ABCD_and_GR32_NOAXBits[] = {
1000 0x00, 0x00, 0x60, 0x01,
1005 X86_EAX, X86_ECX, X86_EDX,
1009 static const uint8_t GR32_TCBits[] = {
1010 0x00, 0x00, 0x48, 0x01,
1019 static const uint8_t GR32_ADBits[] = {
1020 0x00, 0x00, 0x08, 0x01,
1024 static const MCPhysReg GR32_NOAX_and_GR32_TC[] = {
1029 static const uint8_t GR32_NOAX_and_GR32_TCBits[] = {
1030 0x00, 0x00, 0x40, 0x01,
1039 static const uint8_t CCRBits[] = {
1040 0x00, 0x00, 0x00, 0x02,
1044 static const MCPhysReg GR32_AD_and_GR32_NOAX[] = {
1049 static const uint8_t GR32_AD_and_GR32_NOAXBits[] = {
1050 0x00, 0x00, 0x00, 0x01,
1055 X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
1059 static uint8_t RFP64Bits[] = {
1060 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
1065 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
1069 static uint8_t FR64XBits[] = {
1070 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1075 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP, X86_RIP,
1080 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1084 static const MCPhysReg CONTROL_REG[] = {
1085 X86_CR0, X86_CR1, X86_CR2, X86_CR3, X86_CR4, X86_CR5, X86_CR6, X86_CR7, X86_CR8, X86_CR9, X86_CR10, X86_CR11, X86_CR12, X86_CR13, X86_CR14, X86_CR15,
1089 static const uint8_t CONTROL_REGBits[] = {
1090 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1095 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
1100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1104 static const MCPhysReg GR64_with_sub_8bit[] = {
1105 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP,
1109 static uint8_t GR64_with_sub_8bitBits[] = {
1110 0x00, 0x00, 0x00, 0x00, 0xf8, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1115 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP,
1119 static uint8_t GR64_NOSPBits[] = {
1120 0x00, 0x00, 0x00, 0x00, 0xf8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1124 static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX[] = {
1125 X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP, X86_RSP,
1129 static uint8_t GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1130 0x00, 0x00, 0x00, 0x00, 0xf0, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1134 static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP[] = {
1135 X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R10, X86_R11, X86_RBX, X86_R14, X86_R15, X86_R12, X86_R13, X86_RBP,
1139 static uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits[] = {
1140 0x00, 0x00, 0x00, 0x00, 0xf0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1145 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP, X86_RIP,
1149 static const uint8_t GR64_NOREXBits[] = {
1150 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1b,
1155 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11, X86_RIP,
1159 static uint8_t GR64_TCBits[] = {
1160 0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1164 static const MCPhysReg GR64_NOSP_and_GR64_TC[] = {
1165 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11,
1169 static uint8_t GR64_NOSP_and_GR64_TCBits[] = {
1170 0x00, 0x00, 0x00, 0x00, 0xc8, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1174 static const MCPhysReg GR64_with_sub_16bit_in_GR16_NOREX[] = {
1175 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP,
1179 static const uint8_t GR64_with_sub_16bit_in_GR16_NOREXBits[] = {
1180 0x00, 0x00, 0x00, 0x00, 0xf8, 0x19,
1185 X86_K0, X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
1190 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1195 X86_MM0, X86_MM1, X86_MM2, X86_MM3, X86_MM4, X86_MM5, X86_MM6, X86_MM7,
1200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1204 static const MCPhysReg GR64_NOREX_NOSP[] = {
1205 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP,
1209 static const uint8_t GR64_NOREX_NOSPBits[] = {
1210 0x00, 0x00, 0x00, 0x00, 0xf8, 0x09,
1214 static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX[] = {
1215 X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_R8, X86_R9, X86_R11,
1219 static uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1220 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1224 static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = {
1225 X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP, X86_RSP,
1229 static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = {
1230 0x00, 0x00, 0x00, 0x00, 0xf0, 0x19,
1235 X86_K1, X86_K2, X86_K3, X86_K4, X86_K5, X86_K6, X86_K7,
1239 static uint8_t VK64WMBits[] = {
1240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03,
1244 static const MCPhysReg GR64_NOREX_and_GR64_TC[] = {
1245 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RIP,
1249 static const uint8_t GR64_NOREX_and_GR64_TCBits[] = {
1250 0x00, 0x00, 0x00, 0x00, 0xc8, 0x0b,
1255 X86_RAX, X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11,
1259 static uint8_t GR64_TCW64Bits[] = {
1260 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1264 static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP[] = {
1265 X86_RCX, X86_RDX, X86_RSI, X86_RDI, X86_RBX, X86_RBP,
1269 static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits[] = {
1270 0x00, 0x00, 0x00, 0x00, 0xf0, 0x09,
1274 static const MCPhysReg GR64_NOREX_NOSP_and_GR64_TC[] = {
1275 X86_RAX, X86_RCX, X86_RDX, X86_RSI, X86_RDI,
1279 static const uint8_t GR64_NOREX_NOSP_and_GR64_TCBits[] = {
1280 0x00, 0x00, 0x00, 0x00, 0xc8, 0x09,
1284 static const MCPhysReg GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX[] = {
1285 X86_RCX, X86_RDX, X86_R8, X86_R9, X86_R11,
1289 static uint8_t GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits[] = {
1290 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c,
1295 X86_RAX, X86_RCX, X86_RDX, X86_RBX,
1299 static const uint8_t GR64_ABCDBits[] = {
1300 0x00, 0x00, 0x00, 0x00, 0x68, 0x01,
1304 static const MCPhysReg GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX[] = {
1305 X86_RCX, X86_RDX, X86_RSI, X86_RDI,
1309 static const uint8_t GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits[] = {
1310 0x00, 0x00, 0x00, 0x00, 0xc0, 0x09,
1314 static const MCPhysReg GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX[] = {
1315 X86_RCX, X86_RDX, X86_RBX,
1319 static const uint8_t GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits[] = {
1320 0x00, 0x00, 0x00, 0x00, 0x60, 0x01,
1324 static const MCPhysReg GR64_with_sub_32bit_in_GR32_TC[] = {
1325 X86_RAX, X86_RCX, X86_RDX,
1329 static const uint8_t GR64_with_sub_32bit_in_GR32_TCBits[] = {
1330 0x00, 0x00, 0x00, 0x00, 0x48, 0x01,
1334 static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD[] = {
1339 static const uint8_t GR64_with_sub_32bit_in_GR32_ADBits[] = {
1340 0x00, 0x00, 0x00, 0x00, 0x08, 0x01,
1344 static const MCPhysReg GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC[] = {
1349 static const uint8_t GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits[] = {
1350 0x00, 0x00, 0x00, 0x00, 0x40, 0x01,
1354 static const MCPhysReg GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX[] = {
1359 static const uint8_t GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits[] = {
1360 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1365 X86_ST0, X86_ST1, X86_ST2, X86_ST3, X86_ST4, X86_ST5, X86_ST6, X86_ST7,
1370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
1375 X86_FP0, X86_FP1, X86_FP2, X86_FP3, X86_FP4, X86_FP5, X86_FP6,
1379 static uint8_t RFP80Bits[] = {
1380 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01,
1385 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15, X86_XMM16, X86_XMM17, X86_XMM18, X86_XMM19, X86_XMM20, X86_XMM21, X86_XMM22, X86_XMM23, X86_XMM24, X86_XMM25, X86_XMM26, X86_XMM27, X86_XMM28, X86_XMM29, X86_XMM30, X86_XMM31,
1389 static uint8_t VR128XBits[] = {
1390 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1395 X86_XMM0, X86_XMM1, X86_XMM2, X86_XMM3, X86_XMM4, X86_XMM5, X86_XMM6, X86_XMM7, X86_XMM8, X86_XMM9, X86_XMM10, X86_XMM11, X86_XMM12, X86_XMM13, X86_XMM14, X86_XMM15,
1399 static uint8_t VR128Bits[] = {
1400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1405 X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15, X86_YMM16, X86_YMM17, X86_YMM18, X86_YMM19, X86_YMM20, X86_YMM21, X86_YMM22, X86_YMM23, X86_YMM24, X86_YMM25, X86_YMM26, X86_YMM27, X86_YMM28, X86_YMM29, X86_YMM30, X86_YMM31,
1409 static uint8_t VR256XBits[] = {
1410 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1415 X86_YMM0, X86_YMM1, X86_YMM2, X86_YMM3, X86_YMM4, X86_YMM5, X86_YMM6, X86_YMM7, X86_YMM8, X86_YMM9, X86_YMM10, X86_YMM11, X86_YMM12, X86_YMM13, X86_YMM14, X86_YMM15,
1419 static uint8_t VR256Bits[] = {
1420 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1425 X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15, X86_ZMM16, X86_ZMM17, X86_ZMM18, X86_ZMM19, X86_ZMM20, X86_ZMM21, X86_ZMM22, X86_ZMM23, X86_ZMM24, X86_ZMM25, X86_ZMM26, X86_ZMM27, X86_ZMM28, X86_ZMM29, X86_ZMM30, X86_ZMM31,
1429 static uint8_t VR512Bits[] = {
1430 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03,
1434 static const MCPhysReg VR512_with_sub_xmm_in_FR32[] = {
1435 X86_ZMM0, X86_ZMM1, X86_ZMM2, X86_ZMM3, X86_ZMM4, X86_ZMM5, X86_ZMM6, X86_ZMM7, X86_ZMM8, X86_ZMM9, X86_ZMM10, X86_ZMM11, X86_ZMM12, X86_ZMM13, X86_ZMM14, X86_ZMM15,
1439 static uint8_t VR512_with_sub_xmm_in_FR32Bits[] = {
1440 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
1444 { GR8, GR8Bits, 130, 20,
sizeof(GR8Bits), X86_GR8RegClassID, 1, 1, 1, 1 },
1445 { GR8_NOREX, GR8_NOREXBits, 897, 8,
sizeof(GR8_NOREXBits), X86_GR8_NOREXRegClassID, 1, 1, 1, 1 },
1446 { VK1, VK1Bits, 6, 8,
sizeof(VK1Bits), X86_VK1RegClassID, 1, 1, 1, 1 },
1447 { VK2, VK2Bits, 59, 8,
sizeof(VK2Bits), X86_VK2RegClassID, 1, 1, 1, 1 },
1448 { VK4, VK4Bits, 100, 8,
sizeof(VK4Bits), X86_VK4RegClassID, 1, 1, 1, 1 },
1449 { VK8, VK8Bits, 126, 8,
sizeof(VK8Bits), X86_VK8RegClassID, 1, 1, 1, 1 },
1450 { VK1WM, VK1WMBits, 400, 7,
sizeof(VK1WMBits), X86_VK1WMRegClassID, 1, 1, 1, 1 },
1451 { VK2WM, VK2WMBits, 413, 7,
sizeof(VK2WMBits), X86_VK2WMRegClassID, 1, 1, 1, 1 },
1452 { VK4WM, VK4WMBits, 426, 7,
sizeof(VK4WMBits), X86_VK4WMRegClassID, 1, 1, 1, 1 },
1453 { VK8WM, VK8WMBits, 439, 7,
sizeof(VK8WMBits), X86_VK8WMRegClassID, 1, 1, 1, 1 },
1454 { GR8_ABCD_H, GR8_ABCD_HBits, 378, 4,
sizeof(GR8_ABCD_HBits), X86_GR8_ABCD_HRegClassID, 1, 1, 1, 1 },
1455 { GR8_ABCD_L, GR8_ABCD_LBits, 389, 4,
sizeof(GR8_ABCD_LBits), X86_GR8_ABCD_LRegClassID, 1, 1, 1, 1 },
1456 { GR16, GR16Bits, 109, 16,
sizeof(GR16Bits), X86_GR16RegClassID, 2, 2, 1, 1 },
1457 { GR16_NOREX, GR16_NOREXBits, 886, 8,
sizeof(GR16_NOREXBits), X86_GR16_NOREXRegClassID, 2, 2, 1, 1 },
1458 { VK16, VK16Bits, 104, 8,
sizeof(VK16Bits), X86_VK16RegClassID, 2, 2, 1, 1 },
1459 { VK16WM, VK16WMBits, 432, 7,
sizeof(VK16WMBits), X86_VK16WMRegClassID, 2, 2, 1, 1 },
1460 { SEGMENT_REG, SEGMENT_REGBits, 366, 6,
sizeof(SEGMENT_REGBits), X86_SEGMENT_REGRegClassID, 2, 2, 1, 1 },
1461 { GR16_ABCD, GR16_ABCDBits, 334, 4,
sizeof(GR16_ABCDBits), X86_GR16_ABCDRegClassID, 2, 2, 1, 1 },
1462 { FPCCR, FPCCRBits, 571, 1,
sizeof(FPCCRBits), X86_FPCCRRegClassID, 2, 2, -1, 0 },
1463 { FR32X, FR32XBits, 581, 32,
sizeof(FR32XBits), X86_FR32XRegClassID, 4, 4, 1, 1 },
1464 { FR32, FR32Bits, 49, 16,
sizeof(FR32Bits), X86_FR32RegClassID, 4, 4, 1, 1 },
1465 { GR32, GR32Bits, 54, 16,
sizeof(GR32Bits), X86_GR32RegClassID, 4, 4, 1, 1 },
1466 { GR32_NOAX, GR32_NOAXBits, 642, 15,
sizeof(GR32_NOAXBits), X86_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1467 { GR32_NOSP, GR32_NOSPBits, 482, 15,
sizeof(GR32_NOSPBits), X86_GR32_NOSPRegClassID, 4, 4, 1, 1 },
1468 { GR32_NOAX_and_GR32_NOSP, GR32_NOAX_and_GR32_NOSPBits, 468, 14,
sizeof(GR32_NOAX_and_GR32_NOSPBits), X86_GR32_NOAX_and_GR32_NOSPRegClassID, 4, 4, 1, 1 },
1469 { DEBUG_REG, DEBUG_REGBits, 344, 8,
sizeof(DEBUG_REGBits), X86_DEBUG_REGRegClassID, 4, 4, 1, 1 },
1470 { GR32_NOREX, GR32_NOREXBits, 841, 8,
sizeof(GR32_NOREXBits), X86_GR32_NOREXRegClassID, 4, 4, 1, 1 },
1471 { VK32, VK32Bits, 16, 8,
sizeof(VK32Bits), X86_VK32RegClassID, 4, 4, 1, 1 },
1472 { GR32_NOAX_and_GR32_NOREX, GR32_NOAX_and_GR32_NOREXBits, 827, 7,
sizeof(GR32_NOAX_and_GR32_NOREXBits), X86_GR32_NOAX_and_GR32_NOREXRegClassID, 4, 4, 1, 1 },
1473 { GR32_NOREX_NOSP, GR32_NOREX_NOSPBits, 539, 7,
sizeof(GR32_NOREX_NOSPBits), X86_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 },
1474 { RFP32, RFP32Bits, 21, 7,
sizeof(RFP32Bits), X86_RFP32RegClassID, 4, 4, 1, 1 },
1475 { VK32WM, VK32WMBits, 406, 7,
sizeof(VK32WMBits), X86_VK32WMRegClassID, 4, 4, 1, 1 },
1476 { GR32_NOAX_and_GR32_NOREX_NOSP, GR32_NOAX_and_GR32_NOREX_NOSPBits, 525, 6,
sizeof(GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 4, 4, 1, 1 },
1477 { GR32_ABCD, GR32_ABCDBits, 314, 4,
sizeof(GR32_ABCDBits), X86_GR32_ABCDRegClassID, 4, 4, 1, 1 },
1478 { GR32_ABCD_and_GR32_NOAX, GR32_ABCD_and_GR32_NOAXBits, 675, 3,
sizeof(GR32_ABCD_and_GR32_NOAXBits), X86_GR32_ABCD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1479 { GR32_TC, GR32_TCBits, 171, 3,
sizeof(GR32_TCBits), X86_GR32_TCRegClassID, 4, 4, 1, 1 },
1480 { GR32_AD, GR32_ADBits, 306, 2,
sizeof(GR32_ADBits), X86_GR32_ADRegClassID, 4, 4, 1, 1 },
1481 { GR32_NOAX_and_GR32_TC, GR32_NOAX_and_GR32_TCBits, 157, 2,
sizeof(GR32_NOAX_and_GR32_TCBits), X86_GR32_NOAX_and_GR32_TCRegClassID, 4, 4, 1, 1 },
1482 { CCR, CCRBits, 573, 1,
sizeof(CCRBits), X86_CCRRegClassID, 4, 4, -1, 0 },
1483 { GR32_AD_and_GR32_NOAX, GR32_AD_and_GR32_NOAXBits, 630, 1,
sizeof(GR32_AD_and_GR32_NOAXBits), X86_GR32_AD_and_GR32_NOAXRegClassID, 4, 4, 1, 1 },
1484 { RFP64, RFP64Bits, 68, 7,
sizeof(RFP64Bits), X86_RFP64RegClassID, 8, 4, 1, 1 },
1485 { FR64X, FR64XBits, 587, 32,
sizeof(FR64XBits), X86_FR64XRegClassID, 8, 8, 1, 1 },
1486 { GR64, GR64Bits, 79, 17,
sizeof(GR64Bits), X86_GR64RegClassID, 8, 8, 1, 1 },
1487 { CONTROL_REG, CONTROL_REGBits, 354, 16,
sizeof(CONTROL_REGBits), X86_CONTROL_REGRegClassID, 8, 8, 1, 1 },
1488 { FR64, FR64Bits, 74, 16,
sizeof(FR64Bits), X86_FR64RegClassID, 8, 8, 1, 1 },
1489 { GR64_with_sub_8bit, GR64_with_sub_8bitBits, 907, 16,
sizeof(GR64_with_sub_8bitBits), X86_GR64_with_sub_8bitRegClassID, 8, 8, 1, 1 },
1490 { GR64_NOSP, GR64_NOSPBits, 492, 15,
sizeof(GR64_NOSPBits), X86_GR64_NOSPRegClassID, 8, 8, 1, 1 },
1491 { GR64_with_sub_32bit_in_GR32_NOAX, GR64_with_sub_32bit_in_GR32_NOAXBits, 714, 15,
sizeof(GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1492 { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits, 445, 14,
sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSPRegClassID, 8, 8, 1, 1 },
1493 { GR64_NOREX, GR64_NOREXBits, 852, 9,
sizeof(GR64_NOREXBits), X86_GR64_NOREXRegClassID, 8, 8, 1, 1 },
1494 { GR64_TC, GR64_TCBits, 224, 9,
sizeof(GR64_TCBits), X86_GR64_TCRegClassID, 8, 8, 1, 1 },
1495 { GR64_NOSP_and_GR64_TC, GR64_NOSP_and_GR64_TCBits, 210, 8,
sizeof(GR64_NOSP_and_GR64_TCBits), X86_GR64_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1496 { GR64_with_sub_16bit_in_GR16_NOREX, GR64_with_sub_16bit_in_GR16_NOREXBits, 863, 8,
sizeof(GR64_with_sub_16bit_in_GR16_NOREXBits), X86_GR64_with_sub_16bit_in_GR16_NOREXRegClassID, 8, 8, 1, 1 },
1497 { VK64, VK64Bits, 63, 8,
sizeof(VK64Bits), X86_VK64RegClassID, 8, 8, 1, 1 },
1498 { VR64, VR64Bits, 84, 8,
sizeof(VR64Bits), X86_VR64RegClassID, 8, 8, 1, 1 },
1499 { GR64_NOREX_NOSP, GR64_NOREX_NOSPBits, 555, 7,
sizeof(GR64_NOREX_NOSPBits), X86_GR64_NOREX_NOSPRegClassID, 8, 8, 1, 1 },
1500 { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 747, 7,
sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1501 { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 804, 7,
sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 },
1502 { VK64WM, VK64WMBits, 419, 7,
sizeof(VK64WMBits), X86_VK64WMRegClassID, 8, 8, 1, 1 },
1503 { GR64_NOREX_and_GR64_TC, GR64_NOREX_and_GR64_TCBits, 260, 6,
sizeof(GR64_NOREX_and_GR64_TCBits), X86_GR64_NOREX_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1504 { GR64_TCW64, GR64_TCW64Bits, 89, 6,
sizeof(GR64_TCW64Bits), X86_GR64_TCW64RegClassID, 8, 8, 1, 1 },
1505 { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits, 502, 6,
sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSPRegClassID, 8, 8, 1, 1 },
1506 { GR64_NOREX_NOSP_and_GR64_TC, GR64_NOREX_NOSP_and_GR64_TCBits, 232, 5,
sizeof(GR64_NOREX_NOSP_and_GR64_TCBits), X86_GR64_NOREX_NOSP_and_GR64_TCRegClassID, 8, 8, 1, 1 },
1507 { GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX, GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits, 699, 5,
sizeof(GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXBits), X86_GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1508 { GR64_ABCD, GR64_ABCDBits, 324, 4,
sizeof(GR64_ABCDBits), X86_GR64_ABCDRegClassID, 8, 8, 1, 1 },
1509 { GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX, GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits, 792, 4,
sizeof(GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXBits), X86_GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREXRegClassID, 8, 8, 1, 1 },
1510 { GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits, 652, 3,
sizeof(GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1511 { GR64_with_sub_32bit_in_GR32_TC, GR64_with_sub_32bit_in_GR32_TCBits, 179, 3,
sizeof(GR64_with_sub_32bit_in_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_TCRegClassID, 8, 8, 1, 1 },
1512 { GR64_with_sub_32bit_in_GR32_AD, GR64_with_sub_32bit_in_GR32_ADBits, 283, 2,
sizeof(GR64_with_sub_32bit_in_GR32_ADBits), X86_GR64_with_sub_32bit_in_GR32_ADRegClassID, 8, 8, 1, 1 },
1513 { GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC, GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits, 134, 2,
sizeof(GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCBits), X86_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TCRegClassID, 8, 8, 1, 1 },
1514 { GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX, GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits, 607, 1,
sizeof(GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXBits), X86_GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAXRegClassID, 8, 8, 1, 1 },
1515 { RST, RSTBits, 577, 8,
sizeof(RSTBits), X86_RSTRegClassID, 10, 4, 1, 0 },
1516 { RFP80, RFP80Bits, 0, 7,
sizeof(RFP80Bits), X86_RFP80RegClassID, 10, 4, 1, 1 },
1517 { VR128X, VR128XBits, 600, 32,
sizeof(VR128XBits), X86_VR128XRegClassID, 16, 16, 1, 1 },
1518 { VR128, VR128Bits, 120, 16,
sizeof(VR128Bits), X86_VR128RegClassID, 16, 16, 1, 1 },
1519 { VR256X, VR256XBits, 593, 32,
sizeof(VR256XBits), X86_VR256XRegClassID, 32, 32, 1, 1 },
1520 { VR256, VR256Bits, 114, 16,
sizeof(VR256Bits), X86_VR256RegClassID, 32, 32, 1, 1 },
1521 { VR512, VR512Bits, 10, 32,
sizeof(VR512Bits), X86_VR512RegClassID, 64, 64, 1, 1 },
1522 { VR512_with_sub_xmm_in_FR32, VR512_with_sub_xmm_in_FR32Bits, 27, 16,
sizeof(VR512_with_sub_xmm_in_FR32Bits), X86_VR512_with_sub_xmm_in_FR32RegClassID, 64, 64, 1, 1 },