Revision 2f7a21c4 target-i386/cpuid.c
b/target-i386/cpuid.c | ||
---|---|---|
117 | 117 |
#endif |
118 | 118 |
|
119 | 119 |
if (eax) |
120 |
*eax = vec[0];
|
|
120 |
*eax = vec[0];
|
|
121 | 121 |
if (ebx) |
122 |
*ebx = vec[1];
|
|
122 |
*ebx = vec[1];
|
|
123 | 123 |
if (ecx) |
124 |
*ecx = vec[2];
|
|
124 |
*ecx = vec[2];
|
|
125 | 125 |
if (edx) |
126 |
*edx = vec[3];
|
|
126 |
*edx = vec[3];
|
|
127 | 127 |
#endif |
128 | 128 |
} |
129 | 129 |
|
... | ... | |
617 | 617 |
goto error; |
618 | 618 |
} |
619 | 619 |
if (numvalue < 0x80000000) { |
620 |
numvalue += 0x80000000;
|
|
620 |
numvalue += 0x80000000;
|
|
621 | 621 |
} |
622 | 622 |
x86_cpu_def->xlevel = numvalue; |
623 | 623 |
} else if (!strcmp(featurestr, "vendor")) { |
... | ... | |
1005 | 1005 |
case 4: |
1006 | 1006 |
/* cache info: needed for Core compatibility */ |
1007 | 1007 |
if (env->nr_cores > 1) { |
1008 |
*eax = (env->nr_cores - 1) << 26;
|
|
1008 |
*eax = (env->nr_cores - 1) << 26;
|
|
1009 | 1009 |
} else { |
1010 |
*eax = 0;
|
|
1010 |
*eax = 0;
|
|
1011 | 1011 |
} |
1012 | 1012 |
switch (count) { |
1013 | 1013 |
case 0: /* L1 dcache info */ |
Also available in: Unified diff