VirtualBox

Changeset 7695 in vbox for trunk/src


Ignore:
Timestamp:
Apr 2, 2008 12:17:19 PM (17 years ago)
Author:
vboxsync
Message:

Added system MSRs to the CPUMCTX structure.
Sync them in REM as well.

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/CPUMInternal.mac

    r7097 r7695  
    256256    .Hyper.SysEnter.esp       resb    8
    257257
     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
    258268    .Hyper.ldtrHid.u32Base    resd    1
    259269    .Hyper.ldtrHid.u32Limit   resd    1
     
    265275
    266276    ; padding
    267     .Hyper.padding            resd    4
     277    .Hyper.padding            resd    2
    268278
    269279
     
    362372    .Guest.SysEnter.esp       resb    8
    363373
     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
    364384    .Guest.ldtrHid.u32Base    resd    1
    365385    .Guest.ldtrHid.u32Limit   resd    1
     
    371391
    372392    ; padding
    373     .Guest.padding            resd    4
     393    .Guest.padding            resd    2
    374394
    375395
     
    408428    .GuestCpuIdDef        resb    16
    409429
    410     ; debug stuff...
    411     .GuestEntry           resb    960
     430    ; CPUMCTX debug stuff...
     431    .GuestEntry           resb   1024
    412432
    413433endstruc
  • trunk/src/recompiler/VBoxRecompiler.c

    r7649 r7695  
    18591859    }
    18601860
     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
    18611875    /*
    18621876     * Check for traps.
     
    21132127    pCtx->SysEnter.eip     = pVM->rem.s.Env.sysenter_eip;
    21142128    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
    21152142
    21162143    remR3TrapClear(pVM);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette