VirtualBox

Ignore:
Timestamp:
Jan 31, 2022 10:17:19 PM (3 years ago)
Author:
vboxsync
Message:

iprt/asm-amd64-x86.h: Split out some non-assembly functions that related more to x86.h than to asm.h, changing the function prefix from ASM to RTX86. bugref:9898

Location:
trunk/src/VBox/HostDrivers/Support
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp

    r93387 r93515  
    43014301        uint32_t uMaxLeaf, uVendorEbx, uVendorEcx, uVendorEdx;
    43024302        ASMCpuId(0, &uMaxLeaf, &uVendorEbx, &uVendorEcx, &uVendorEdx);
    4303         if (ASMIsValidStdRange(uMaxLeaf))
     4303        if (RTX86IsValidStdRange(uMaxLeaf))
    43044304        {
    43054305            /* Query the standard CPUID leaf. */
     
    43084308
    43094309            /* Check if the vendor is Intel (or compatible). */
    4310             if (   ASMIsIntelCpuEx(uVendorEbx, uVendorEcx, uVendorEdx)
    4311                 || ASMIsViaCentaurCpuEx(uVendorEbx, uVendorEcx, uVendorEdx)
    4312                 || ASMIsShanghaiCpuEx(uVendorEbx, uVendorEcx, uVendorEdx))
     4310            if (   RTX86IsIntelCpu(uVendorEbx, uVendorEcx, uVendorEdx)
     4311                || RTX86IsViaCentaurCpu(uVendorEbx, uVendorEcx, uVendorEdx)
     4312                || RTX86IsShanghaiCpu(uVendorEbx, uVendorEcx, uVendorEdx))
    43134313            {
    43144314                /* Check VT-x support. In addition, VirtualBox requires MSR and FXSAVE/FXRSTOR to function. */
     
    43244324
    43254325            /* Check if the vendor is AMD (or compatible). */
    4326             if (   ASMIsAmdCpuEx(uVendorEbx, uVendorEcx, uVendorEdx)
    4327                 || ASMIsHygonCpuEx(uVendorEbx, uVendorEcx, uVendorEdx))
     4326            if (   RTX86IsAmdCpu(uVendorEbx, uVendorEcx, uVendorEdx)
     4327                || RTX86IsHygonCpu(uVendorEbx, uVendorEcx, uVendorEdx))
    43284328            {
    43294329                uint32_t fExtFeatEcx, uExtMaxId;
     
    43324332
    43334333                /* Check AMD-V support. In addition, VirtualBox requires MSR and FXSAVE/FXRSTOR to function. */
    4334                 if (   ASMIsValidExtRange(uExtMaxId)
     4334                if (   RTX86IsValidExtRange(uExtMaxId)
    43354335                    && uExtMaxId >= 0x8000000a
    43364336                    && (fExtFeatEcx & X86_CPUID_AMD_FEATURE_ECX_SVM)
     
    44284428        uint32_t uMaxId, uVendorEBX, uVendorECX, uVendorEDX;
    44294429        ASMCpuId(0, &uMaxId, &uVendorEBX, &uVendorECX, &uVendorEDX);
    4430         Assert(ASMIsValidStdRange(uMaxId));
    4431         Assert(   ASMIsIntelCpuEx(     uVendorEBX, uVendorECX, uVendorEDX)
    4432                || ASMIsViaCentaurCpuEx(uVendorEBX, uVendorECX, uVendorEDX)
    4433                || ASMIsShanghaiCpuEx(  uVendorEBX, uVendorECX, uVendorEDX));
     4430        Assert(RTX86IsValidStdRange(uMaxId));
     4431        Assert(   RTX86IsIntelCpu(     uVendorEBX, uVendorECX, uVendorEDX)
     4432               || RTX86IsViaCentaurCpu(uVendorEBX, uVendorECX, uVendorEDX)
     4433               || RTX86IsShanghaiCpu(  uVendorEBX, uVendorECX, uVendorEDX));
    44344434#endif
    44354435        ASMCpuId(1, &uDummy, &uDummy, &fFeaturesECX, &uDummy);
     
    46794679        ASMCpuId(1, &uTFMSEAX, &uDummy, &uDummy, &uDummy);
    46804680
    4681         if (ASMIsValidStdRange(uMaxId))
     4681        if (RTX86IsValidStdRange(uMaxId))
    46824682        {
    46834683            uint64_t    uRevMsr;
    4684             if (ASMIsIntelCpuEx(uVendorEBX, uVendorECX, uVendorEDX))
     4684            if (RTX86IsIntelCpu(uVendorEBX, uVendorECX, uVendorEDX))
    46854685            {
    46864686                /* Architectural MSR available on Pentium Pro and later. */
    4687                 if (ASMGetCpuFamily(uTFMSEAX) >= 6)
     4687                if (RTX86GetCpuFamily(uTFMSEAX) >= 6)
    46884688                {
    46894689                    /* Revision is in the high dword. */
     
    46934693                }
    46944694            }
    4695             else if (   ASMIsAmdCpuEx(uVendorEBX, uVendorECX, uVendorEDX)
    4696                      || ASMIsHygonCpuEx(uVendorEBX, uVendorECX, uVendorEDX))
     4695            else if (   RTX86IsAmdCpu(uVendorEBX, uVendorECX, uVendorEDX)
     4696                     || RTX86IsHygonCpu(uVendorEBX, uVendorECX, uVendorEDX))
    46974697            {
    46984698                /* Not well documented, but at least all AMD64 CPUs support this. */
    4699                 if (ASMGetCpuFamily(uTFMSEAX) >= 15)
     4699                if (RTX86GetCpuFamily(uTFMSEAX) >= 15)
    47004700                {
    47014701                    /* Revision is in the low dword. */
  • trunk/src/VBox/HostDrivers/Support/SUPDrvGip.cpp

    r93115 r93515  
    199199    /* The Intel CPU topology leaf: */
    200200    uint32_t uOther = ASMCpuId_EAX(0);
    201     if (uOther >= UINT32_C(0xb) && ASMIsValidStdRange(uOther))
     201    if (uOther >= UINT32_C(0xb) && RTX86IsValidStdRange(uOther))
    202202    {
    203203        uint32_t uEax = 0;
     
    220220    /* The AMD leaf: */
    221221    uOther = ASMCpuId_EAX(UINT32_C(0x80000000));
    222     if (uOther >= UINT32_C(0x8000001e) && ASMIsValidExtRange(uOther))
     222    if (uOther >= UINT32_C(0x8000001e) && RTX86IsValidExtRange(uOther))
    223223    {
    224224        uOther = ASMGetApicIdExt8000001E();
     
    371371            if (ASMHasCpuId())
    372372            {
    373                 if (   ASMIsValidExtRange(ASMCpuId_EAX(UINT32_C(0x80000000)))
     373                if (   RTX86IsValidExtRange(ASMCpuId_EAX(UINT32_C(0x80000000)))
    374374                    && (ASMCpuId_EDX(UINT32_C(0x80000001)) & X86_CPUID_EXT_FEATURE_EDX_RDTSCP) )
    375375                {
     
    406406    idApic = UINT32_MAX;
    407407    uEax = ASMCpuId_EAX(0);
    408     if (uEax >= UINT32_C(0xb) && ASMIsValidStdRange(uEax))
     408    if (uEax >= UINT32_C(0xb) && RTX86IsValidStdRange(uEax))
    409409    {
    410410#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
     
    430430
    431431    uEax = ASMCpuId_EAX(UINT32_C(0x80000000));
    432     if (uEax >= UINT32_C(0x8000001e) && ASMIsValidExtRange(uEax))
     432    if (uEax >= UINT32_C(0x8000001e) && RTX86IsValidExtRange(uEax))
    433433    {
    434434#if defined(RT_OS_LINUX) || defined(RT_OS_FREEBSD)
     
    17681768    {
    17691769        uEAX = ASMCpuId_EAX(0x80000000);
    1770         if (ASMIsValidExtRange(uEAX) && uEAX >= 0x80000007)
     1770        if (RTX86IsValidExtRange(uEAX) && uEAX >= 0x80000007)
    17711771        {
    17721772            uEDX = ASMCpuId_EDX(0x80000007);
     
    18141814    /* (2) If it's an AMD CPU with power management, we won't trust its TSC. */
    18151815    ASMCpuId(0, &uEAX, &uEBX, &uECX, &uEDX);
    1816     if (   ASMIsValidStdRange(uEAX)
    1817         && (ASMIsAmdCpuEx(uEBX, uECX, uEDX) || ASMIsHygonCpuEx(uEBX, uECX, uEDX)) )
     1816    if (   RTX86IsValidStdRange(uEAX)
     1817        && (RTX86IsAmdCpu(uEBX, uECX, uEDX) || RTX86IsHygonCpu(uEBX, uECX, uEDX)) )
    18181818    {
    18191819        /* Check for APM support. */
    18201820        uEAX = ASMCpuId_EAX(0x80000000);
    1821         if (ASMIsValidExtRange(uEAX) && uEAX >= 0x80000007)
     1821        if (RTX86IsValidExtRange(uEAX) && uEAX >= 0x80000007)
    18221822        {
    18231823            uEDX = ASMCpuId_EDX(0x80000007);
     
    40334033            && pGip->cOnlineCpus > 2
    40344034            && ASMHasCpuId()
    4035             && ASMIsValidStdRange(ASMCpuId_EAX(0))
     4035            && RTX86IsValidStdRange(ASMCpuId_EAX(0))
    40364036            && (ASMCpuId_EDX(1) & X86_CPUID_FEATURE_EDX_HTT)
    40374037            && (   !ASMIsAmdCpu()
    4038                 || ASMGetCpuFamily(u32Tmp = ASMCpuId_EAX(1)) > 0x15
    4039                 || (   ASMGetCpuFamily(u32Tmp)   == 0x15           /* Piledriver+, not bulldozer (FX-4150 didn't like it). */
    4040                     && ASMGetCpuModelAMD(u32Tmp) >= 0x02) ) )
     4038                || RTX86GetCpuFamily(u32Tmp = ASMCpuId_EAX(1)) > 0x15
     4039                || (   RTX86GetCpuFamily(u32Tmp)   == 0x15           /* Piledriver+, not bulldozer (FX-4150 didn't like it). */
     4040                    && RTX86GetCpuModelAMD(u32Tmp) >= 0x02) ) )
    40414041        || !RTMpIsCpuOnline(idMaster) )
    40424042    {
  • trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp

    r93115 r93515  
    20082008    uint32_t uMaxId, uEAX, uEBX, uECX, uEDX;
    20092009    ASMCpuId(0, &uMaxId, &uEBX, &uECX, &uEDX);
    2010     if (   ASMIsValidStdRange(uMaxId)
     2010    if (   RTX86IsValidStdRange(uMaxId)
    20112011        && uMaxId >= 0x00000007)
    20122012    {
  • trunk/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp

    r93239 r93515  
    840840    if (!ASMHasCpuId())
    841841        return false;
    842     if (!ASMIsValidStdRange(ASMCpuId_EAX(0)))
     842    if (!RTX86IsValidStdRange(ASMCpuId_EAX(0)))
    843843        return false;
    844844    if (!(ASMCpuId_ECX(1) & X86_CPUID_FEATURE_ECX_HVP))
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