[x265] [PATCH] asm: assembly code for pixel_sad_16x32
dnyaneshwar at multicorewareinc.com
dnyaneshwar at multicorewareinc.com
Tue Oct 29 06:58:26 CET 2013
# HG changeset patch
# User Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
# Date 1383026222 -19800
# Tue Oct 29 11:27:02 2013 +0530
# Node ID 4601159b4a77737e138ea6957a017bcb7bfeccb2
# Parent 0666d56aaa4259590dffdd5aa3bc7859c4763931
asm: assembly code for pixel_sad_16x32
diff -r 0666d56aaa42 -r 4601159b4a77 source/common/x86/asm-primitives.cpp
--- a/source/common/x86/asm-primitives.cpp Mon Oct 28 16:13:05 2013 +0530
+++ b/source/common/x86/asm-primitives.cpp Tue Oct 29 11:27:02 2013 +0530
@@ -235,6 +235,8 @@
//p.pixelavg_pp[LUMA_4x4] = x265_pixel_avg_4x4_mmx2;
//PIXEL_AVE(sse2);
+ p.sad[LUMA_16x32] = x265_pixel_sad_16x32_sse2;
+
ASSGN_SSE(sse2);
INIT2(sad, _sse2);
INIT2(sad_x3, _sse2);
diff -r 0666d56aaa42 -r 4601159b4a77 source/common/x86/sad-a.asm
--- a/source/common/x86/sad-a.asm Mon Oct 28 16:13:05 2013 +0530
+++ b/source/common/x86/sad-a.asm Tue Oct 29 11:27:02 2013 +0530
@@ -119,6 +119,25 @@
RET
%endmacro
+%macro PROCESS_SAD_16x4 0
+ movu m1, [r2]
+ movu m2, [r2 + r3]
+ psadbw m1, [r0]
+ psadbw m2, [r0 + r1]
+ paddd m1, m2
+ paddd m0, m1
+ lea r2, [r2 + 2 * r3]
+ lea r0, [r0 + 2 * r1]
+ movu m1, [r2]
+ movu m2, [r2 + r3]
+ psadbw m1, [r0]
+ psadbw m2, [r0 + r1]
+ paddd m1, m2
+ paddd m0, m1
+ lea r2, [r2 + 2 * r3]
+ lea r0, [r0 + 2 * r1]
+%endmacro
+
%macro SAD_W16 0
;-----------------------------------------------------------------------------
; int pixel_sad_16x16( uint8_t *, intptr_t, uint8_t *, intptr_t )
@@ -223,6 +242,41 @@
paddw m0, m1
paddw m0, m3
SAD_END_SSE2
+
+;-----------------------------------------------------------------------------
+; int pixel_sad_16x32( uint8_t *, intptr_t, uint8_t *, intptr_t )
+;-----------------------------------------------------------------------------
+cglobal pixel_sad_16x32, 4,4,3
+ pxor m0, m0
+
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+ PROCESS_SAD_16x4
+
+ movu m1, [r2]
+ movu m2, [r2 + r3]
+ psadbw m1, [r0]
+ psadbw m2, [r0 + r1]
+ paddd m1, m2
+ paddd m0, m1
+ lea r2, [r2 + 2 * r3]
+ lea r0, [r0 + 2 * r1]
+ movu m1, [r2]
+ movu m2, [r2 + r3]
+ psadbw m1, [r0]
+ psadbw m2, [r0 + r1]
+ paddd m1, m2
+ paddd m0, m1
+
+ movhlps m1, m0
+ paddd m0, m1
+ movd eax, m0
+ RET
+
%endmacro
INIT_XMM sse2
More information about the x265-devel
mailing list