#include "cpu.h"
#include "config.h"
-#if ARCH_ARM
-# include "arm/cpu.h"
-#elif ARCH_PPC
-# include "ppc/cpu.h"
-#elif ARCH_X86
-# include "x86/cpu.h"
-#else
int av_get_cpu_flags(void)
{
- return 0;
+ static int flags, checked;
+
+ if (checked)
+ return flags;
+
+ if (ARCH_ARM) flags = ff_get_cpu_flags_arm();
+ if (ARCH_PPC) flags = ff_get_cpu_flags_ppc();
+ if (ARCH_X86) flags = ff_get_cpu_flags_x86();
+
+ checked = 1;
+ return flags;
}
-#endif
#ifdef TEST
#undef printf
+#include <stdio.h>
int main(void)
{
int cpu_flags = av_get_cpu_flags();
printf("cpu_flags = 0x%08X\n", cpu_flags);
- printf("cpu_flags = %s%s%s%s%s%s%s%s%s%s%s%s\n",
+ printf("cpu_flags = %s%s%s%s%s%s%s%s%s%s%s%s%s\n",
#if ARCH_ARM
cpu_flags & AV_CPU_FLAG_IWMMXT ? "IWMMXT " : "",
#elif ARCH_PPC
cpu_flags & AV_CPU_FLAG_SSE3 ? "SSE3 " : "",
cpu_flags & AV_CPU_FLAG_SSE3SLOW ? "SSE3(slow) " : "",
cpu_flags & AV_CPU_FLAG_SSSE3 ? "SSSE3 " : "",
+ cpu_flags & AV_CPU_FLAG_ATOM ? "Atom " : "",
cpu_flags & AV_CPU_FLAG_SSE4 ? "SSE4.1 " : "",
cpu_flags & AV_CPU_FLAG_SSE42 ? "SSE4.2 " : "",
+ cpu_flags & AV_CPU_FLAG_AVX ? "AVX " : "",
cpu_flags & AV_CPU_FLAG_3DNOW ? "3DNow " : "",
cpu_flags & AV_CPU_FLAG_3DNOWEXT ? "3DNowExt " : "");
#endif