| 79 | } |
| 80 | |
| 81 | void av_force_cpu_flags(int arg){ |
| 82 | if (ARCH_X86 && |
| 83 | (arg & ( AV_CPU_FLAG_3DNOW | |
| 84 | AV_CPU_FLAG_3DNOWEXT | |
| 85 | AV_CPU_FLAG_MMXEXT | |
| 86 | AV_CPU_FLAG_SSE | |
| 87 | AV_CPU_FLAG_SSE2 | |
| 88 | AV_CPU_FLAG_SSE2SLOW | |
| 89 | AV_CPU_FLAG_SSE3 | |
| 90 | AV_CPU_FLAG_SSE3SLOW | |
| 91 | AV_CPU_FLAG_SSSE3 | |
| 92 | AV_CPU_FLAG_SSE4 | |
| 93 | AV_CPU_FLAG_SSE42 | |
| 94 | AV_CPU_FLAG_AVX | |
| 95 | AV_CPU_FLAG_AVXSLOW | |
| 96 | AV_CPU_FLAG_XOP | |
| 97 | AV_CPU_FLAG_FMA3 | |
| 98 | AV_CPU_FLAG_FMA4 | |
| 99 | AV_CPU_FLAG_AVX2 | |
| 100 | AV_CPU_FLAG_AVX512 )) |
| 101 | && !(arg & AV_CPU_FLAG_MMX)) { |
| 102 | av_log(NULL, AV_LOG_WARNING, "MMX implied by specified flags\n"); |
| 103 | arg |= AV_CPU_FLAG_MMX; |
| 104 | } |
| 105 | |
| 106 | atomic_store_explicit(&cpu_flags, arg, memory_order_relaxed); |
| 107 | } |
| 108 | |
| 109 | int av_get_cpu_flags(void) |
| 110 | { |