VirtualBox

Changeset 98827 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Mar 3, 2023 12:01:42 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156149
Message:

VMM/IEM: Implement adcx/adox instructions emulation, bugref:9898

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp

    r98703 r98827  
    10491049    CPUMISAEXTCFG   enmRdSeed;
    10501050    CPUMISAEXTCFG   enmSha;
     1051    CPUMISAEXTCFG   enmAdx;
    10511052    CPUMISAEXTCFG   enmCLFlushOpt;
    10521053    CPUMISAEXTCFG   enmFsGsBase;
     
    18461847                               //| RT_BIT(17) - reserved
    18471848                               | PASSTHRU_FEATURE_TODO(pConfig->enmRdSeed, X86_CPUID_STEXT_FEATURE_EBX_RDSEED)
    1848                                //| X86_CPUID_STEXT_FEATURE_EBX_ADX               RT_BIT(19)
     1849                               | PASSTHRU_FEATURE(pConfig->enmAdx, pHstFeat->fAdx, X86_CPUID_STEXT_FEATURE_EBX_ADX)
    18491850                               //| X86_CPUID_STEXT_FEATURE_EBX_SMAP              RT_BIT(20)
    18501851                               //| RT_BIT(21) - reserved
     
    18891890                    PORTABLE_DISABLE_FEATURE_BIT(    1, pCurLeaf->uEbx, AVX512F,    X86_CPUID_STEXT_FEATURE_EBX_AVX512F);
    18901891                    PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pCurLeaf->uEbx, RDSEED,     X86_CPUID_STEXT_FEATURE_EBX_RDSEED, pConfig->enmRdSeed);
     1892                    PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pCurLeaf->uEbx, ADX,        X86_CPUID_STEXT_FEATURE_EBX_ADX, pConfig->enmAdx);
    18911893                    PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pCurLeaf->uEbx, CLFLUSHOPT, X86_CPUID_STEXT_FEATURE_EBX_RDSEED, pConfig->enmCLFlushOpt);
    18921894                    PORTABLE_DISABLE_FEATURE_BIT(    1, pCurLeaf->uEbx, AVX512PF,   X86_CPUID_STEXT_FEATURE_EBX_AVX512PF);
     
    19121914                if (pConfig->enmRdSeed == CPUMISAEXTCFG_ENABLED_ALWAYS)
    19131915                    pCurLeaf->uEbx |= X86_CPUID_STEXT_FEATURE_EBX_RDSEED;
     1916                if (pConfig->enmAdx == CPUMISAEXTCFG_ENABLED_ALWAYS)
     1917                    pCurLeaf->uEbx |= X86_CPUID_STEXT_FEATURE_EBX_ADX;
    19141918                if (pConfig->enmCLFlushOpt == CPUMISAEXTCFG_ENABLED_ALWAYS)
    19151919                    pCurLeaf->uEbx |= X86_CPUID_STEXT_FEATURE_EBX_CLFLUSHOPT;
     
    27492753                                  "|RDRAND"
    27502754                                  "|RDSEED"
     2755                                  "|ADX"
    27512756                                  "|CLFLUSHOPT"
    27522757                                  "|SHA"
     
    28782883     */
    28792884    rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "RDSEED", &pConfig->enmRdSeed, fNestedPagingAndFullGuestExec);
     2885    AssertLogRelRCReturn(rc, rc);
     2886
     2887    /** @cfgm{/CPUM/IsaExts/ADX, isaextcfg, depends}
     2888     * Whether to expose the ADX instructions to the guest.  For the time being
     2889     * the default is to only do this for VMs with nested paging and AMD-V or
     2890     * unrestricted guest mode.
     2891     */
     2892    rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "ADX", &pConfig->enmAdx, fNestedPagingAndFullGuestExec);
    28802893    AssertLogRelRCReturn(rc, rc);
    28812894
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