Browse Source

Add mfspr-based AltiVec detection code.

Currently not enabled in FFmpeg, because it crashes if the OS does not
emulate mfspr.

Originally committed as revision 11569 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Reimar Döffinger 18 years ago
parent
commit
b8659d94b7
1 changed files with 12 additions and 0 deletions
  1. +12
    -0
      libavcodec/ppc/check_altivec.c

+ 12
- 0
libavcodec/ppc/check_altivec.c View File

@@ -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).


Loading…
Cancel
Save