Changeset 66337 in vbox for trunk/src/VBox
- Timestamp:
- Mar 29, 2017 2:54:15 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-decoding-1.c32
r66334 r66337 384 384 #define UD_T_MODRM_MR6 0x26 385 385 #define UD_T_MODRM_MR7 0x27 386 #define UD_T_MODRM_MR0_I8 0x28 387 #define UD_T_MODRM_MR1_I8 0x29 388 #define UD_T_MODRM_MR2_I8 0x2a 389 #define UD_T_MODRM_MR3_I8 0x2b 390 #define UD_T_MODRM_MR4_I8 0x2c 391 #define UD_T_MODRM_MR5_I8 0x2d 392 #define UD_T_MODRM_MR6_I8 0x2e 393 #define UD_T_MODRM_MR7_I8 0x2f 386 394 387 395 #define UD_F_ANY_PFX 0 … … 509 517 { UD_T_MODRM_RR7, 2, { 0x0f, 0xae }, UD_F_NOT_NO_PFX }, /* 00=sfence */ 510 518 { UD_T_MODRM, 2, { 0x0f, 0xb8 }, UD_F_NOT_RN_PFX }, 519 { UD_T_MODRM | UD_T_NOAMD, 2, { 0x0f, 0xb9 }, UD_F_ANY_PFX }, /* UD1 */ 511 520 #endif 512 { UD_T_MODRM | UD_T_NOAMD, 2, { 0x0f, 0xb9 }, UD_F_ANY_PFX }, /* UD1 */ 521 { UD_T_MODRM_MR0_I8, 2, { 0x0f, 0xba }, UD_F_ANY_PFX }, /* grp8 */ 522 { UD_T_MODRM_MR1_I8, 2, { 0x0f, 0xba }, UD_F_ANY_PFX }, /* grp8 */ 523 { UD_T_MODRM_MR2_I8, 2, { 0x0f, 0xba }, UD_F_ANY_PFX }, /* grp8 */ 524 { UD_T_MODRM_MR3_I8, 2, { 0x0f, 0xba }, UD_F_ANY_PFX }, /* grp8 */ 513 525 #if 0 514 526 /** @todo f3 0f bb rm and f2 0f bb rm does stuff on skylake even if their are blank in intel and AMD tables! */ … … 1020 1032 { 6, { RM_EDI_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0 }, 0 }, 1021 1033 }; 1034 static CPUDECODE1UDSEQ const s_aModRmMRxImm8[] = /* index*5 */ 1035 { 1036 { 2+1, { RM_EAX_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1037 { 5+1, { RM_EAX_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1038 { 2+1, { RM_EAX_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1039 { 3+1, { RM_EAX_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1040 { 6+1, { RM_EAX_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1041 1042 { 2+1, { RM_ECX_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1043 { 5+1, { RM_ECX_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1044 { 2+1, { RM_ECX_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1045 { 3+1, { RM_ECX_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1046 { 6+1, { RM_ECX_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1047 1048 { 2+1, { RM_EDX_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1049 { 5+1, { RM_EDX_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1050 { 2+1, { RM_EDX_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1051 { 3+1, { RM_EDX_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1052 { 6+1, { RM_EDX_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1053 1054 { 2+1, { RM_EBX_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1055 { 5+1, { RM_EBX_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1056 { 2+1, { RM_EBX_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1057 { 3+1, { RM_EBX_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1058 { 6+1, { RM_EBX_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1059 1060 { 2+1, { RM_ESP_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1061 { 5+1, { RM_ESP_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1062 { 2+1, { RM_ESP_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1063 { 3+1, { RM_ESP_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1064 { 6+1, { RM_ESP_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1065 1066 { 2+1, { RM_EBP_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1067 { 5+1, { RM_EBP_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1068 { 2+1, { RM_EBP_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1069 { 3+1, { RM_EBP_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1070 { 6+1, { RM_EBP_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1071 1072 { 2+1, { RM_ESI_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1073 { 5+1, { RM_ESI_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1074 { 2+1, { RM_ESI_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1075 { 3+1, { RM_ESI_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1076 { 6+1, { RM_ESI_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1077 1078 { 2+1, { RM_EDI_DEREF_EBX_DISP8, 0, 0x11 }, 0 }, 1079 { 5+1, { RM_EDI_DEREF_EBX_DISP32, 0, 0, 0, 0, 0x11 }, 0 }, 1080 { 2+1, { RM_EDI_SIB, SIB_EBX_X1_NONE, 0x11 }, 0 }, 1081 { 3+1, { RM_EDI_SIB_DISP8, SIB_EBX_X1_NONE, 0, 0x11 }, 0 }, 1082 { 6+1, { RM_EDI_SIB_DISP32, SIB_EBX_X1_NONE, 0, 0, 0, 0, 0x11 }, 0 }, 1083 }; 1022 1084 unsigned iPrefix; 1023 1085 unsigned cSuffixes; … … 1094 1156 paSuffixes = &s_aModRmMRx[(paTests[iTest].enmType - UD_T_MODRM_MR0) * 5]; 1095 1157 break; 1158 case UD_T_MODRM_MR0_I8: 1159 case UD_T_MODRM_MR1_I8: 1160 case UD_T_MODRM_MR2_I8: 1161 case UD_T_MODRM_MR3_I8: 1162 case UD_T_MODRM_MR4_I8: 1163 case UD_T_MODRM_MR5_I8: 1164 case UD_T_MODRM_MR6_I8: 1165 case UD_T_MODRM_MR7_I8: 1166 cSuffixes = 5; 1167 paSuffixes = &s_aModRmMRxImm8[(paTests[iTest].enmType - UD_T_MODRM_MR0_I8) * 5]; 1168 break; 1096 1169 default: 1097 1170 Bs3TestPrintf("#%u: enmType=%d\n", paTests[iTest].enmType); … … 1574 1647 Bs3TestPrintf("g_uBs3CpuDetected=%#x\n", g_uBs3CpuDetected); 1575 1648 1576 #if 11649 #if 0 1577 1650 Bs3TestSub("CMPPS, CMPPD, CMPSS, CMPSD"); 1578 1651 DecodeCmppsCmppdCmpssCmpsd(); … … 1586 1659 DecodeUdEdgeTest(g_aUdTest2Byte_0f, RT_ELEMENTS(g_aUdTest2Byte_0f)); 1587 1660 #endif 1588 #if 11661 #if 0 1589 1662 Bs3TestSub("3 byte undefined opcodes 0f 38"); 1590 1663 DecodeUdEdgeTest(g_aUdTest3Byte_0f_38, RT_ELEMENTS(g_aUdTest3Byte_0f_38)); 1591 1664 #endif 1592 1665 1593 #if 11666 #if 0 1594 1667 Bs3TestSub("misc"); 1595 1668 DecodeEdgeTest();
Note:
See TracChangeset
for help on using the changeset viewer.