Changeset 7686 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Apr 1, 2008 2:42:17 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r5999 r7686 44 44 * Internal Functions * 45 45 *******************************************************************************/ 46 static bool iomG CGetRegImmData(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t *pu32Data, unsigned *pcbSize);47 static bool iom GCSaveDataToReg(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t u32Data);46 static bool iomGetRegImmData(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t *pu32Data, unsigned *pcbSize); 47 static bool iomSaveDataToReg(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t u32Data); 48 48 49 49 … … 159 159 * @warning VBOX_SUCCESS(rc=VINF_IOM_HC_MMIO_WRITE) is TRUE! 160 160 */ 161 inline int iom GCMMIODoWrite(PVM pVM, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault, const void *pvData, unsigned cbSize)161 inline int iomMMIODoWrite(PVM pVM, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault, const void *pvData, unsigned cbSize) 162 162 { 163 163 #ifdef VBOX_WITH_STATISTICS … … 180 180 * Wrapper which does the read and updates range statistics when such are enabled. 181 181 */ 182 inline int iom GCMMIODoRead(PVM pVM, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault, void *pvData, unsigned cbSize)182 inline int iomMMIODoRead(PVM pVM, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault, void *pvData, unsigned cbSize) 183 183 { 184 184 #ifdef VBOX_WITH_STATISTICS … … 210 210 * @param pcbSize Where to store the size of data (1, 2, 4). 211 211 */ 212 static bool iomG CGetRegImmData(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t *pu32Data, unsigned *pcbSize)212 static bool iomGetRegImmData(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, uint32_t *pu32Data, unsigned *pcbSize) 213 213 { 214 214 if (pParam->flags & (USE_BASE | USE_INDEX | USE_SCALE | USE_DISPLACEMENT8 | USE_DISPLACEMENT16 | USE_DISPLACEMENT32)) … … 284 284 * @param u32Data 8/16/32 bit data to store. 285 285 */ 286 static bool iom GCSaveDataToReg(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, unsigned u32Data)286 static bool iomSaveDataToReg(PDISCPUSTATE pCpu, PCOP_PARAMETER pParam, PCPUMCTXCORE pRegFrame, unsigned u32Data) 287 287 { 288 288 if (pParam->flags & (USE_BASE | USE_INDEX | USE_SCALE | USE_DISPLACEMENT8 | USE_DISPLACEMENT16 | USE_DISPLACEMENT32 | USE_IMMEDIATE8 | USE_IMMEDIATE16 | USE_IMMEDIATE32 | USE_IMMEDIATE32_SX8 | USE_IMMEDIATE16_SX8)) … … 323 323 * Internal - statistics only. 324 324 */ 325 inline void iom GCMMIOStatLength(PVM pVM, unsigned cb)325 inline void iomMMIOStatLength(PVM pVM, unsigned cb) 326 326 { 327 327 #ifdef VBOX_WITH_STATISTICS … … 361 361 * @param GCPhysFault The GC physical address corresponding to pvFault. 362 362 */ 363 static int iom GCInterpretMOVxXRead(PVM pVM, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault)363 static int iomInterpretMOVxXRead(PVM pVM, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault) 364 364 { 365 365 /* … … 377 377 378 378 uint32_t u32Data = 0; 379 int rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &u32Data, cbSize);379 int rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &u32Data, cbSize); 380 380 if (rc == VINF_SUCCESS) 381 381 { … … 403 403 * Store the result to register (parameter 1). 404 404 */ 405 bool fRc = iom GCSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, u32Data);405 bool fRc = iomSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, u32Data); 406 406 AssertMsg(fRc, ("Failed to store register value!\n")); NOREF(fRc); 407 407 } 408 408 409 409 if (rc == VINF_SUCCESS) 410 iom GCMMIOStatLength(pVM, cbSize);410 iomMMIOStatLength(pVM, cbSize); 411 411 return rc; 412 412 } … … 424 424 * @param GCPhysFault The GC physical address corresponding to pvFault. 425 425 */ 426 static int iom GCInterpretMOVxXWrite(PVM pVM, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault)426 static int iomInterpretMOVxXWrite(PVM pVM, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange, RTGCPHYS GCPhysFault) 427 427 { 428 428 /* … … 438 438 unsigned cbSize = 0; 439 439 uint32_t u32Data = 0; 440 bool fRc = iomG CGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &u32Data, &cbSize);440 bool fRc = iomGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &u32Data, &cbSize); 441 441 AssertMsg(fRc, ("Failed to get reg/imm port number!\n")); NOREF(fRc); 442 442 443 int rc = iom GCMMIODoWrite(pVM, pRange, GCPhysFault, &u32Data, cbSize);443 int rc = iomMMIODoWrite(pVM, pRange, GCPhysFault, &u32Data, cbSize); 444 444 if (rc == VINF_SUCCESS) 445 iom GCMMIOStatLength(pVM, cbSize);445 iomMMIOStatLength(pVM, cbSize); 446 446 return rc; 447 447 } … … 491 491 * @param pRange Pointer MMIO range. 492 492 */ 493 #ifdef IOMGC_MOVS_SUPPORT494 static int iom GCInterpretMOVS(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)493 #ifdef iom_MOVS_SUPPORT 494 static int iomInterpretMOVS(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 495 495 { 496 496 STAM_PROFILE_START(&pVM->iom.s.StatGCInstMovs, a); … … 577 577 if (rc != VINF_SUCCESS) 578 578 break; 579 rc = iom GCMMIODoWrite(pVM, pRange, Phys, &u32Data, cbSize);579 rc = iomMMIODoWrite(pVM, pRange, Phys, &u32Data, cbSize); 580 580 if (rc != VINF_SUCCESS) 581 581 break; … … 642 642 { 643 643 uint32_t u32Data; 644 rc = iom GCMMIODoRead(pVM, pRange, Phys, &u32Data, cbSize);644 rc = iomMMIODoRead(pVM, pRange, Phys, &u32Data, cbSize); 645 645 if (rc != VINF_SUCCESS) 646 646 break; 647 rc = iom GCMMIODoWrite(pVM, pMMIODst, PhysDst, &u32Data, cbSize);647 rc = iomMMIODoWrite(pVM, pMMIODst, PhysDst, &u32Data, cbSize); 648 648 if (rc != VINF_SUCCESS) 649 649 break; … … 681 681 { 682 682 uint32_t u32Data; 683 rc = iom GCMMIODoRead(pVM, pRange, Phys, &u32Data, cbSize);683 rc = iomMMIODoRead(pVM, pRange, Phys, &u32Data, cbSize); 684 684 if (rc != VINF_SUCCESS) 685 685 break; … … 712 712 { 713 713 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstMovs, a); 714 iom GCMMIOStatLength(pVM, cbSize);714 iomMMIOStatLength(pVM, cbSize); 715 715 } 716 716 return rc; … … 736 736 * @param pRange Pointer MMIO range. 737 737 */ 738 static int iom GCInterpretSTOS(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)738 static int iomInterpretSTOS(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 739 739 { 740 740 STAM_PROFILE_START(&pVM->iom.s.StatGCInstStos, a); … … 819 819 do 820 820 { 821 rc = iom GCMMIODoWrite(pVM, pRange, Phys, &u32Data, cbSize);821 rc = iomMMIODoWrite(pVM, pRange, Phys, &u32Data, cbSize); 822 822 if (rc != VINF_SUCCESS) 823 823 break; … … 839 839 { 840 840 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstStos, a); 841 iom GCMMIOStatLength(pVM, cbSize);841 iomMMIOStatLength(pVM, cbSize); 842 842 } 843 843 return rc; … … 861 861 * @param pRange Pointer MMIO range. 862 862 */ 863 static int iom GCInterpretLODS(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)863 static int iomInterpretLODS(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 864 864 { 865 865 STAM_PROFILE_START(&pVM->iom.s.StatGCInstLods, a1); … … 885 885 * Perform read. 886 886 */ 887 int rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &pRegFrame->eax, cbSize);887 int rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &pRegFrame->eax, cbSize); 888 888 if (rc == VINF_SUCCESS) 889 889 pRegFrame->esi += offIncrement; … … 895 895 { 896 896 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstLods, a1); 897 iom GCMMIOStatLength(pVM, cbSize);897 iomMMIOStatLength(pVM, cbSize); 898 898 } 899 899 return rc; … … 916 916 * @param pRange Pointer MMIO range. 917 917 */ 918 static int iom GCInterpretCMP(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)918 static int iomInterpretCMP(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 919 919 { 920 920 STAM_PROFILE_START(&pVM->iom.s.StatGCInstCmp, a1); … … 931 931 uint32_t uData2; 932 932 int rc; 933 if (iomG CGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize))933 if (iomGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize)) 934 934 /* cmp reg, [MMIO]. */ 935 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize);936 else if (iomG CGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize))935 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize); 936 else if (iomGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize)) 937 937 /* cmp [MMIO], reg|imm. */ 938 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize);938 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize); 939 939 else 940 940 { … … 951 951 952 952 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstCmp, a1); 953 iom GCMMIOStatLength(pVM, cbSize);953 iomMMIOStatLength(pVM, cbSize); 954 954 } 955 955 … … 973 973 * @param pRange Pointer MMIO range. 974 974 */ 975 static int iom GCInterpretAND(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)975 static int iomInterpretAND(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 976 976 { 977 977 STAM_PROFILE_START(&pVM->iom.s.StatGCInstAnd, a1); … … 984 984 bool fAndWrite; 985 985 int rc; 986 if (iomG CGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize))986 if (iomGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize)) 987 987 { 988 988 /* and reg, [MMIO]. */ 989 989 fAndWrite = false; 990 990 if (pRange->pfnReadCallback) 991 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize);991 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize); 992 992 else 993 993 rc = VINF_IOM_HC_MMIO_READ; 994 994 } 995 else if (iomG CGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize))995 else if (iomGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize)) 996 996 { 997 997 /* and [MMIO], reg|imm. */ 998 998 fAndWrite = true; 999 999 if (pRange->pfnReadCallback && pRange->pfnWriteCallback) 1000 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize);1000 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize); 1001 1001 else 1002 1002 rc = VINF_IOM_HC_MMIO_READ_WRITE; … … 1014 1014 if (fAndWrite) 1015 1015 /* Store result to MMIO. */ 1016 rc = iom GCMMIODoWrite(pVM, pRange, GCPhysFault, &uData1, cbSize);1016 rc = iomMMIODoWrite(pVM, pRange, GCPhysFault, &uData1, cbSize); 1017 1017 else 1018 1018 { 1019 1019 /* Store result to register. */ 1020 bool fRc = iom GCSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, uData1);1020 bool fRc = iomSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, uData1); 1021 1021 AssertMsg(fRc, ("Failed to store register value!\n")); NOREF(fRc); 1022 1022 } … … 1027 1027 | (eflags & (X86_EFL_CF | X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF | X86_EFL_OF)); 1028 1028 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstAnd, a1); 1029 iom GCMMIOStatLength(pVM, cbSize);1029 iomMMIOStatLength(pVM, cbSize); 1030 1030 } 1031 1031 } … … 1051 1051 * @param pRange Pointer MMIO range. 1052 1052 */ 1053 static int iom GCInterpretTEST(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)1053 static int iomInterpretTEST(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 1054 1054 { 1055 1055 STAM_PROFILE_START(&pVM->iom.s.StatGCInstTest, a1); … … 1062 1062 int rc; 1063 1063 1064 if (iomG CGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize))1064 if (iomGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize)) 1065 1065 { 1066 1066 /* and test, [MMIO]. */ 1067 1067 if (pRange->pfnReadCallback) 1068 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize);1068 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize); 1069 1069 else 1070 1070 rc = VINF_IOM_HC_MMIO_READ; 1071 1071 } 1072 else if (iomG CGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize))1072 else if (iomGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize)) 1073 1073 { 1074 1074 /* test [MMIO], reg|imm. */ 1075 1075 if (pRange->pfnReadCallback) 1076 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize);1076 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize); 1077 1077 else 1078 1078 rc = VINF_IOM_HC_MMIO_READ; … … 1091 1091 | (eflags & (X86_EFL_CF | X86_EFL_PF | X86_EFL_AF | X86_EFL_ZF | X86_EFL_SF | X86_EFL_OF)); 1092 1092 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstTest, a1); 1093 iom GCMMIOStatLength(pVM, cbSize);1093 iomMMIOStatLength(pVM, cbSize); 1094 1094 } 1095 1095 … … 1112 1112 * @param pRange Pointer MMIO range. 1113 1113 */ 1114 static int iom GCInterpretXCHG(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange)1114 static int iomInterpretXCHG(PVM pVM, PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, PDISCPUSTATE pCpu, CTXALLSUFF(PIOMMMIORANGE) pRange) 1115 1115 { 1116 1116 STAM_PROFILE_START(&pVM->iom.s.StatGCInstTest, a1); … … 1128 1128 } 1129 1129 1130 if (iomG CGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize))1130 if (iomGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uData1, &cbSize)) 1131 1131 { 1132 1132 /* xchg reg, [MMIO]. */ 1133 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize);1133 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData2, cbSize); 1134 1134 if (rc == VINF_SUCCESS) 1135 1135 { 1136 1136 /* Store result to MMIO. */ 1137 rc = iom GCMMIODoWrite(pVM, pRange, GCPhysFault, &uData1, cbSize);1137 rc = iomMMIODoWrite(pVM, pRange, GCPhysFault, &uData1, cbSize); 1138 1138 1139 1139 if (rc == VINF_SUCCESS) 1140 1140 { 1141 1141 /* Store result to register. */ 1142 bool fRc = iom GCSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, uData2);1142 bool fRc = iomSaveDataToReg(pCpu, &pCpu->param1, pRegFrame, uData2); 1143 1143 AssertMsg(fRc, ("Failed to store register value!\n")); NOREF(fRc); 1144 1144 } … … 1150 1150 } 1151 1151 else 1152 if (iomG CGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize))1152 if (iomGetRegImmData(pCpu, &pCpu->param2, pRegFrame, &uData2, &cbSize)) 1153 1153 { 1154 1154 /* xchg [MMIO], reg. */ 1155 rc = iom GCMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize);1155 rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &uData1, cbSize); 1156 1156 if (rc == VINF_SUCCESS) 1157 1157 { 1158 1158 /* Store result to MMIO. */ 1159 rc = iom GCMMIODoWrite(pVM, pRange, GCPhysFault, &uData2, cbSize);1159 rc = iomMMIODoWrite(pVM, pRange, GCPhysFault, &uData2, cbSize); 1160 1160 1161 1161 if (rc == VINF_SUCCESS) 1162 1162 { 1163 1163 /* Store result to register. */ 1164 bool fRc = iom GCSaveDataToReg(pCpu, &pCpu->param2, pRegFrame, uData1);1164 bool fRc = iomSaveDataToReg(pCpu, &pCpu->param2, pRegFrame, uData1); 1165 1165 AssertMsg(fRc, ("Failed to store register value!\n")); NOREF(fRc); 1166 1166 } … … 1296 1296 STAM_PROFILE_START(&pVM->iom.s.StatGCInstMov, b); 1297 1297 if (uErrorCode & X86_TRAP_PF_RW) 1298 rc = iom GCInterpretMOVxXWrite(pVM, pRegFrame, &cpu, pRange, GCPhysFault);1298 rc = iomInterpretMOVxXWrite(pVM, pRegFrame, &cpu, pRange, GCPhysFault); 1299 1299 else 1300 rc = iom GCInterpretMOVxXRead(pVM, pRegFrame, &cpu, pRange, GCPhysFault);1300 rc = iomInterpretMOVxXRead(pVM, pRegFrame, &cpu, pRange, GCPhysFault); 1301 1301 if (rc == VINF_SUCCESS) 1302 1302 STAM_PROFILE_STOP(&pVM->iom.s.StatGCInstMov, b); … … 1305 1305 1306 1306 1307 #ifdef IOMGC_MOVS_SUPPORT1307 #ifdef iom_MOVS_SUPPORT 1308 1308 case OP_MOVSB: 1309 1309 case OP_MOVSWD: 1310 rc = iom GCInterpretMOVS(pVM, uErrorCode, pRegFrame, GCPhysFault, &cpu, pRange);1310 rc = iomInterpretMOVS(pVM, uErrorCode, pRegFrame, GCPhysFault, &cpu, pRange); 1311 1311 break; 1312 1312 #endif … … 1315 1315 case OP_STOSWD: 1316 1316 Assert(uErrorCode & X86_TRAP_PF_RW); 1317 rc = iom GCInterpretSTOS(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1317 rc = iomInterpretSTOS(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1318 1318 break; 1319 1319 … … 1321 1321 case OP_LODSWD: 1322 1322 Assert(!(uErrorCode & X86_TRAP_PF_RW)); 1323 rc = iom GCInterpretLODS(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1323 rc = iomInterpretLODS(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1324 1324 break; 1325 1325 … … 1327 1327 case OP_CMP: 1328 1328 Assert(!(uErrorCode & X86_TRAP_PF_RW)); 1329 rc = iom GCInterpretCMP(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1329 rc = iomInterpretCMP(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1330 1330 break; 1331 1331 1332 1332 case OP_AND: 1333 rc = iom GCInterpretAND(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1333 rc = iomInterpretAND(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1334 1334 break; 1335 1335 1336 1336 case OP_TEST: 1337 1337 Assert(!(uErrorCode & X86_TRAP_PF_RW)); 1338 rc = iom GCInterpretTEST(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1338 rc = iomInterpretTEST(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1339 1339 break; 1340 1340 1341 1341 case OP_XCHG: 1342 rc = iom GCInterpretXCHG(pVM, pRegFrame, GCPhysFault, &cpu, pRange);1342 rc = iomInterpretXCHG(pVM, pRegFrame, GCPhysFault, &cpu, pRange); 1343 1343 break; 1344 1344 … … 1867 1867 uint32_t uPort = 0; 1868 1868 unsigned cbSize = 0; 1869 bool fRc = iomG CGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uPort, &cbSize);1869 bool fRc = iomGetRegImmData(pCpu, &pCpu->param1, pRegFrame, &uPort, &cbSize); 1870 1870 AssertMsg(fRc, ("Failed to get reg/imm port number!\n")); NOREF(fRc); 1871 1871 if (pCpu->pCurInstr->opcode == OP_OUTSB)
Note:
See TracChangeset
for help on using the changeset viewer.