VirtualBox

Changeset 9661 in vbox


Ignore:
Timestamp:
Jun 12, 2008 1:11:40 PM (17 years ago)
Author:
vboxsync
Message:

Implement and use CPUMIsGuestIn64BitCode where appropriate.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/cpum.h

    r9655 r9661  
    535535
    536536/**
    537  * Tests if the guest is running in paged protected or not.
     537 * Tests if the guest is running in 16 bits paged protected or not.
    538538 *
    539539 * @returns true if in paged protected mode, otherwise false.
     
    543543
    544544/**
    545  * Tests if the guest is running in paged protected or not.
     545 * Tests if the guest is running in 32 bits paged protected or not.
    546546 *
    547547 * @returns true if in paged protected mode, otherwise false.
     
    551551
    552552/**
    553  * Tests if the guest is running in paged protected or not.
    554  *
    555  * @returns true if in paged protected mode, otherwise false.
    556  * @param   pVM     The VM handle.
    557  */
    558 CPUMDECL(bool) CPUMIsGuestIn64BitCode(PVM pVM);
     553 * Tests if the guest is running in 64 bits mode or not.
     554 *
     555 * @returns true if in 64 bits protected mode, otherwise false.
     556 * @param   pVM     The VM handle.
     557 * @param   pCtx    Current CPU context
     558 */
     559DECLINLINE(bool) CPUMIsGuestIn64BitCode(PVM pVM, PCCPUMCTXCORE pCtx)
     560{
     561    if (!CPUMIsGuestInLongMode(pVM))
     562        return false;
     563
     564    return pCtx->csHid.Attr.n.u1Long;
     565}
    559566
    560567/**
  • trunk/src/VBox/VMM/CPUM.cpp

    r9649 r9661  
    790790    {
    791791        case CPUMDUMPTYPE_TERSE:
    792             if (CPUMIsGuestInLongMode(pVM))
     792            if (CPUMIsGuestIn64BitCode(pVM, pCtxCore))
    793793            {
    794794                pHlp->pfnPrintf(pHlp,
     
    818818
    819819        case CPUMDUMPTYPE_DEFAULT:
    820             if (CPUMIsGuestInLongMode(pVM))
     820            if (CPUMIsGuestIn64BitCode(pVM, pCtxCore))
    821821            {
    822822                pHlp->pfnPrintf(pHlp,
     
    854854
    855855        case CPUMDUMPTYPE_VERBOSE:
    856             if (CPUMIsGuestInLongMode(pVM))
     856            if (CPUMIsGuestIn64BitCode(pVM, pCtxCore))
    857857            {
    858858                pHlp->pfnPrintf(pHlp,
  • trunk/src/VBox/VMM/PGM.cpp

    r9649 r9661  
    23832383/** @todo fix this! Convert the PGMR3DumpHierarchyHC functions to do guest stuff. */
    23842384    /* Big pages supported? */
    2385     const bool fPSE = CPUMIsGuestInLongMode(pVM) || !!(CPUMGetGuestCR4(pVM) & X86_CR4_PSE);
     2385    const bool fPSE  = !!(CPUMGetGuestCR4(pVM) & X86_CR4_PSE);
    23862386
    23872387    /* Global pages supported? */
     
    32573257        return VERR_INVALID_PARAMETER;
    32583258    }
    3259     const bool fBigPagesSupported = CPUMIsGuestInLongMode(pVM) || !!(cr4 & X86_CR4_PSE);
     3259    const bool fBigPagesSupported = fLongMode || !!(cr4 & X86_CR4_PSE);
    32603260
    32613261    int rc = VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r9649 r9661  
    17971797    return enmMode;
    17981798}
    1799 
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r9659 r9661  
    18681868    int      rc;
    18691869
    1870     if (CPUMIsGuestInLongMode(pVM))
     1870    if (CPUMIsGuestIn64BitCode(pVM, pRegFrame))
    18711871    {
    18721872        rc = DISFetchReg64(pRegFrame, SrcRegGen, &val);
     
    19051905    int rc = CPUMGetGuestDRx(pVM, SrcRegDrx, &val64);
    19061906    AssertMsgRCReturn(rc, ("CPUMGetGuestDRx %d failed\n", SrcRegDrx), VERR_EM_INTERPRETER);
    1907     if (CPUMIsGuestInLongMode(pVM))
     1907    if (CPUMIsGuestIn64BitCode(pVM, pRegFrame))
    19081908    {
    19091909        rc = DISWriteReg64(pRegFrame, DestRegGen, val64);
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