mirror of
https://github.com/anrieff/libcpuid
synced 2025-10-03 11:01:30 +00:00
parent
5aedd53624
commit
bf7f57f519
2 changed files with 12 additions and 3 deletions
|
@ -344,9 +344,18 @@ static void load_amd_features(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
|
|||
if (raw->ext_cpuid[0][0] >= 0x80000007)
|
||||
match_features(matchtable_edx87, COUNT_OF(matchtable_edx87), raw->ext_cpuid[7][3], data);
|
||||
if (raw->ext_cpuid[0][0] >= 0x8000001a) {
|
||||
/* We have the extended info about SSE unit size */
|
||||
/* We have the extended info about SSE unit size
|
||||
Extracted from BKDG, about CPUID_Fn8000001A_EAX [Performance Optimization Identifiers] (Core::X86::Cpuid::PerfOptId):
|
||||
- bit 2: FP256
|
||||
- bit 1: MOVU
|
||||
- bit 0: FP128 */
|
||||
data->detection_hints[CPU_HINT_SSE_SIZE_AUTH] = 1;
|
||||
data->sse_size = (raw->ext_cpuid[0x1a][0] & 1) ? 128 : 64;
|
||||
if ((raw->ext_cpuid[0x1a][0] >> 2) & 1)
|
||||
data->sse_size = 256;
|
||||
else if ((raw->ext_cpuid[0x1a][0]) & 1)
|
||||
data->sse_size = 128;
|
||||
else
|
||||
data->sse_size = 64;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue