On Mon, Aug 28, 2017 at 12:53:09PM -0300, James Almer wrote: > On 8/28/2017 12:08 PM, wm4 wrote: > > On Mon, 28 Aug 2017 11:52:52 -0300 > > James Almer <jamr...@gmail.com> wrote: > >> --- a/libavutil/cpu.c > >> +++ b/libavutil/cpu.c > >> @@ -184,12 +185,20 @@ int av_cpu_count(void) > >> > >> size_t av_cpu_max_align(void) > >> { > >> - int flags = av_get_cpu_flags(); > >> + int av_unused flags = av_get_cpu_flags(); > >> > >> +#if ARCH_ARM || ARCH_AARCH64 > >> + if (flags & AV_CPU_FLAG_NEON) > >> + return 16; > >> +#elif ARCH_PPC > >> + if (flags & AV_CPU_FLAG_ALTIVEC) > >> + return 16; > >> +#elif ARCH_X86 > >> if (flags & AV_CPU_FLAG_AVX) > >> return 32; > >> - if (flags & (AV_CPU_FLAG_ALTIVEC | AV_CPU_FLAG_SSE | > >> AV_CPU_FLAG_NEON)) > >> + if (flags & AV_CPU_FLAG_SSE) > >> return 16; > >> +#endif > >> > >> return 8; > >> } > > Something like > > size_t av_cpu_max_align(void) > { > if (ARCH_AARCH64) > return ff_get_cpu_max_align_aarch64(); > if (ARCH_ARM) > return ff_get_cpu_max_align_arm(); > if (ARCH_PPC) > return ff_get_cpu_max_align_ppc(); > if (ARCH_X86) > return ff_get_cpu_max_align_x86(); > return 8; > } > > Would be more in line with the rest of the codebase, but seems overkill > to me. I can send such an implementation anyway if that's preferred in > any case.
That would be much better. Your original patch is IMO a step in the wrong direction. Arch-specific code should not litter the C code in the first place and your patch produces an ifdef maze on top of that. Diego _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel