Mercurial > libavcodec.hg
changeset 6159:eb2e3c3b7f78 libavcodec
Add mfspr-based AltiVec detection code.
Currently not enabled in FFmpeg, because it crashes if the OS does not
emulate mfspr.
author | reimar |
---|---|
date | Sat, 19 Jan 2008 19:27:39 +0000 |
parents | 2f43560f5dba |
children | 404208d18ff9 |
files | ppc/check_altivec.c |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ppc/check_altivec.c Sat Jan 19 11:04:02 2008 +0000 +++ b/ppc/check_altivec.c Sat Jan 19 19:27:39 2008 +0000 @@ -54,6 +54,18 @@ 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).