[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