[vlc-commits] Move CPU capabilities debug to src/misc/cpu.c
Rémi Denis-Courmont
git at videolan.org
Fri Aug 19 23:00:13 CEST 2011
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Aug 19 23:15:08 2011 +0300| [78b320f230b5b36b62f2350d5dd757a5ff25c517] | committer: Rémi Denis-Courmont
Move CPU capabilities debug to src/misc/cpu.c
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=78b320f230b5b36b62f2350d5dd757a5ff25c517
---
src/libvlc.c | 40 +---------------------------------------
src/libvlc.h | 2 ++
src/misc/cpu.c | 38 ++++++++++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 39 deletions(-)
diff --git a/src/libvlc.c b/src/libvlc.c
index bcdf104..0c931c1 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -666,45 +666,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
if( priv->b_color )
priv->b_color = var_InheritBool( p_libvlc, "color" );
- char p_capabilities[200];
-#define PRINT_CAPABILITY( capability, string ) \
- if( vlc_CPU() & capability ) \
- { \
- strncat( p_capabilities, string " ", \
- sizeof(p_capabilities) - strlen(p_capabilities) ); \
- p_capabilities[sizeof(p_capabilities) - 1] = '\0'; \
- }
- p_capabilities[0] = '\0';
-
-#if defined( __i386__ ) || defined( __x86_64__ )
- PRINT_CAPABILITY( CPU_CAPABILITY_MMX, "MMX" );
- PRINT_CAPABILITY( CPU_CAPABILITY_3DNOW, "3DNow!" );
- PRINT_CAPABILITY( CPU_CAPABILITY_MMXEXT, "MMXEXT" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE, "SSE" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE2, "SSE2" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE3, "SSE3" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSSE3, "SSSE3" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_1, "SSE4.1" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_2, "SSE4.2" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE4A, "SSE4A" );
-
-#elif defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ )
- PRINT_CAPABILITY( CPU_CAPABILITY_ALTIVEC, "AltiVec" );
-
-#elif defined( __arm__ )
- PRINT_CAPABILITY( CPU_CAPABILITY_NEON, "NEONv1" );
-
-#endif
-
-#if HAVE_FPU
- strncat( p_capabilities, "FPU ",
- sizeof(p_capabilities) - strlen( p_capabilities) );
- p_capabilities[sizeof(p_capabilities) - 1] = '\0';
-#endif
-
- if (p_capabilities[0])
- msg_Dbg( p_libvlc, "CPU has capabilities %s", p_capabilities );
-
+ vlc_CPU_dump( VLC_OBJECT(p_libvlc) );
/*
* Choose the best memcpy module
*/
diff --git a/src/libvlc.h b/src/libvlc.h
index 2dbccf8..a4ef280 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -41,6 +41,8 @@ void system_Init ( void );
void system_Configure ( libvlc_int_t *, int, const char *const [] );
void system_End ( void );
+void vlc_CPU_dump(vlc_object_t *);
+
/*
* Threads subsystem
*/
diff --git a/src/misc/cpu.c b/src/misc/cpu.c
index 20520d2..7e4b073 100644
--- a/src/misc/cpu.c
+++ b/src/misc/cpu.c
@@ -336,6 +336,44 @@ unsigned vlc_CPU (void)
return cpu_flags;
}
+void vlc_CPU_dump (vlc_object_t *obj)
+{
+ const unsigned flags = vlc_CPU();
+ char buf[200], *p = buf;
+
+#define PRINT_CAPABILITY( capability, string ) \
+ if (flags & (capability)) \
+ p += sprintf (p, "%s ", (string) )
+
+#if defined (__i386__) || defined (__x86_64__)
+ PRINT_CAPABILITY(CPU_CAPABILITY_MMX, "MMX");
+ PRINT_CAPABILITY(CPU_CAPABILITY_3DNOW, "3DNow!");
+ PRINT_CAPABILITY(CPU_CAPABILITY_MMXEXT, "MMXEXT");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE, "SSE");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE2, "SSE2");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE3, "SSE3");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSSE3, "SSSE3");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_1, "SSE4.1");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_2, "SSE4.2");
+ PRINT_CAPABILITY(CPU_CAPABILITY_SSE4A, "SSE4A");
+
+#elif defined (__powerpc__) || defined (__ppc__) || defined (__ppc64__)
+ PRINT_CAPABILITY(CPU_CAPABILITY_ALTIVEC, "AltiVec");
+
+#elif defined (__arm__)
+ PRINT_CAPABILITY(CPU_CAPABILITY_NEON, "NEONv1");
+
+#endif
+
+#if HAVE_FPU
+ p += sprintf (p, "FPU ");
+#endif
+
+ if (p > buf)
+ msg_Dbg (obj, "CPU has capabilities %s", buf);
+}
+
+
static vlc_memcpy_t pf_vlc_memcpy = memcpy;
void vlc_fastmem_register (vlc_memcpy_t cpy)
More information about the vlc-commits
mailing list