# define VLC_CPU_SSE 64
# define VLC_CPU_SSE2 128
# define VLC_CPU_SSE3 256
-# define CPU_CAPABILITY_SSSE3 (1<<9)
+# define VLC_CPU_SSSE3 512
# define CPU_CAPABILITY_SSE4_1 (1<<10)
# define CPU_CAPABILITY_SSE4_2 (1<<11)
# define CPU_CAPABILITY_SSE4A (1<<12)
# define vlc_CPU_SSE3() ((vlc_CPU() & VLC_CPU_SSE3) != 0)
# endif
+# ifdef __SSSE3__
+# define vlc_CPU_SSSE3() (1)
+# else
+# define vlc_CPU_SSSE3() ((vlc_CPU() & VLC_CPU_SSSE3) != 0)
+# endif
+
# elif defined (__ppc__) || defined (__ppc64__) || defined (__powerpc__)
# define HAVE_FPU 1
# define VLC_CPU_ALTIVEC 2
p_context->dsp_mask |= AV_CPU_FLAG_SSE3;
# endif
# ifdef AV_CPU_FLAG_SSSE3
- if( !(i_cpu & CPU_CAPABILITY_SSSE3) )
+ if( !vlc_CPU_SSE3() )
p_context->dsp_mask |= AV_CPU_FLAG_SSSE3;
# endif
# ifdef AV_CPU_FLAG_SSE4
store " %%xmm4, 48(%[dst])\n" \
: : [dst]"r"(dstp), [src]"r"(srcp) : "memory")
+#ifndef __SSSE3__
+# undef vlc_CPU_SSSE3
+# define vlc_CPU_SSSE3() ((cpu & VLC_CPU_SSSE3) != 0)
+#endif
+
/* Execute the instruction op only if SSE2 is supported. */
#ifdef CAN_COMPILE_SSE2
# ifdef __SSE2__
"movhpd %%xmm3, 24(%[dst2])\n"
#ifdef CAN_COMPILE_SSSE3
- if (cpu & CPU_CAPABILITY_SSSE3) {
+ if (vlc_CPU_SSE3())
+ {
for (x = 0; x < (width & ~31); x += 32) {
asm volatile (
"movdqu (%[shuffle]), %%xmm7\n"
p_context->dsp_mask |= AV_CPU_FLAG_SSE3;
# endif
# ifdef AV_CPU_FLAG_SSSE3
- if( !(i_cpu & CPU_CAPABILITY_SSSE3) )
+ if( !vlc_CPU_SSSE3() )
p_context->dsp_mask |= AV_CPU_FLAG_SSSE3;
# endif
# ifdef AV_CPU_FLAG_SSE4
id->ff_enc_c->dsp_mask |= AV_CPU_FLAG_SSE3;
# endif
# ifdef AV_CPU_FLAG_SSSE3
- if( !(i_cpu & CPU_CAPABILITY_SSSE3) )
+ if( !vlc_CPU_SSSE3() )
id->ff_enc_c->dsp_mask |= AV_CPU_FLAG_SSSE3;
# endif
# ifdef AV_CPU_FLAG_SSE4
id->ff_enc_c->dsp_mask |= AV_CPU_FLAG_SSE3;
# endif
# ifdef AV_CPU_FLAG_SSSE3
- if( !(i_cpu & CPU_CAPABILITY_SSSE3) )
+ if( !vlc_CPU_SSSE3() )
id->ff_enc_c->dsp_mask |= AV_CPU_FLAG_SSSE3;
# endif
# ifdef AV_CPU_FLAG_SSE4
int w, int prefs, int mrefs, int parity, int mode);
#if defined(HAVE_YADIF_SSSE3)
- if( vlc_CPU() & CPU_CAPABILITY_SSSE3 )
+ if( vlc_CPU_SSSE3() )
filter = yadif_filter_line_ssse3;
else
#endif
#endif
cfg->blur_line = blur_line_c;
#if HAVE_SSSE3
- if (vlc_CPU() & CPU_CAPABILITY_SSSE3)
+ if (vlc_CPU_SSSE3())
cfg->filter_line = filter_line_ssse3;
else
#endif
i_capabilities |= VLC_CPU_SSE3;
# endif
-# if defined (__SSSE3__)
- i_capabilities |= CPU_CAPABILITY_SSSE3;
-# elif defined (CAN_COMPILE_SSSE3)
+# if defined (CAN_COMPILE_SSSE3)
if ((i_ecx & 0x00000200) && vlc_CPU_check ("SSSE3", SSSE3_test))
- i_capabilities |= CPU_CAPABILITY_SSSE3;
+ i_capabilities |= VLC_CPU_SSSE3;
# endif
# if defined (__SSE4_1__)
if (vlc_CPU_SSE()) p += sprintf (p, "SSE ");;
if (vlc_CPU_SSE2()) p += sprintf (p, "SSE2 ");;
if (vlc_CPU_SSE3()) p += sprintf (p, "SSE2 ");;
- PRINT_CAPABILITY(CPU_CAPABILITY_SSSE3, "SSSE3");
+ if (vlc_CPU_SSSE3()) p += sprintf (p, "SSSE3 ");;
PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_1, "SSE4.1");
PRINT_CAPABILITY(CPU_CAPABILITY_SSE4_2, "SSE4.2");
PRINT_CAPABILITY(CPU_CAPABILITY_SSE4A, "SSE4A");
core_caps |= VLC_CPU_SSE2;
if (!strcmp (cap, "pni"))
core_caps |= VLC_CPU_SSE3;
-# ifndef __SSSE3__
if (!strcmp (cap, "ssse3"))
- core_caps |= CPU_CAPABILITY_SSSE3;
-# endif
+ core_caps |= VLC_CPU_SSSE3;
# ifndef __SSE4_1__
if (!strcmp (cap, "sse4_1"))
core_caps |= CPU_CAPABILITY_SSE4_1;
/* Always enable capabilities that were forced during compilation */
#if defined (__i386__) || defined (__x86_64__)
-# ifdef __SSSE3__
- all_caps |= CPU_CAPABILITY_SSSE3;
-# endif
# ifdef __SSE4_1__
all_caps |= CPU_CAPABILITY_SSE4_1;
# endif