46
46
#include "libavutil/cpu.h"
47
47
#include "libavutil/cpu_internal.h"
48
48
49
+ #ifndef AT_HWCAP
50
+ #define AT_HWCAP 16
51
+ #endif
52
+ #ifndef AT_HWCAP2
53
+ #define AT_HWCAP2 26
54
+ #endif
55
+
56
+ #define HWCAP_PPC_VSX (1 << 7)
57
+ #define HWCAP_PPC_ALTIVEC (1 << 28)
58
+ #define HWCAP2_PPC_ARCH_2_07 (1 << 31)
59
+
49
60
/**
50
61
* This function MAY rely on signal() or fork() in order to make sure AltiVec
51
62
* is present.
@@ -65,20 +76,14 @@ int ff_get_cpu_flags_ppc(void)
65
76
int flags = 0 ;
66
77
67
78
unsigned long hwcap = ff_getauxval (AT_HWCAP );
68
- #ifdef PPC_FEATURE2_ARCH_2_07
69
79
unsigned long hwcap2 = ff_getauxval (AT_HWCAP2 );
70
- #endif
71
80
72
- if (hwcap & PPC_FEATURE_HAS_ALTIVEC )
81
+ if (hwcap & HWCAP_PPC_ALTIVEC )
73
82
flags |= AV_CPU_FLAG_ALTIVEC ;
74
- #ifdef PPC_FEATURE_HAS_VSX
75
- if (hwcap & PPC_FEATURE_HAS_VSX )
83
+ if (hwcap & HWCAP_PPC_VSX )
76
84
flags |= AV_CPU_FLAG_VSX ;
77
- #endif
78
- #ifdef PPC_FEATURE2_ARCH_2_07
79
- if (hwcap2 & PPC_FEATURE2_ARCH_2_07 )
85
+ if (hwcap2 & HWCAP2_PPC_ARCH_2_07 )
80
86
flags |= AV_CPU_FLAG_POWER8 ;
81
- #endif
82
87
83
88
return flags ;
84
89
#elif defined(__APPLE__ ) || defined(__NetBSD__ ) || defined(__OpenBSD__ )
@@ -112,23 +117,17 @@ int ff_get_cpu_flags_ppc(void)
112
117
if (buf [i ] == AT_NULL )
113
118
goto out ;
114
119
if (buf [i ] == AT_HWCAP ) {
115
- if (buf [i + 1 ] & PPC_FEATURE_HAS_ALTIVEC )
120
+ if (buf [i + 1 ] & HWCAP_PPC_ALTIVEC )
116
121
ret = AV_CPU_FLAG_ALTIVEC ;
117
- #ifdef PPC_FEATURE_HAS_VSX
118
- if (buf [i + 1 ] & PPC_FEATURE_HAS_VSX )
122
+ if (buf [i + 1 ] & HWCAP_PPC_VSX )
119
123
ret |= AV_CPU_FLAG_VSX ;
120
- #endif
121
124
if (ret & AV_CPU_FLAG_VSX )
122
125
av_assert0 (ret & AV_CPU_FLAG_ALTIVEC );
123
126
}
124
- #ifdef AT_HWCAP2 /* not introduced until glibc 2.18 */
125
127
else if (buf [i ] == AT_HWCAP2 ) {
126
- #ifdef PPC_FEATURE2_ARCH_2_07
127
- if (buf [i + 1 ] & PPC_FEATURE2_ARCH_2_07 )
128
+ if (buf [i + 1 ] & HWCAP2_PPC_ARCH_2_07 )
128
129
ret |= AV_CPU_FLAG_POWER8 ;
129
- #endif
130
130
}
131
- #endif /* AT_HWCAP2 */
132
131
}
133
132
}
134
133
0 commit comments