diff options
author | Juergen Keil <jkeil@users.sourceforge.net> | 2001-09-03 19:00:28 +0000 |
---|---|---|
committer | Juergen Keil <jkeil@users.sourceforge.net> | 2001-09-03 19:00:28 +0000 |
commit | d42a2b443890118549b17857a03b34b5afe7bfe1 (patch) | |
tree | 0c4ea3e7526671835b6f77c5739127d10d88fcb4 | |
parent | 11506cebde8f9da40586648e9dc0ae452576f907 (diff) | |
download | xine-lib-d42a2b443890118549b17857a03b34b5afe7bfe1.tar.gz xine-lib-d42a2b443890118549b17857a03b34b5afe7bfe1.tar.bz2 |
Detect x86 SSE extension (for libavcodec/ffmpeg)
CVS patchset: 559
CVS date: 2001/09/03 19:00:28
-rw-r--r-- | src/xine-engine/cpu_accel.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xine-engine/cpu_accel.c b/src/xine-engine/cpu_accel.c index d2254084e..8c28d950a 100644 --- a/src/xine-engine/cpu_accel.c +++ b/src/xine-engine/cpu_accel.c @@ -70,10 +70,13 @@ static uint32_t x86_accel (void) cpuid (0x00000001, eax, ebx, ecx, edx); if (! (edx & 0x00800000)) /* no MMX */ return 0; - caps = MM_ACCEL_X86_MMX; + if (edx & 0x02000000) /* SSE - identical to AMD MMX extensions */ - caps = MM_ACCEL_X86_MMX | MM_ACCEL_X86_MMXEXT; + caps |= MM_ACCEL_X86_SSE | MM_ACCEL_X86_MMXEXT; + + if (edx & 0x04000000) /* SSE2 */ + caps |= MM_ACCEL_X86_SSE2; cpuid (0x80000000, eax, ebx, ecx, edx); if (eax < 0x80000001) /* no extended capabilities */ @@ -81,9 +84,12 @@ static uint32_t x86_accel (void) cpuid (0x80000001, eax, ebx, ecx, edx); - if (edx & 0x80000000) + if (edx & 0x80000000) /* 3DNOW */ caps |= MM_ACCEL_X86_3DNOW; + if (edx & 0x40000000) /* 3DNOWEXT */ + /*caps |= MM_ACCEL_X86_???*/ ; + if (AMD && (edx & 0x00400000)) /* AMD MMX extensions */ caps |= MM_ACCEL_X86_MMXEXT; |