[FFmpeg-cvslog] r11569 - trunk/libavcodec/ppc/check_altivec.c
reimar
subversion
Sat Jan 19 20:27:40 CET 2008
Author: reimar
Date: Sat Jan 19 20:27:39 2008
New Revision: 11569
Log:
Add mfspr-based AltiVec detection code.
Currently not enabled in FFmpeg, because it crashes if the OS does not
emulate mfspr.
Modified:
trunk/libavcodec/ppc/check_altivec.c
Modified: trunk/libavcodec/ppc/check_altivec.c
==============================================================================
--- trunk/libavcodec/ppc/check_altivec.c (original)
+++ trunk/libavcodec/ppc/check_altivec.c Sat Jan 19 20:27:39 2008
@@ -54,6 +54,18 @@ int has_altivec(void)
if (err == 0) return (has_vu != 0);
return 0;
+#elif defined(RUNTIME_CPUDETECT)
+ int proc_ver;
+ // support of mfspr PVR emulation added in Linux 2.6.17
+ asm volatile("mfspr %0, 287" : "=r" (proc_ver));
+ proc_ver >>= 16;
+ if (proc_ver & 0x8000 ||
+ proc_ver == 0x000c ||
+ proc_ver == 0x0039 || proc_ver == 0x003c ||
+ proc_ver == 0x0044 || proc_ver == 0x0045 ||
+ proc_ver == 0x0070)
+ return 1;
+ return 0;
#else
// since we were compiled for altivec, just assume we have it
// until someone comes up with a proper way (not involving signal hacks).
More information about the ffmpeg-cvslog
mailing list