Changeset 30263 in vbox for trunk/src/recompiler/VBoxRecompiler.c
- Timestamp:
- Jun 16, 2010 6:31:42 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler/VBoxRecompiler.c
r29333 r30263 1798 1798 TRPMEVENT enmType; 1799 1799 uint8_t u8TrapNo; 1800 uint32_t uCpl; 1800 1801 int rc; 1801 1802 … … 1805 1806 pVM->rem.s.Env.pVCpu = pVCpu; 1806 1807 pCtx = pVM->rem.s.pCtx = CPUMQueryGuestCtxPtr(pVCpu); 1807 fHiddenSelRegsValid = CPUMAreHiddenSelRegsValid(pV M);1808 fHiddenSelRegsValid = CPUMAreHiddenSelRegsValid(pVCpu); /// @todo move this down and use fFlags. 1808 1809 1809 1810 Assert(!pVM->rem.s.fInREM); … … 1927 1928 * Registers which are rarely changed and require special handling / order when changed. 1928 1929 */ 1929 fFlags = CPUM GetAndClearChangedFlagsREM(pVCpu);1930 LogFlow(("CPUM GetAndClearChangedFlagsREM %x\n", fFlags));1930 fFlags = CPUMR3RemEnter(pVCpu, &uCpl); 1931 LogFlow(("CPUMR3RemEnter %x %x\n", fFlags, uCpl)); 1931 1932 if (fFlags & ( CPUM_CHANGED_CR4 | CPUM_CHANGED_CR3 | CPUM_CHANGED_CR0 1932 1933 | CPUM_CHANGED_GDTR | CPUM_CHANGED_IDTR | CPUM_CHANGED_LDTR … … 2041 2042 2042 2043 /* Set current CPL */ 2043 cpu_x86_set_cpl(&pVM->rem.s.Env, CPUMGetGuestCPL(pVCpu, CPUMCTX2CORE(pCtx)));2044 cpu_x86_set_cpl(&pVM->rem.s.Env, uCpl); 2044 2045 2045 2046 cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_CS, pCtx->cs, pCtx->csHid.u64Base, pCtx->csHid.u32Limit, (pCtx->csHid.Attr.u << 8) & 0xFFFFFF); … … 2057 2058 Log2(("REMR3State: SS changed from %04x to %04x!\n", pVM->rem.s.Env.segs[R_SS].selector, pCtx->ss)); 2058 2059 2059 cpu_x86_set_cpl(&pVM->rem.s.Env, CPUMGetGuestCPL(pVCpu, CPUMCTX2CORE(pCtx)));2060 cpu_x86_set_cpl(&pVM->rem.s.Env, uCpl); 2060 2061 sync_seg(&pVM->rem.s.Env, R_SS, pCtx->ss); 2061 2062 #ifdef VBOX_WITH_STATISTICS … … 2475 2476 * We're not longer in REM mode. 2476 2477 */ 2478 CPUMR3RemLeave(pVCpu, 2479 HWACCMIsEnabled(pVM) 2480 || ( pVM->rem.s.Env.segs[R_SS].newselector 2481 | pVM->rem.s.Env.segs[R_GS].newselector 2482 | pVM->rem.s.Env.segs[R_FS].newselector 2483 | pVM->rem.s.Env.segs[R_ES].newselector 2484 | pVM->rem.s.Env.segs[R_DS].newselector 2485 | pVM->rem.s.Env.segs[R_CS].newselector) == 0 2486 ); 2477 2487 VMCPU_CMPXCHG_STATE(pVCpu, VMCPUSTATE_STARTED, VMCPUSTATE_STARTED_EXEC_REM); 2478 2488 pVM->rem.s.fInREM = false;
Note:
See TracChangeset
for help on using the changeset viewer.