VirtualBox

Changeset 94909 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
May 8, 2022 3:41:38 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
151317
Message:

VMM/CPUM: Added fBmi1, fBmi2, fAbm, fTbm, fRdRand, and fRdSeed to the CPU features. bugref:9898

File:
1 edited

Legend:

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

    r93922 r94909  
    11051105    /** Supports read/write FSGSBASE instructions. */
    11061106    uint32_t        fFsGsBase : 1;
     1107    /** Support BMI1 instructions (ANDN, BEXTR, BLSI, BLSMSK, BLSR, and TZCNT). */
     1108    uint32_t        fBmi1 : 1;
     1109    /** Support BMI2 instructions (BZHI, MULX, PDEP, PEXT, RORX, SARX, SHRX,
     1110     * and SHLX). */
     1111    uint32_t        fBmi2 : 1;
     1112    /** Support RDRAND instruction. */
     1113    uint32_t        fRdRand : 1;
     1114    /** Support RDSEED instruction. */
     1115    uint32_t        fRdSeed : 1;
    11071116
    11081117    /** Supports AMD 3DNow instructions. */
     
    11251134    /** AMD64: Supports XOP (similar to VEX3/AVX). */
    11261135    uint32_t        fXop : 1;
     1136    /** AMD64: Supports ABM, i.e. the LZCNT instruction. */
     1137    uint32_t        fAbm : 1;
     1138    /** AMD64: Supports TBM (BEXTR, BLCFILL, BLCI, BLCIC, BLCMSK, BLCS,
     1139     *  BLSFILL, BLSIC, T1MSKC, and TZMSK). */
     1140    uint32_t        fTbm : 1;
    11271141
    11281142    /** Indicates that FPU instruction and data pointers may leak.
     
    11581172    uint32_t        fArchMdsNo : 1;
    11591173
    1160     /** Alignment padding / reserved for future use. */
    1161     uint32_t        fPadding : 7;
    1162 
     1174    /** Alignment padding / reserved for future use (96 bits total, plus 12 bytes
     1175     *  prior to the bit fields -> total of 24 bytes) */
     1176    uint32_t        fPadding0 : 1;
     1177    uint32_t        fPadding1;
     1178
     1179
     1180    /** @name SVM
     1181     * @{ */
    11631182    /** SVM: Supports Nested-paging. */
    11641183    uint32_t        fSvmNestedPaging : 1;
     
    11891208    /** SVM: Supports GMET (Guest Mode Execute Trap Extension). */
    11901209    uint32_t        fSvmGmet : 1;
    1191     /** SVM: Padding / reserved for future features. */
     1210    /** SVM: Padding / reserved for future features (64 bits total w/ max ASID). */
    11921211    uint32_t        fSvmPadding0 : 18;
    11931212    /** SVM: Maximum supported ASID. */
    11941213    uint32_t        uSvmMaxAsid;
     1214    /** @} */
     1215
    11951216
    11961217    /** VMX: Maximum physical address width. */
    1197     uint8_t         cVmxMaxPhysAddrWidth;
    1198     /** VMX: Padding / reserved for future. */
    1199     uint8_t         abVmxPadding[3];
    1200     /** VMX: Padding / reserved for future.  */
    1201     uint32_t        fVmxPadding0;
     1218    uint32_t        cVmxMaxPhysAddrWidth : 8;
    12021219
    12031220    /** @name VMX basic controls.
     
    13781395
    13791396    /** VMX: Padding / reserved for future features. */
    1380     uint32_t        fVmxPadding1 : 25;
     1397    uint32_t        fVmxPadding0 : 17;
     1398    /** VMX: Padding / reserved for future, making it a total of 128 bits.  */
     1399    uint32_t        fVmxPadding1;
    13811400} CPUMFEATURES;
    13821401#ifndef VBOX_FOR_DTRACE_LIB
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