On Sat, 14 Apr 2018, Diego Biurrun wrote:

On Sat, Apr 14, 2018 at 01:38:30PM +0300, Martin Storsjö wrote:
Make the actual implementation static inline, but add a non-static
non-inline frontend for it.

This fixes building with clang in msvc mode, which does support
gcc style inline assembly.
--- a/libavcodec/x86/xvididct_sse2.c
+++ b/libavcodec/x86/xvididct_sse2.c
@@ -342,7 +342,7 @@ DECLARE_ASM_CONST(16, int32_t, walkenIdctRounders)[] = {

-inline void ff_xvid_idct_sse2(short *block)
+static inline void xvid_idct_sse2(short *block)
     __asm__ volatile (
         "movq     "MANGLE (m127) ", %%mm0                              \n\t"
@@ -390,15 +390,20 @@ inline void ff_xvid_idct_sse2(short *block)

+void ff_xvid_idct_sse2(short *block)
+    xvid_idct_sse2(block);

Why not simply drop the inline and be done with it? I notice that the MMX
version of this does not have the inline keyword.

That's probably just as good.

// Martin
libav-devel mailing list

Reply via email to