VirtualBox

Ignore:
Timestamp:
Jun 27, 2022 6:49:14 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
151995
Message:

ValKit/bs3kit: More work on extended CPU/FPU state management. bugref:9898

Location:
trunk/src/VBox/ValidationKit/bootsectors/bs3kit
Files:
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-ExtCtxGetFcw.c

    r95386 r95398  
    11/* $Id$ */
    22/** @file
    3  * BS3Kit - Bs3ExtCtxGetMm
     3 * BS3Kit - Bs3ExtCtxGetFcw
    44 */
    55
     
    3232
    3333
    34 #undef Bs3ExtCtxGetMm
    35 BS3_CMN_DEF(uint64_t, Bs3ExtCtxGetMm,(PCBS3EXTCTX pExtCtx, uint8_t iReg))
     34#undef Bs3ExtCtxGetFcw
     35BS3_CMN_DEF(uint16_t, Bs3ExtCtxGetFcw,(PCBS3EXTCTX pExtCtx))
    3636{
    37     AssertCompileMembersAtSameOffset(BS3EXTCTX, Ctx.x87.aRegs, BS3EXTCTX, Ctx.x.x87.aRegs);
    38     if (iReg < RT_ELEMENTS(pExtCtx->Ctx.x87.aRegs))
    39         switch (pExtCtx->enmMethod)
    40         {
    41             case BS3EXTCTXMETHOD_FXSAVE:
    42             case BS3EXTCTXMETHOD_XSAVE:
    43                 return pExtCtx->Ctx.x87.aRegs[iReg].mmx;
     37    AssertCompileMembersAtSameOffset(BS3EXTCTX, Ctx.x87.FCW, BS3EXTCTX, Ctx.x.x87.FCW);
     38    switch (pExtCtx->enmMethod)
     39    {
     40        case BS3EXTCTXMETHOD_FXSAVE:
     41        case BS3EXTCTXMETHOD_XSAVE:
     42            return pExtCtx->Ctx.x87.FCW;
    4443
    45             case BS3EXTCTXMETHOD_ANCIENT:
    46                 return pExtCtx->Ctx.Ancient.regs[iReg].mmx;
    47         }
     44        case BS3EXTCTXMETHOD_ANCIENT:
     45            return pExtCtx->Ctx.Ancient.FCW;
     46    }
    4847    return 0;
    4948}
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-ExtCtxSetFcw.c

    r95386 r95398  
    11/* $Id$ */
    22/** @file
    3  * BS3Kit - Bs3ExtCtxSetMm
     3 * BS3Kit - Bs3ExtCtxSetFcw
    44 */
    55
     
    3232
    3333
    34 #undef Bs3ExtCtxSetMm
    35 BS3_CMN_DEF(bool, Bs3ExtCtxSetMm,(PBS3EXTCTX pExtCtx, uint8_t iReg, uint64_t uValue))
     34#undef Bs3ExtCtxSetFcw
     35BS3_CMN_DEF(void, Bs3ExtCtxSetFcw,(PBS3EXTCTX pExtCtx, uint16_t uValue))
    3636{
    37     AssertCompileMembersAtSameOffset(BS3EXTCTX, Ctx.x87.aRegs, BS3EXTCTX, Ctx.x.x87.aRegs);
    38     if (iReg < RT_ELEMENTS(pExtCtx->Ctx.x87.aRegs))
    39         switch (pExtCtx->enmMethod)
    40         {
    41             case BS3EXTCTXMETHOD_FXSAVE:
    42             case BS3EXTCTXMETHOD_XSAVE:
    43                 pExtCtx->Ctx.x87.aRegs[iReg].mmx = uValue;
    44                 return true;
     37    AssertCompileMembersAtSameOffset(BS3EXTCTX, Ctx.x87.FCW, BS3EXTCTX, Ctx.x.x87.FCW);
     38    switch (pExtCtx->enmMethod)
     39    {
     40        case BS3EXTCTXMETHOD_FXSAVE:
     41        case BS3EXTCTXMETHOD_XSAVE:
     42            pExtCtx->Ctx.x87.FCW     = uValue;
     43            break;
    4544
    46             case BS3EXTCTXMETHOD_ANCIENT:
    47                 pExtCtx->Ctx.Ancient.regs[iReg].mmx = uValue;
    48                 return true;
    49         }
    50     return false;
     45        case BS3EXTCTXMETHOD_ANCIENT:
     46            pExtCtx->Ctx.Ancient.FCW = uValue;
     47            break;
     48    }
    5149}
    5250
Note: See TracChangeset for help on using the changeset viewer.

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