Changeset 68784 in vbox
- Timestamp:
- Sep 18, 2017 4:07:33 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImplSvmInstr.cpp.h
r68362 r68784 105 105 * Disable the global interrupt flag to prevent interrupts during the 'atomic' world switch. 106 106 */ 107 pCtx->hwvirt.svm.fGif = 0;107 pCtx->hwvirt.svm.fGif = false; 108 108 109 109 Assert(CPUMSELREG_ARE_HIDDEN_PARTS_VALID(pVCpu, &pCtx->es)); … … 219 219 Assert(!CPUMIsGuestInSvmNestedHwVirtMode(pCtx)); 220 220 221 /* 222 * Restore the subset of force-flags that were preserved. 223 */ 224 if (pCtx->hwvirt.fLocalForcedActions) 225 { 226 VMCPU_FF_SET(pVCpu, pCtx->hwvirt.fLocalForcedActions); 227 pCtx->hwvirt.fLocalForcedActions = 0; 228 } 229 221 230 if (RT_SUCCESS(rcStrict)) 222 231 { … … 490 499 */ 491 500 pCtx->hwvirt.fLocalForcedActions = pVCpu->fLocalForcedActions & VMCPU_FF_BLOCK_NMIS; 501 VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS); 492 502 493 503 /* … … 566 576 * Clear global interrupt flags to allow interrupts in the guest. 567 577 */ 568 pCtx->hwvirt.svm.fGif = 1;578 pCtx->hwvirt.svm.fGif = true; 569 579 570 580 /* … … 1016 1026 IEM_SVM_INSTR_COMMON_CHECKS(pVCpu, vmrun); 1017 1027 1018 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmEffAddrMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1028 /** @todo Check effective address size using address size prefix. */ 1029 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1019 1030 if ( (GCPhysVmcb & X86_PAGE_4K_OFFSET_MASK) 1020 1031 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVmcb)) … … 1079 1090 IEM_SVM_INSTR_COMMON_CHECKS(pVCpu, vmload); 1080 1091 1081 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmEffAddrMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1092 /** @todo Check effective address size using address size prefix. */ 1093 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1082 1094 if ( (GCPhysVmcb & X86_PAGE_4K_OFFSET_MASK) 1083 1095 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVmcb)) … … 1134 1146 IEM_SVM_INSTR_COMMON_CHECKS(pVCpu, vmsave); 1135 1147 1136 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmEffAddrMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1148 /** @todo Check effective address size using address size prefix. */ 1149 RTGCPHYS const GCPhysVmcb = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1137 1150 if ( (GCPhysVmcb & X86_PAGE_4K_OFFSET_MASK) 1138 1151 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVmcb)) … … 1197 1210 } 1198 1211 1199 pCtx->hwvirt.svm.fGif = 0;1212 pCtx->hwvirt.svm.fGif = false; 1200 1213 iemRegAddToRipAndClearRF(pVCpu, cbInstr); 1201 1214 … … 1227 1240 } 1228 1241 1229 pCtx->hwvirt.svm.fGif = 1;1242 pCtx->hwvirt.svm.fGif = true; 1230 1243 iemRegAddToRipAndClearRF(pVCpu, cbInstr); 1231 1244 … … 1245 1258 { 1246 1259 PCPUMCTX pCtx = IEM_GET_CTX(pVCpu); 1247 RTGCPTR const GCPtrPage = pVCpu->iem.s.enmEffAddrMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1260 /** @todo Check effective address size using address size prefix. */ 1261 RTGCPTR const GCPtrPage = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? pCtx->rax : pCtx->eax; 1248 1262 /** @todo PGM needs virtual ASID support. */ 1249 1263 #if 0
Note:
See TracChangeset
for help on using the changeset viewer.

