On Thu, 26 Jul 2012, Diego Biurrun wrote:

On Thu, Jul 26, 2012 at 01:50:17PM -0700, Ronald S. Bultje wrote:

discussion thread. We currently use HAVE_SSSE3 and related macros to
indicate that we want to compile these and that our compiler tools are
good enough to know what to do with it. As a result, we currently use
HAVE_AVX around all avx code (yasm only - we don't have any avx inline
asm), HAVE_SSSE3 around some yasm and all inline asm code that uses
ssse3 instructions, and sometimes HAVE_SSE/2 around inline asm using
xmm regs. There is no HAVE_SSE4. HAVE_MMX2 is almost never used but
does exist.

Do we need HAVE_SSE4?  It should be easy enough to add.

HAVE_MMX is something entirely different and is used as an
alternative form of ARCH_X86.

No, HAVE_MMX is just that.  True, it's abused in some places where
ARCH_X86 would be better (when invoking init functions), but that
is an issue that needs to be addressed at some point.

In addition to that, we're using inline asm checks to test whether to
enable HAVE_SSSE3 and HAVE_SSE2 (line 2850 of configure).

Can we split these macros in something for yasm vs something for
inline asm? This means e.g. that we can use ssse3 if yasm (but not
inline asm) supports it, if inline asm is lacking, etc.

What is your goal?

The goal is that we want to be able to use avx/ssse3/everything via yasm even if the same ones aren't supported in inline asm.

Currently avx has ssse3 as a dependency, where ssse3 is tested via inline asm while avx is tested via yasm. On MSVC the ssse3 inline asm test obviously fails, leading to HAVE_AVX=0, giving no AVX yasm either.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to