- Timestamp:
- Apr 2, 2008 12:17:19 PM (17 years ago)
- Location:
- trunk/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/CPUMInternal.mac
r7097 r7695 256 256 .Hyper.SysEnter.esp resb 8 257 257 258 .Hyper.msrEFER resb 8 259 .Hyper.msrSTAR resb 8 260 .Hyper.msrPAT resb 8 261 .Hyper.msrLSTAR resb 8 262 .Hyper.msrCSTAR resb 8 263 .Hyper.msrSFMASK resb 8 264 .Hyper.msrFSBASE resb 8 265 .Hyper.msrGSBASE resb 8 266 .Hyper.msrKERNELGSBASE resb 8 267 258 268 .Hyper.ldtrHid.u32Base resd 1 259 269 .Hyper.ldtrHid.u32Limit resd 1 … … 265 275 266 276 ; padding 267 .Hyper.padding resd 4277 .Hyper.padding resd 2 268 278 269 279 … … 362 372 .Guest.SysEnter.esp resb 8 363 373 374 .Guest.msrEFER resb 8 375 .Guest.msrSTAR resb 8 376 .Guest.msrPAT resb 8 377 .Guest.msrLSTAR resb 8 378 .Guest.msrCSTAR resb 8 379 .Guest.msrSFMASK resb 8 380 .Guest.msrFSBASE resb 8 381 .Guest.msrGSBASE resb 8 382 .Guest.msrKERNELGSBASE resb 8 383 364 384 .Guest.ldtrHid.u32Base resd 1 365 385 .Guest.ldtrHid.u32Limit resd 1 … … 371 391 372 392 ; padding 373 .Guest.padding resd 4393 .Guest.padding resd 2 374 394 375 395 … … 408 428 .GuestCpuIdDef resb 16 409 429 410 ; debug stuff...411 .GuestEntry resb 960430 ; CPUMCTX debug stuff... 431 .GuestEntry resb 1024 412 432 413 433 endstruc -
trunk/src/recompiler/VBoxRecompiler.c
r7649 r7695 1859 1859 } 1860 1860 1861 /* Update MSRs. */ 1862 pVM->rem.s.Env.efer = pCtx->msrEFER; 1863 pVM->rem.s.Env.star = pCtx->msrSTAR; 1864 pVM->rem.s.Env.pat = pCtx->msrPAT; 1865 #ifdef TARGET_X86_64 1866 pVM->rem.s.Env.lstar = pCtx->msrLSTAR; 1867 pVM->rem.s.Env.cstar = pCtx->msrCSTAR; 1868 pVM->rem.s.Env.fmask = pCtx->msrSFMASK; 1869 pVM->rem.s.Env.kernelgsbase = pCtx->msrKERNELGSBASE; 1870 #endif 1871 /* Note that FS_BASE & GS_BASE are already synced; QEmu keeps them in the hidden selector registers. 1872 * So we basically assume the hidden registers are in sync with these MSRs (vt-x & amd-v). Correct?? 1873 */ 1874 1861 1875 /* 1862 1876 * Check for traps. … … 2113 2127 pCtx->SysEnter.eip = pVM->rem.s.Env.sysenter_eip; 2114 2128 pCtx->SysEnter.esp = pVM->rem.s.Env.sysenter_esp; 2129 2130 /* System MSRs. */ 2131 pCtx->msrEFER = pVM->rem.s.Env.efer; 2132 pCtx->msrSTAR = pVM->rem.s.Env.star; 2133 pCtx->msrPAT = pVM->rem.s.Env.pat; 2134 #ifdef TARGET_X86_64 2135 pCtx->msrLSTAR = pVM->rem.s.Env.lstar; 2136 pCtx->msrCSTAR = pVM->rem.s.Env.cstar; 2137 pCtx->msrSFMASK = pVM->rem.s.Env.fmask; 2138 pCtx->msrFSBASE = pVM->rem.s.Env.segs[R_FS].base; 2139 pCtx->msrGSBASE = pVM->rem.s.Env.segs[R_GS].base; 2140 pCtx->msrKERNELGSBASE = pVM->rem.s.Env.kernelgsbase; 2141 #endif 2115 2142 2116 2143 remR3TrapClear(pVM);
Note:
See TracChangeset
for help on using the changeset viewer.