[x264-devel] commit: sfence after nontemporal stores (Loren Merritt )

git version control git at videolan.org
Thu Apr 10 09:32:50 CEST 2008


x264 | branch: master | Loren Merritt <pengvado at akuvian.org> | Fri Apr  4 01:07:40 2008 -0600| [9f0db01e173d7e98bbb711bed871b6320392f62b]

sfence after nontemporal stores

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=9f0db01e173d7e98bbb711bed871b6320392f62b
---

 common/x86/mc-a2.asm |    5 +++++
 common/x86/mc-c.c    |    2 ++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/common/x86/mc-a2.asm b/common/x86/mc-a2.asm
index cb853a0..3b04b70 100644
--- a/common/x86/mc-a2.asm
+++ b/common/x86/mc-a2.asm
@@ -314,6 +314,10 @@ HPEL_C sse2
 HPEL_C ssse3
 %endif
 
+cglobal x264_sfence
+    sfence
+    ret
+
 
 
 ;-----------------------------------------------------------------------------
@@ -381,6 +385,7 @@ cglobal x264_plane_copy_mmxext, 6,7
     add    r0, r1
     dec    r5d
     jg     .loopy
+    sfence
     emms
     RET
 
diff --git a/common/x86/mc-c.c b/common/x86/mc-c.c
index 5f99937..7401555 100644
--- a/common/x86/mc-c.c
+++ b/common/x86/mc-c.c
@@ -167,6 +167,7 @@ GET_REF(sse2)
 void x264_hpel_filter_v_##cpuv( uint8_t *dst, uint8_t *src, int16_t *buf, int stride, int width);\
 void x264_hpel_filter_c_##cpuc( uint8_t *dst, int16_t *buf, int width );\
 void x264_hpel_filter_h_##cpuh( uint8_t *dst, uint8_t *src, int width );\
+void x264_sfence( void );\
 void x264_hpel_filter_##cpu( uint8_t *dsth, uint8_t *dstv, uint8_t *dstc, uint8_t *src,\
                              int stride, int width, int height )\
 {\
@@ -187,6 +188,7 @@ void x264_hpel_filter_##cpu( uint8_t *dsth, uint8_t *dstv, uint8_t *dstc, uint8_
         dstc += stride;\
         src  += stride;\
     }\
+    x264_sfence();\
     x264_free(buf);\
 }
 



More information about the x264-devel mailing list