diff --git a/libavutil/ppc/cpu.c b/libavutil/ppc/cpu.c index e20dec11fb..77229630d3 100644 --- a/libavutil/ppc/cpu.c +++ b/libavutil/ppc/cpu.c @@ -97,15 +97,30 @@ out: close(fd); return ret; #elif CONFIG_RUNTIME_CPUDETECT && defined(__linux__) && !ARCH_PPC64 +#define PVR_G4_7400 0x000C +#define PVR_G5_970 0x0039 +#define PVR_G5_970FX 0x003C +#define PVR_G5_970MP 0x0044 +#define PVR_G5_970GX 0x0045 +#define PVR_POWER6 0x003E +#define PVR_POWER7 0x003F +#define PVR_POWER8 0x004B +#define PVR_CELL_PPU 0x0070 + 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) + proc_ver == PVR_G4_7400 || + proc_ver == PVR_G5_970 || + proc_ver == PVR_G5_970FX || + proc_ver == PVR_G5_970MP || + proc_ver == PVR_G5_970GX || + proc_ver == PVR_POWER6 || + proc_ver == PVR_POWER7 || + proc_ver == PVR_POWER8 || + proc_ver == PVR_CELL_PPU) return AV_CPU_FLAG_ALTIVEC; return 0; #else