Commit c6fa82c4e90d629e16f8dda990f63cec73103cac

Authored by Avi Kivity
Committed by Anthony Liguori
1 parent b827df58

Make x86 cpuid feature names available in file scope

To be used later.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing 1 changed file with 28 additions and 27 deletions
target-i386/helper.c
... ... @@ -32,39 +32,40 @@
32 32  
33 33 //#define DEBUG_MMU
34 34  
  35 +/* feature flags taken from "Intel Processor Identification and the CPUID
  36 + * Instruction" and AMD's "CPUID Specification". In cases of disagreement
  37 + * about feature names, the Linux name is used. */
  38 +static const char *feature_name[] = {
  39 + "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
  40 + "cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov",
  41 + "pat", "pse36", "pn" /* Intel psn */, "clflush" /* Intel clfsh */, NULL, "ds" /* Intel dts */, "acpi", "mmx",
  42 + "fxsr", "sse", "sse2", "ss", "ht" /* Intel htt */, "tm", "ia64", "pbe",
  43 +};
  44 +static const char *ext_feature_name[] = {
  45 + "pni" /* Intel,AMD sse3 */, NULL, NULL, "monitor", "ds_cpl", "vmx", NULL /* Linux smx */, "est",
  46 + "tm2", "ssse3", "cid", NULL, NULL, "cx16", "xtpr", NULL,
  47 + NULL, NULL, "dca", NULL, NULL, NULL, NULL, "popcnt",
  48 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  49 +};
  50 +static const char *ext2_feature_name[] = {
  51 + "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
  52 + "cx8" /* AMD CMPXCHG8B */, "apic", NULL, "syscall", "mtrr", "pge", "mca", "cmov",
  53 + "pat", "pse36", NULL, NULL /* Linux mp */, "nx" /* Intel xd */, NULL, "mmxext", "mmx",
  54 + "fxsr", "fxsr_opt" /* AMD ffxsr */, "pdpe1gb" /* AMD Page1GB */, "rdtscp", NULL, "lm" /* Intel 64 */, "3dnowext", "3dnow",
  55 +};
  56 +static const char *ext3_feature_name[] = {
  57 + "lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */, "cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse",
  58 + "3dnowprefetch", "osvw", NULL /* Linux ibs */, NULL, "skinit", "wdt", NULL, NULL,
  59 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  60 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  61 +};
  62 +
35 63 static void add_flagname_to_bitmaps(char *flagname, uint32_t *features,
36 64 uint32_t *ext_features,
37 65 uint32_t *ext2_features,
38 66 uint32_t *ext3_features)
39 67 {
40 68 int i;
41   - /* feature flags taken from "Intel Processor Identification and the CPUID
42   - * Instruction" and AMD's "CPUID Specification". In cases of disagreement
43   - * about feature names, the Linux name is used. */
44   - static const char *feature_name[] = {
45   - "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
46   - "cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov",
47   - "pat", "pse36", "pn" /* Intel psn */, "clflush" /* Intel clfsh */, NULL, "ds" /* Intel dts */, "acpi", "mmx",
48   - "fxsr", "sse", "sse2", "ss", "ht" /* Intel htt */, "tm", "ia64", "pbe",
49   - };
50   - static const char *ext_feature_name[] = {
51   - "pni" /* Intel,AMD sse3 */, NULL, NULL, "monitor", "ds_cpl", "vmx", NULL /* Linux smx */, "est",
52   - "tm2", "ssse3", "cid", NULL, NULL, "cx16", "xtpr", NULL,
53   - NULL, NULL, "dca", NULL, NULL, NULL, NULL, "popcnt",
54   - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
55   - };
56   - static const char *ext2_feature_name[] = {
57   - "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
58   - "cx8" /* AMD CMPXCHG8B */, "apic", NULL, "syscall", "mtrr", "pge", "mca", "cmov",
59   - "pat", "pse36", NULL, NULL /* Linux mp */, "nx" /* Intel xd */, NULL, "mmxext", "mmx",
60   - "fxsr", "fxsr_opt" /* AMD ffxsr */, "pdpe1gb" /* AMD Page1GB */, "rdtscp", NULL, "lm" /* Intel 64 */, "3dnowext", "3dnow",
61   - };
62   - static const char *ext3_feature_name[] = {
63   - "lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */, "cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse",
64   - "3dnowprefetch", "osvw", NULL /* Linux ibs */, NULL, "skinit", "wdt", NULL, NULL,
65   - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
66   - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
67   - };
68 69  
69 70 for ( i = 0 ; i < 32 ; i++ )
70 71 if (feature_name[i] && !strcmp (flagname, feature_name[i])) {
... ...