VirtualBox

Changeset 55456 in vbox


Ignore:
Timestamp:
Apr 27, 2015 3:16:01 PM (9 years ago)
Author:
vboxsync
Message:

CPUM: Dump supported extra state in the verbose edition of 'cpumguest' and 'cpumhyper' - fixes.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/x86.h

    r55048 r55456  
    28002800/** @name XSAVE_C_XXX - XSAVE State Components Bits.
    28012801 * @{ */
     2802/** Bit 0 - x87 - Legacy FPU state (bit number) */
     2803#define XSAVE_C_X87_BIT         0
    28022804/** Bit 0 - x87 - Legacy FPU state. */
    2803 #define XSAVE_C_X87         RT_BIT_64(0)
     2805#define XSAVE_C_X87             RT_BIT_64(XSAVE_C_X87_BIT)
     2806/** Bit 1 - SSE - 128-bit SSE state (bit number). */
     2807#define XSAVE_C_SSE_BIT         1
    28042808/** Bit 1 - SSE - 128-bit SSE state. */
    2805 #define XSAVE_C_SSE         RT_BIT_64(1)
     2809#define XSAVE_C_SSE             RT_BIT_64(XSAVE_C_SSE_BIT)
     2810/** Bit 2 - YMM_Hi128 - Upper 128 bits of YMM0-15 (AVX) (bit number). */
     2811#define XSAVE_C_YMM_BIT         2
    28062812/** Bit 2 - YMM_Hi128 - Upper 128 bits of YMM0-15 (AVX). */
    2807 #define XSAVE_C_YMM         RT_BIT_64(2)
     2813#define XSAVE_C_YMM             RT_BIT_64(XSAVE_C_YMM_BIT)
     2814/** Bit 3 - BNDREGS - MPX bound register state (bit number). */
     2815#define XSAVE_C_BNDREGS_BIT     3
    28082816/** Bit 3 - BNDREGS - MPX bound register state. */
    2809 #define XSAVE_C_BNDREGS     RT_BIT_64(3)
     2817#define XSAVE_C_BNDREGS         RT_BIT_64(XSAVE_C_BNDREGS_BIT)
     2818/** Bit 4 - BNDCSR - MPX bound config and status state (bit number). */
     2819#define XSAVE_C_BNDCSR_BIT      4
    28102820/** Bit 4 - BNDCSR - MPX bound config and status state. */
    2811 #define XSAVE_C_BNDCSR      RT_BIT_64(4)
     2821#define XSAVE_C_BNDCSR          RT_BIT_64(XSAVE_C_BNDCSR_BIT)
     2822/** Bit 5 - Opmask - opmask state (bit number). */
     2823#define XSAVE_C_OPMASK_BIT      5
    28122824/** Bit 5 - Opmask - opmask state. */
    2813 #define XSAVE_C_OPMASK      RT_BIT_64(5)
     2825#define XSAVE_C_OPMASK          RT_BIT_64(XSAVE_C_OPMASK_BIT)
     2826/** Bit 6 - ZMM_Hi256 - Upper 256 bits of ZMM0-15 (AVX-512) (bit number). */
     2827#define XSAVE_C_ZMM_HI256_BIT   6
    28142828/** Bit 6 - ZMM_Hi256 - Upper 256 bits of ZMM0-15 (AVX-512). */
    2815 #define XSAVE_C_ZMM_HI256   RT_BIT_64(6)
     2829#define XSAVE_C_ZMM_HI256       RT_BIT_64(XSAVE_C_ZMM_HI256_BIT)
     2830/** Bit 7 - Hi16_ZMM - 512-bits ZMM16-31 state (AVX-512) (bit number). */
     2831#define XSAVE_C_ZMM_16HI_BIT    7
    28162832/** Bit 7 - Hi16_ZMM - 512-bits ZMM16-31 state (AVX-512). */
    2817 #define XSAVE_C_ZMM_16HI    RT_BIT_64(7)
     2833#define XSAVE_C_ZMM_16HI        RT_BIT_64(XSAVE_C_ZMM_16HI_BIT)
     2834/** Bit 62 - LWP - Lightweight Profiling (AMD) (bit number). */
     2835#define XSAVE_C_LWP_BIT         62
    28182836/** Bit 62 - LWP - Lightweight Profiling (AMD). */
    2819 #define XSAVE_C_LWP         RT_BIT_64(62)
     2837#define XSAVE_C_LWP             RT_BIT_64(XSAVE_C_LWP_BIT)
    28202838/** @} */
    28212839
  • trunk/src/VBox/VMM/VMMR3/CPUM.cpp

    r55452 r55456  
    16491649            if (pCtx->fXStateMask & XSAVE_C_YMM)
    16501650            {
    1651                 PCX86XSAVEYMMHI pYmmHiCtx = (PCX86XSAVEYMMHI)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_YMM]);
     1651                PCX86XSAVEYMMHI pYmmHiCtx;
     1652                pYmmHiCtx = (PCX86XSAVEYMMHI)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_YMM_BIT]);
    16521653                if (!(pCtx->fXStateMask & XSAVE_C_ZMM_HI256))
    16531654                    for (unsigned i = 0; i < RT_ELEMENTS(pFpuCtx->aXMM); i++)
     
    16651666                {
    16661667                    PCX86XSAVEZMMHI256 pZmmHi256;
    1667                     pZmmHi256 = (PCX86XSAVEZMMHI256)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_ZMM_HI256]);
     1668                    pZmmHi256 = (PCX86XSAVEZMMHI256)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_ZMM_HI256_BIT]);
    16681669                    for (unsigned i = 0; i < RT_ELEMENTS(pFpuCtx->aXMM); i++)
    16691670                        pHlp->pfnPrintf(pHlp,
     
    16881689
    16891690                    PCX86XSAVEZMM16HI pZmm16Hi;
    1690                     pZmm16Hi = (PCX86XSAVEZMM16HI)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_ZMM_16HI]);
     1691                    pZmm16Hi = (PCX86XSAVEZMM16HI)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_ZMM_16HI_BIT]);
    16911692                    for (unsigned i = 0; i < RT_ELEMENTS(pZmm16Hi->aRegs); i++)
    16921693                        pHlp->pfnPrintf(pHlp,
     
    17261727            {
    17271728                PCX86XSAVEOPMASK pOpMask;
    1728                 pOpMask = (PCX86XSAVEOPMASK)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_OPMASK]);
     1729                pOpMask = (PCX86XSAVEOPMASK)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_OPMASK_BIT]);
    17291730                for (unsigned i = 0; i < RT_ELEMENTS(pOpMask->aKRegs); i += 4)
    17301731                    pHlp->pfnPrintf(pHlp, "%sK%u=%016RX64  %sK%u=%016RX64  %sK%u=%016RX64  %sK%u=%016RX64\n",
     
    17381739            {
    17391740                PCX86XSAVEBNDREGS pBndRegs;
    1740                 pBndRegs = (PCX86XSAVEBNDREGS)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_BNDREGS]);
     1741                pBndRegs = (PCX86XSAVEBNDREGS)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_BNDREGS_BIT]);
    17411742                for (unsigned i = 0; i < RT_ELEMENTS(pBndRegs->aRegs); i += 2)
    17421743                    pHlp->pfnPrintf(pHlp, "%sBNDREG%u=%016RX64/%016RX64  %sBNDREG%u=%016RX64/%016RX64\n",
     
    17481749            {
    17491750                PCX86XSAVEBNDCFG pBndCfg;
    1750                 pBndCfg = (PCX86XSAVEBNDCFG)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_BNDCSR]);
     1751                pBndCfg = (PCX86XSAVEBNDCFG)((uint8_t *)pCtx->CTX_SUFF(pXState) + pCtx->aoffXState[XSAVE_C_BNDCSR_BIT]);
    17511752                pHlp->pfnPrintf(pHlp, "%sBNDCFG.CONFIG=%016RX64 %sBNDCFG.STATUS=%016RX64\n",
    17521753                                pszPrefix, pBndCfg->fConfig, pszPrefix, pBndCfg->fStatus);
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