Changeset 55456 in vbox
- Timestamp:
- Apr 27, 2015 3:16:01 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
include/iprt/x86.h (modified) (1 diff)
-
src/VBox/VMM/VMMR3/CPUM.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/x86.h
r55048 r55456 2800 2800 /** @name XSAVE_C_XXX - XSAVE State Components Bits. 2801 2801 * @{ */ 2802 /** Bit 0 - x87 - Legacy FPU state (bit number) */ 2803 #define XSAVE_C_X87_BIT 0 2802 2804 /** 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 2804 2808 /** 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 2806 2812 /** 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 2808 2816 /** 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 2810 2820 /** 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 2812 2824 /** 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 2814 2828 /** 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 2816 2832 /** 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 2818 2836 /** 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) 2820 2838 /** @} */ 2821 2839 -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r55452 r55456 1649 1649 if (pCtx->fXStateMask & XSAVE_C_YMM) 1650 1650 { 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]); 1652 1653 if (!(pCtx->fXStateMask & XSAVE_C_ZMM_HI256)) 1653 1654 for (unsigned i = 0; i < RT_ELEMENTS(pFpuCtx->aXMM); i++) … … 1665 1666 { 1666 1667 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]); 1668 1669 for (unsigned i = 0; i < RT_ELEMENTS(pFpuCtx->aXMM); i++) 1669 1670 pHlp->pfnPrintf(pHlp, … … 1688 1689 1689 1690 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]); 1691 1692 for (unsigned i = 0; i < RT_ELEMENTS(pZmm16Hi->aRegs); i++) 1692 1693 pHlp->pfnPrintf(pHlp, … … 1726 1727 { 1727 1728 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]); 1729 1730 for (unsigned i = 0; i < RT_ELEMENTS(pOpMask->aKRegs); i += 4) 1730 1731 pHlp->pfnPrintf(pHlp, "%sK%u=%016RX64 %sK%u=%016RX64 %sK%u=%016RX64 %sK%u=%016RX64\n", … … 1738 1739 { 1739 1740 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]); 1741 1742 for (unsigned i = 0; i < RT_ELEMENTS(pBndRegs->aRegs); i += 2) 1742 1743 pHlp->pfnPrintf(pHlp, "%sBNDREG%u=%016RX64/%016RX64 %sBNDREG%u=%016RX64/%016RX64\n", … … 1748 1749 { 1749 1750 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]); 1751 1752 pHlp->pfnPrintf(pHlp, "%sBNDCFG.CONFIG=%016RX64 %sBNDCFG.STATUS=%016RX64\n", 1752 1753 pszPrefix, pBndCfg->fConfig, pszPrefix, pBndCfg->fStatus);
Note:
See TracChangeset
for help on using the changeset viewer.

