From 220daa00e0753fb7c2b7346c5557624df9055f21 Mon Sep 17 00:00:00 2001 From: Jim Bankoski <jimbankoski@google.com> Date: Wed, 16 Jun 2010 12:36:53 -0400 Subject: [PATCH] vp8_block_error_xmm: remove unnecessary instructions Remove a couple instructions from this function which weren't necessary for correct execution. Change-Id: Ib649674f140689f7e5c1530c35686241688a3151 --- vp8/encoder/x86/encodeopt.asm | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/vp8/encoder/x86/encodeopt.asm b/vp8/encoder/x86/encodeopt.asm index 842fbdcce4..b4fe576a0b 100644 --- a/vp8/encoder/x86/encodeopt.asm +++ b/vp8/encoder/x86/encodeopt.asm @@ -11,7 +11,6 @@ %include "vpx_ports/x86_abi_support.asm" - ;int vp8_block_error_xmm(short *coeff_ptr, short *dcoef_ptr) global sym(vp8_block_error_xmm) sym(vp8_block_error_xmm): @@ -20,11 +19,9 @@ sym(vp8_block_error_xmm): SHADOW_ARGS_TO_STACK 2 push rsi push rdi - ; end prolog - + ; end prologue mov rsi, arg(0) ;coeff_ptr - pxor xmm7, xmm7 mov rdi, arg(1) ;dcoef_ptr movdqa xmm3, [rsi] @@ -33,31 +30,25 @@ sym(vp8_block_error_xmm): movdqa xmm5, [rsi+16] movdqa xmm6, [rdi+16] - pxor xmm1, xmm1 ; from movd xmm1, dc; dc=0 + psubw xmm3, xmm4 - movdqa xmm2, xmm7 psubw xmm5, xmm6 - - por xmm1, xmm2 + pmaddwd xmm3, xmm3 pmaddwd xmm5, xmm5 - pcmpeqw xmm1, xmm7 - psubw xmm3, xmm4 + paddd xmm3, xmm5 - pand xmm1, xmm3 - pmaddwd xmm1, xmm1 - - paddd xmm1, xmm5 - movdqa xmm0, xmm1 + pxor xmm7, xmm7 + movdqa xmm0, xmm3 punpckldq xmm0, xmm7 - punpckhdq xmm1, xmm7 + punpckhdq xmm3, xmm7 - paddd xmm0, xmm1 - movdqa xmm1, xmm0 + paddd xmm0, xmm3 + movdqa xmm3, xmm0 psrldq xmm0, 8 - paddd xmm0, xmm1 + paddd xmm0, xmm3 movd rax, xmm0 @@ -68,7 +59,6 @@ sym(vp8_block_error_xmm): pop rbp ret - ;int vp8_block_error_mmx(short *coeff_ptr, short *dcoef_ptr) global sym(vp8_block_error_mmx) sym(vp8_block_error_mmx): -- GitLab