From d42a2b443890118549b17857a03b34b5afe7bfe1 Mon Sep 17 00:00:00 2001 From: Juergen Keil Date: Mon, 3 Sep 2001 19:00:28 +0000 Subject: Detect x86 SSE extension (for libavcodec/ffmpeg) CVS patchset: 559 CVS date: 2001/09/03 19:00:28 --- src/xine-engine/cpu_accel.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') 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; -- cgit v1.2.3