VirtualBox

Changeset 47598 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Aug 7, 2013 4:59:58 PM (11 years ago)
Author:
vboxsync
Message:

IEM: Fixed sp/esp handling in IRET.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r47568 r47598  
    24592459        pCtx->cs.u32Limit   = cbLimitCS;
    24602460        pCtx->cs.u64Base    = X86DESC_BASE(&DescCS.Legacy);
    2461         pCtx->rsp           = uNewESP;
     2461        if (!pCtx->cs.Attr.n.u1DefBig)
     2462            pCtx->sp        = (uint16_t)uNewESP;
     2463        else
     2464            pCtx->rsp       = uNewESP;
    24622465        pCtx->ss.Sel        = uNewSS;
    24632466        pCtx->ss.ValidSel   = uNewSS;
     
    27862789    pCtx->cs.u32Limit   = cbLimitCS;
    27872790    pCtx->cs.u64Base    = X86DESC_BASE(&DescCS.Legacy);
    2788     pCtx->rsp           = uNewRsp;
     2791    if (pCtx->cs.Attr.n.u1Long || pCtx->cs.Attr.n.u1DefBig)
     2792        pCtx->rsp       = uNewRsp;
     2793    else
     2794        pCtx->sp        = (uint16_t)uNewRsp;
    27892795    pCtx->ss.Sel        = uNewSs;
    27902796    pCtx->ss.ValidSel   = uNewSs;
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