VirtualBox

Changeset 9817 in vbox for trunk/src/recompiler


Ignore:
Timestamp:
Jun 19, 2008 11:47:38 AM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
32194
Message:

fs & gs base cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler/VBoxRecompiler.c

    r9802 r9817  
    18251825        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_DS, pCtx->ds, pCtx->dsHid.u64Base, pCtx->dsHid.u32Limit, (pCtx->dsHid.Attr.u << 8) & 0xFFFFFF);
    18261826        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_ES, pCtx->es, pCtx->esHid.u64Base, pCtx->esHid.u32Limit, (pCtx->esHid.Attr.u << 8) & 0xFFFFFF);
    1827 
    1828         /* FS & GS base addresses need to be loaded from the MSRs if in 64 bits mode. */
    1829         if (CPUMIsGuestIn64BitCodeEx(pCtx))
    1830         {
    1831             /* Note that the base values in the hidden fs & gs registers are cut to 32 bits and can't be used in this case. */
    1832             cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_FS, pCtx->fs, pCtx->msrFSBASE, pCtx->fsHid.u32Limit, (pCtx->fsHid.Attr.u << 8) & 0xFFFFFF);
    1833             cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_GS, pCtx->gs, pCtx->msrGSBASE, pCtx->gsHid.u32Limit, (pCtx->gsHid.Attr.u << 8) & 0xFFFFFF);
    1834         }
    1835         else
    1836         {
    1837             cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_FS, pCtx->fs, pCtx->fsHid.u64Base, pCtx->fsHid.u32Limit, (pCtx->fsHid.Attr.u << 8) & 0xFFFFFF);
    1838             cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_GS, pCtx->gs, pCtx->gsHid.u64Base, pCtx->gsHid.u32Limit, (pCtx->gsHid.Attr.u << 8) & 0xFFFFFF);
    1839         }
     1827        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_FS, pCtx->fs, pCtx->fsHid.u64Base, pCtx->fsHid.u32Limit, (pCtx->fsHid.Attr.u << 8) & 0xFFFFFF);
     1828        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_GS, pCtx->gs, pCtx->gsHid.u64Base, pCtx->gsHid.u32Limit, (pCtx->gsHid.Attr.u << 8) & 0xFFFFFF);
    18401829    }
    18411830    else
     
    22222211    pCtx->msrCSTAR         = pVM->rem.s.Env.cstar;
    22232212    pCtx->msrSFMASK        = pVM->rem.s.Env.fmask;
    2224     pCtx->msrFSBASE        = pVM->rem.s.Env.segs[R_FS].base;
    2225     pCtx->msrGSBASE        = pVM->rem.s.Env.segs[R_GS].base;
    22262213    pCtx->msrKERNELGSBASE  = pVM->rem.s.Env.kernelgsbase;
    22272214#endif
     
    24242411    pCtx->msrCSTAR         = pVM->rem.s.Env.cstar;
    24252412    pCtx->msrSFMASK        = pVM->rem.s.Env.fmask;
    2426     pCtx->msrFSBASE        = pVM->rem.s.Env.segs[R_FS].base;
    2427     pCtx->msrGSBASE        = pVM->rem.s.Env.segs[R_GS].base;
    24282413    pCtx->msrKERNELGSBASE  = pVM->rem.s.Env.kernelgsbase;
    24292414#endif
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