VirtualBox

Changeset 4425 in vbox


Ignore:
Timestamp:
Aug 29, 2007 9:34:18 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
24001
Message:

some more CPU feature flags

Location:
trunk
Files:
3 edited

Legend:

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

    r4071 r4425  
    177177    /** Bit 8 - TM2 - Terminal Monitor 2. */
    178178    unsigned    u1TM2 : 1;
    179     /** Reserved. */
    180     unsigned    u1Reserved3 : 1;
     179    /** Bit 9 - SSSE3 - Supplemental Streaming SIMD Extensions 3. */
     180    unsigned    u1SSSE3 : 1;
    181181    /** Bit 10 - CNTX-ID - L1 Context ID. */
    182182    unsigned    u1CNTXID : 1;
     
    185185    /** Bit 13 - CX16 - CMPXCHG16B. */
    186186    unsigned    u1CX16 : 1;
     187    /** Bit 14 - xTPR Update Control. Processor supports changing IA32_MISC_ENABLES[bit 23]. */
     188    unsigned    u1TPRUpdate : 1;
    187189    /** Reserved. */
    188     unsigned    u18Reserved5 : 18;
     190    unsigned    u17Reserved5 : 17;
    189191
    190192} X86CPUIDFEATECX;
     
    300302/** ECX Bit 8 - TM2 - Terminal Monitor 2. */
    301303#define X86_CPUID_FEATURE_ECX_TM2       BIT(8)
     304/** ECX Bit 9 - SSSE3 - Supplemental Streaming SIMD Extensions 3. */
     305#define X86_CPUID_FEATURE_ECX_SSSE3     BIT(9)
    302306/** ECX Bit 10 - CNTX-ID - L1 Context ID. */
    303307#define X86_CPUID_FEATURE_ECX_CNTXID    BIT(10)
    304 /** ECX Bit 13 - CX16 - L1 Context ID. */
     308/** ECX Bit 13 - CX16 - CMPXCHG16B. */
    305309#define X86_CPUID_FEATURE_ECX_CX16      BIT(13)
     310/** ECX Bit 14 - xTPR Update Control. Processor supports changing IA32_MISC_ENABLES[bit 23]. */
     311#define X86_CPUID_FEATURE_ECX_TPRUPDATE BIT(14)
     312/** ECX Bit 23 - POPCOUNT instruction. */
     313#define X86_CPUID_FEATURE_ECX_POPCOUNT  BIT(23)
    306314
    307315
     
    413421/** Bit 24 - FXSR - FXSAVE and FXRSTOR Instructions. */
    414422#define X86_CPUID_AMD_FEATURE_EDX_FXSR      BIT(24)
    415 /** Bit 25 - ???? - AMD fast FXSAVE and FXRSTOR Instructions. */
     423/** Bit 25 - FFXSR - AMD fast FXSAVE and FXRSTOR Instructions. */
    416424#define X86_CPUID_AMD_FEATURE_EDX_FFXSR     BIT(25)
    417 /** Bit 29 - ???? - AMD Long Mode. */
     425/** Bit 26 - PAGE1GB - AMD 1GB large page support. */
     426#define X86_CPUID_AMD_FEATURE_EDX_PAGE1GB   BIT(26)
     427/** Bit 27 - RDTSCP - AMD RDTSCP instruction. */
     428#define X86_CPUID_AMD_FEATURE_EDX_RDTSCP    BIT(27)
     429/** Bit 29 - LM - AMD Long Mode. */
    418430#define X86_CPUID_AMD_FEATURE_EDX_LONG_MODE BIT(29)
    419 /** Bit 30 - ???? - AMD Extensions to 3DNow. */
     431/** Bit 30 - 3DNOWEXT - AMD Extensions to 3DNow. */
    420432#define X86_CPUID_AMD_FEATURE_EDX_3DNOW_EX  BIT(30)
    421 /** Bit 31 - ???? - AMD 3DNow. */
     433/** Bit 31 - 3DNOW - AMD 3DNow. */
    422434#define X86_CPUID_AMD_FEATURE_EDX_3DNOW     BIT(31)
    423435
    424 /** Bit 1 - LAHF/SAHF - ???. */
    425 /*define X86_CPUID_AMD_FEATURE_ECX_TODO      BIT(0)*/
    426 /** Bit 1 - CMPL - ???. */
     436/** Bit 0 - LAHF/SAHF - AMD LAHF and SAHF in 64-bit mode. */
     437#define X86_CPUID_AMD_FEATURE_ECX_LAHF_SAHF BIT(0)
     438/** Bit 1 - CMPL - Core multi-processing legacy mode. */
    427439#define X86_CPUID_AMD_FEATURE_ECX_CMPL      BIT(1)
    428440/** Bit 2 - SVM - AMD VM extensions. */
    429441#define X86_CPUID_AMD_FEATURE_ECX_SVM       BIT(2)
    430 /** Bit 4 - CR8L - ???. */
     442/** Bit 3 - EXTAPIC - AMD extended APIC registers starting at 0x400. */
     443#define X86_CPUID_AMD_FEATURE_ECX_EXT_APIC  BIT(3)
     444/** Bit 4 - CR8L - AMD LOCK MOV CR0 means MOV CR8. */
    431445#define X86_CPUID_AMD_FEATURE_ECX_CR8L      BIT(4)
     446/** Bit 5 - ABM - AMD Advanced bit manipulation. LZCNT instruction support. */
     447#define X86_CPUID_AMD_FEATURE_ECX_ABM       BIT(5)
     448/** Bit 6 - SSE4A - AMD EXTRQ, INSERTQ, MOVNTSS, and MOVNTSD instruction support. */
     449#define X86_CPUID_AMD_FEATURE_ECX_SSE4A     BIT(6)
     450/** Bit 7 - MISALIGNSSE - AMD Misaligned SSE mode. */
     451#define X86_CPUID_AMD_FEATURE_ECX_MISALNSSE BIT(7)
     452/** Bit 8 - 3DNOWPRF - AMD PREFETCH and PREFETCHW instruction support. */
     453#define X86_CPUID_AMD_FEATURE_ECX_3DNOWPRF  BIT(8)
     454/** Bit 9 - OSVW - AMD OS visible workaround. */
     455#define X86_CPUID_AMD_FEATURE_ECX_OSVW      BIT(9)
     456/** Bit 12 - SKINIT - AMD SKINIT: SKINIT, STGI, and DEV support. */
     457#define X86_CPUID_AMD_FEATURE_ECX_SKINIT    BIT(12)
     458/** Bit 13 - WDT - AMD Watchdog timer support. */
     459#define X86_CPUID_AMD_FEATURE_ECX_WDT       BIT(13)
    432460
    433461/** @} */
  • trunk/include/VBox/x86.mac

    r1 r4425  
    2424%define X86_CPUID_FEATURE_ECX_EST       BIT(7)
    2525%define X86_CPUID_FEATURE_ECX_TM2       BIT(8)
     26%define X86_CPUID_FEATURE_ECX_SSSE3     BIT(9)
    2627%define X86_CPUID_FEATURE_ECX_CNTXID    BIT(10)
    2728%define X86_CPUID_FEATURE_ECX_CX16      BIT(13)
     29%define X86_CPUID_FEATURE_ECX_TPRUPDATE BIT(14)
     30%define X86_CPUID_FEATURE_ECX_POPCOUNT  BIT(23)
    2831%define X86_CPUID_FEATURE_EDX_FPU       BIT(0)
    2932%define X86_CPUID_FEATURE_EDX_VME       BIT(1)
     
    5558%define X86_CPUID_FEATURE_EDX_TM        BIT(29)
    5659%define X86_CPUID_FEATURE_EDX_PBE       BIT(31)
    57 %define X86_CPUID_AMD_FEATURE_EDX_FPU   BIT(0)
    58 %define X86_CPUID_AMD_FEATURE_EDX_VME    BIT(1)
     60%define X86_CPUID_AMD_FEATURE_EDX_FPU       BIT(0)
     61%define X86_CPUID_AMD_FEATURE_EDX_VME       BIT(1)
    5962%define X86_CPUID_AMD_FEATURE_EDX_DE        BIT(2)
    6063%define X86_CPUID_AMD_FEATURE_EDX_PSE       BIT(3)
     
    7780%define X86_CPUID_AMD_FEATURE_EDX_FXSR      BIT(24)
    7881%define X86_CPUID_AMD_FEATURE_EDX_FFXSR     BIT(25)
     82%define X86_CPUID_AMD_FEATURE_EDX_PAGE1GB   BIT(26)
     83%define X86_CPUID_AMD_FEATURE_EDX_RDTSCP    BIT(27)
    7984%define X86_CPUID_AMD_FEATURE_EDX_LONG_MODE BIT(29)
    8085%define X86_CPUID_AMD_FEATURE_EDX_3DNOW_EX  BIT(30)
     
    8287%define X86_CPUID_AMD_FEATURE_ECX_CMPL      BIT(1)
    8388%define X86_CPUID_AMD_FEATURE_ECX_SVM       BIT(2)
     89%define X86_CPUID_AMD_FEATURE_ECX_EXT_APIC  BIT(3)
    8490%define X86_CPUID_AMD_FEATURE_ECX_CR8L      BIT(4)
     91%define X86_CPUID_AMD_FEATURE_ECX_ABM       BIT(5)
     92%define X86_CPUID_AMD_FEATURE_ECX_SSE4A     BIT(6)
     93%define X86_CPUID_AMD_FEATURE_ECX_MISALNSSE BIT(7)
     94%define X86_CPUID_AMD_FEATURE_ECX_3DNOWPRF  BIT(8)
     95%define X86_CPUID_AMD_FEATURE_ECX_OSVW      BIT(9)
     96%define X86_CPUID_AMD_FEATURE_ECX_SKINIT    BIT(12)
     97%define X86_CPUID_AMD_FEATURE_ECX_WDT       BIT(13)
    8598%define X86_CR0_PE                          BIT(0)
    8699%define X86_CR0_PROTECTION_ENABLE           BIT(0)
  • trunk/src/VBox/VMM/CPUM.cpp

    r4189 r4425  
    11881188            pHlp->pfnPrintf(pHlp, "VMX - Virtual Machine Technology       = %d (%d)\n",  EcxGuest.u1VMX,        EcxHost.u1VMX);
    11891189            pHlp->pfnPrintf(pHlp, "Reserved                               = %d (%d)\n",  EcxGuest.u1Reserved2,  EcxHost.u1Reserved2);
    1190             pHlp->pfnPrintf(pHlp, "Enh. SpeedStep Tech                    = %d (%d)\n",  EcxGuest.u1EST,        EcxHost.u1EST);
     1190            pHlp->pfnPrintf(pHlp, "Enhanced SpeedStep Technology          = %d (%d)\n",  EcxGuest.u1EST,        EcxHost.u1EST);
    11911191            pHlp->pfnPrintf(pHlp, "Terminal Monitor 2                     = %d (%d)\n",  EcxGuest.u1TM2,        EcxHost.u1TM2);
    1192             pHlp->pfnPrintf(pHlp, "Reserved                               = %d (%d)\n",  EcxGuest.u1Reserved3,  EcxHost.u1Reserved3);
     1192            pHlp->pfnPrintf(pHlp, "Supports Supplemental SSE3 or not      = %d (%d)\n",  EcxGuest.u1SSSE3,      EcxHost.u1SSSE3);
    11931193            pHlp->pfnPrintf(pHlp, "L1 Context ID                          = %d (%d)\n",  EcxGuest.u1CNTXID,     EcxHost.u1CNTXID);
    11941194            pHlp->pfnPrintf(pHlp, "Reserved                               = %#x (%#x)\n",EcxGuest.u2Reserved4,  EcxHost.u2Reserved4);
    1195             pHlp->pfnPrintf(pHlp, "L1 Context ID                          = %d (%d)\n",  EcxGuest.u1CNTXID,     EcxHost.u1CNTXID);
    1196             pHlp->pfnPrintf(pHlp, "Reserved                               = %#x (%#x)\n",EcxGuest.u18Reserved5, EcxHost.u18Reserved5);
     1195            pHlp->pfnPrintf(pHlp, "CMPXCHG16B                             = %d (%d)\n",  EcxGuest.u1CX16,       EcxHost.u1CX16);
     1196            pHlp->pfnPrintf(pHlp, "xTPR Update Control                    = %d (%d)\n",  EcxGuest.u1TPRUpdate,  EcxHost.u1TPRUpdate);
     1197            pHlp->pfnPrintf(pHlp, "Reserved                               = %#x (%#x)\n",EcxGuest.u17Reserved5, EcxHost.u17Reserved5);
    11971198        }
    11981199    }
     
    12811282            if (uEDX & BIT(24))  pHlp->pfnPrintf(pHlp, " FXSR");
    12821283            if (uEDX & BIT(25))  pHlp->pfnPrintf(pHlp, " FastFXSR");
    1283             if (uEDX & BIT(26))  pHlp->pfnPrintf(pHlp, " 26");
     1284            if (uEDX & BIT(26))  pHlp->pfnPrintf(pHlp, " Page1GB");
    12841285            if (uEDX & BIT(27))  pHlp->pfnPrintf(pHlp, " RDTSCP");
    1285             if (uEDX & BIT(28))  pHlp->pfnPrintf(pHlp, " 29");
     1286            if (uEDX & BIT(28))  pHlp->pfnPrintf(pHlp, " 28");
    12861287            if (uEDX & BIT(29))  pHlp->pfnPrintf(pHlp, " LongMode");
    12871288            if (uEDX & BIT(30))  pHlp->pfnPrintf(pHlp, " Ext3DNow");
     
    12931294            if (uECX & BIT(0))   pHlp->pfnPrintf(pHlp, " LAHF/SAHF");
    12941295            if (uECX & BIT(1))   pHlp->pfnPrintf(pHlp, " CMPL");
    1295             if (uECX & BIT(2))   pHlp->pfnPrintf(pHlp, " 2");
    1296             if (uECX & BIT(3))   pHlp->pfnPrintf(pHlp, " SVM");
     1296            if (uECX & BIT(2))   pHlp->pfnPrintf(pHlp, " SVM");
     1297            if (uECX & BIT(3))   pHlp->pfnPrintf(pHlp, " ExtAPIC");
    12971298            if (uECX & BIT(4))   pHlp->pfnPrintf(pHlp, " CR8L");
     1299            if (uECX & BIT(5))   pHlp->pfnPrintf(pHlp, " ABM");
     1300            if (uECX & BIT(6))   pHlp->pfnPrintf(pHlp, " SSE4A");
     1301            if (uECX & BIT(7))   pHlp->pfnPrintf(pHlp, " MISALNSSE");
     1302            if (uECX & BIT(8))   pHlp->pfnPrintf(pHlp, " 3DNOWPRF");
     1303            if (uECX & BIT(9))   pHlp->pfnPrintf(pHlp, " OSVW");
     1304            if (uECX & BIT(12))  pHlp->pfnPrintf(pHlp, " SKINIT");
     1305            if (uECX & BIT(13))  pHlp->pfnPrintf(pHlp, " WDT");
    12981306            for (unsigned iBit = 5; iBit < 32; iBit++)
    12991307                if (uECX & BIT(iBit))
     
    13331341            pHlp->pfnPrintf(pHlp, "MMX - Intel MMX Technology             = %d (%d)\n",  !!(uEdxGst & BIT(23)),  !!(uEdxHst & BIT(23)));
    13341342            pHlp->pfnPrintf(pHlp, "FXSR - FXSAVE and FXRSTOR Instructions = %d (%d)\n",  !!(uEdxGst & BIT(24)),  !!(uEdxHst & BIT(24)));
    1335             pHlp->pfnPrintf(pHlp, "?? - AMD fast FXSAVE and FXRSTOR Instr.= %d (%d)\n",  !!(uEdxGst & BIT(25)),  !!(uEdxHst & BIT(25)));
     1343            pHlp->pfnPrintf(pHlp, "25 - AMD fast FXSAVE and FXRSTOR Instr.= %d (%d)\n",  !!(uEdxGst & BIT(25)),  !!(uEdxHst & BIT(25)));
    13361344            pHlp->pfnPrintf(pHlp, "26 - Reserved                          = %d (%d)\n",  !!(uEdxGst & BIT(26)),  !!(uEdxHst & BIT(26)));
    13371345            pHlp->pfnPrintf(pHlp, "27 - Reserved                          = %d (%d)\n",  !!(uEdxGst & BIT(27)),  !!(uEdxHst & BIT(27)));
    13381346            pHlp->pfnPrintf(pHlp, "28 - Reserved                          = %d (%d)\n",  !!(uEdxGst & BIT(28)),  !!(uEdxHst & BIT(28)));
    1339             pHlp->pfnPrintf(pHlp, "?? - AMD Long Mode                     = %d (%d)\n",  !!(uEdxGst & BIT(29)),  !!(uEdxHst & BIT(29)));
    1340             pHlp->pfnPrintf(pHlp, "?? - AMD Extensions to 3DNow           = %d (%d)\n",  !!(uEdxGst & BIT(30)),  !!(uEdxHst & BIT(30)));
    1341             pHlp->pfnPrintf(pHlp, "?? - AMD 3DNow                         = %d (%d)\n",  !!(uEdxGst & BIT(31)),  !!(uEdxHst & BIT(31)));
     1347            pHlp->pfnPrintf(pHlp, "29 - AMD Long Mode                     = %d (%d)\n",  !!(uEdxGst & BIT(29)),  !!(uEdxHst & BIT(29)));
     1348            pHlp->pfnPrintf(pHlp, "30 - AMD Extensions to 3DNow           = %d (%d)\n",  !!(uEdxGst & BIT(30)),  !!(uEdxHst & BIT(30)));
     1349            pHlp->pfnPrintf(pHlp, "31 - AMD 3DNow                         = %d (%d)\n",  !!(uEdxGst & BIT(31)),  !!(uEdxHst & BIT(31)));
    13421350
    13431351            uint32_t uEcxGst = Guest.ecx;
     
    13461354            pHlp->pfnPrintf(pHlp, "CmpLegacy - Core MP legacy mode (depr) = %d (%d)\n",  !!(uEcxGst & BIT( 1)),  !!(uEcxHst & BIT( 1)));
    13471355            pHlp->pfnPrintf(pHlp, "SVM - AMD VM Extensions                = %d (%d)\n",  !!(uEcxGst & BIT( 2)),  !!(uEcxHst & BIT( 2)));
    1348             pHlp->pfnPrintf(pHlp, "3  - Reserved                          = %d (%d)\n",  !!(uEcxGst & BIT( 3)),  !!(uEcxHst & BIT( 3)));
     1356            pHlp->pfnPrintf(pHlp, "APIC registers starting at 0x400       = %d (%d)\n",  !!(uEcxGst & BIT( 3)),  !!(uEcxHst & BIT( 3)));
    13491357            pHlp->pfnPrintf(pHlp, "AltMovCR8 - LOCK MOV CR0 means MOV CR8 = %d (%d)\n",  !!(uEcxGst & BIT( 4)),  !!(uEcxHst & BIT( 4)));
    1350             pHlp->pfnPrintf(pHlp, "31:5 - Reserved                        = %#x (%#x)\n",   uEcxGst >> 5,           uEcxHst >> 5);
     1358            pHlp->pfnPrintf(pHlp, "Advanced bit manipulation              = %d (%d)\n",  !!(uEcxGst & BIT( 5)),  !!(uEcxHst & BIT( 5)));
     1359            pHlp->pfnPrintf(pHlp, "SSE4A instruction support              = %d (%d)\n",  !!(uEcxGst & BIT( 6)),  !!(uEcxHst & BIT( 6)));
     1360            pHlp->pfnPrintf(pHlp, "Misaligned SSE mode                    = %d (%d)\n",  !!(uEcxGst & BIT( 7)),  !!(uEcxHst & BIT( 7)));
     1361            pHlp->pfnPrintf(pHlp, "PREFETCH and PREFETCHW instruction     = %d (%d)\n",  !!(uEcxGst & BIT( 8)),  !!(uEcxHst & BIT( 8)));
     1362            pHlp->pfnPrintf(pHlp, "OS visible workaround                  = %d (%d)\n",  !!(uEcxGst & BIT( 9)),  !!(uEcxHst & BIT( 9)));
     1363            pHlp->pfnPrintf(pHlp, "11:10 - Reserved                       = %#x (%#x)\n",  (uEcxGst >> 10) & 3,    (uEcxHst >> 10) & 3);
     1364            pHlp->pfnPrintf(pHlp, "SKINIT, STGI, and DEV support          = %d (%d)\n",  !!(uEcxGst & BIT(12)),  !!(uEcxHst & BIT(12)));
     1365            pHlp->pfnPrintf(pHlp, "Watchdog timer support.                = %d (%d)\n",  !!(uEcxGst & BIT(13)),  !!(uEcxHst & BIT(13)));
     1366            pHlp->pfnPrintf(pHlp, "31:14 - Reserved                       = %#x (%#x)\n",   uEcxGst >> 14,          uEcxHst >> 14);
    13511367        }
    13521368    }
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