| ... | ... |
@@ -40,8 +40,8 @@ |
| 40 | 40 |
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) |
| 41 | 41 |
|
| 42 | 42 |
#define LIBAVUTIL_VERSION_MAJOR 51 |
| 43 |
-#define LIBAVUTIL_VERSION_MINOR 10 |
|
| 44 |
-#define LIBAVUTIL_VERSION_MICRO 2 |
|
| 43 |
+#define LIBAVUTIL_VERSION_MINOR 11 |
|
| 44 |
+#define LIBAVUTIL_VERSION_MICRO 0 |
|
| 45 | 45 |
|
| 46 | 46 |
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ |
| 47 | 47 |
LIBAVUTIL_VERSION_MINOR, \ |
| ... | ... |
@@ -60,6 +60,8 @@ static const struct {
|
| 60 | 60 |
{ AV_CPU_FLAG_SSE4, "sse4.1" },
|
| 61 | 61 |
{ AV_CPU_FLAG_SSE42, "sse4.2" },
|
| 62 | 62 |
{ AV_CPU_FLAG_AVX, "avx" },
|
| 63 |
+ { AV_CPU_FLAG_XOP, "xop" },
|
|
| 64 |
+ { AV_CPU_FLAG_FMA4, "fma4" },
|
|
| 63 | 65 |
{ AV_CPU_FLAG_3DNOW, "3dnow" },
|
| 64 | 66 |
{ AV_CPU_FLAG_3DNOWEXT, "3dnowext" },
|
| 65 | 67 |
#endif |
| ... | ... |
@@ -38,6 +38,8 @@ |
| 38 | 38 |
#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions |
| 39 | 39 |
#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions |
| 40 | 40 |
#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used |
| 41 |
+#define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions |
|
| 42 |
+#define AV_CPU_FLAG_FMA4 0x0800 ///< Bulldozer FMA4 functions |
|
| 41 | 43 |
#define AV_CPU_FLAG_IWMMXT 0x0100 ///< XScale IWMMXT |
| 42 | 44 |
#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard |
| 43 | 45 |
|
| ... | ... |
@@ -133,6 +133,15 @@ int ff_get_cpu_flags_x86(void) |
| 133 | 133 |
rval & AV_CPU_FLAG_SSE2 && !(ecx & 0x00000040)) {
|
| 134 | 134 |
rval |= AV_CPU_FLAG_SSE2SLOW; |
| 135 | 135 |
} |
| 136 |
+ |
|
| 137 |
+ /* XOP and FMA4 use the AVX instruction coding scheme, so they can't be |
|
| 138 |
+ * used unless the OS has AVX support. */ |
|
| 139 |
+ if (rval & AV_CPU_FLAG_AVX) {
|
|
| 140 |
+ if (ecx & 0x00000800) |
|
| 141 |
+ rval |= AV_CPU_FLAG_XOP; |
|
| 142 |
+ if (ecx & 0x00010000) |
|
| 143 |
+ rval |= AV_CPU_FLAG_FMA4; |
|
| 144 |
+ } |
|
| 136 | 145 |
} |
| 137 | 146 |
|
| 138 | 147 |
if (!strncmp(vendor.c, "GenuineIntel", 12)) {
|