[vlc-devel] [PATCH 11/19] deinterlace: use sfence instead of emms for SSE2
Lyndon Brown
jnqnfe at gmail.com
Thu Sep 24 21:39:35 CEST 2020
From: Lyndon Brown <jnqnfe at gmail.com>
Date: Sat, 26 Jan 2019 00:06:48 +0000
Subject: deinterlace: use sfence instead of emms for SSE2
diff --git a/modules/video_filter/deinterlace/deinterlace.c b/modules/video_filter/deinterlace/deinterlace.c
index b124e2811b..60325dd26f 100644
--- a/modules/video_filter/deinterlace/deinterlace.c
+++ b/modules/video_filter/deinterlace/deinterlace.c
@@ -544,7 +544,7 @@ notsupp:
if( vlc_CPU_SSE2() )
{
p_sys->pf_merge = pixel_size == 1 ? Merge8BitSSE2 : Merge16BitSSE2;
- p_sys->pf_end_merge = EndMMX;
+ p_sys->pf_end_merge = EndSSE;
}
else
#endif
diff --git a/modules/video_filter/deinterlace/merge.c b/modules/video_filter/deinterlace/merge.c
index 15c9ab0aea..83ad58129d 100644
--- a/modules/video_filter/deinterlace/merge.c
+++ b/modules/video_filter/deinterlace/merge.c
@@ -194,8 +194,8 @@ void MergeAltivec( void *_p_dest, const void *_p_s1,
*****************************************************************************/
#if defined(CAN_COMPILE_SSE)
-void EndMMX( void )
+void EndSSE( void )
{
- __asm__ __volatile__( "emms" :: );
+ __asm__ __volatile__( "sfence" ::: "memory" );
}
#endif
diff --git a/modules/video_filter/deinterlace/merge.h b/modules/video_filter/deinterlace/merge.h
index 1508686d1b..8cecedb066 100644
--- a/modules/video_filter/deinterlace/merge.h
+++ b/modules/video_filter/deinterlace/merge.h
@@ -165,15 +165,15 @@ void merge16_arm_sve(void *, const void *, const void *, size_t);
#if defined(CAN_COMPILE_SSE)
/**
- * MMX merge finalization routine.
+ * SSE merge finalization routine.
*
- * Must be called after an MMX merge is finished.
- * This exits MMX mode (by executing the "emms" instruction).
+ * Should be called after an SSE merge is finished.
+ * This exits SSE mode (by executing the "sfence" instruction).
*
* The EndMerge() macro detects whether this is needed, and calls if it is,
* so just use that.
*/
-void EndMMX ( void );
+void EndSSE ( void );
#endif
#endif
More information about the vlc-devel
mailing list