diff options
Diffstat (limited to 'vp8/encoder/x86/ssim_opt.asm')
-rw-r--r-- | vp8/encoder/x86/ssim_opt.asm | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/vp8/encoder/x86/ssim_opt.asm b/vp8/encoder/x86/ssim_opt.asm index c267cdb54..d6cebf33d 100644 --- a/vp8/encoder/x86/ssim_opt.asm +++ b/vp8/encoder/x86/ssim_opt.asm @@ -16,12 +16,12 @@ paddusw xmm14, xmm4 ; sum_r movdqa xmm1, xmm3 pmaddwd xmm1, xmm1 - paddq xmm13, xmm1 ; sum_sq_s + paddd xmm13, xmm1 ; sum_sq_s movdqa xmm2, xmm4 pmaddwd xmm2, xmm2 - paddq xmm12, xmm2 ; sum_sq_r + paddd xmm12, xmm2 ; sum_sq_r pmaddwd xmm3, xmm4 - paddq xmm11, xmm3 ; sum_sxr + paddd xmm11, xmm3 ; sum_sxr %endmacro ; Sum across the register %1 starting with q words @@ -66,6 +66,7 @@ sym(vp8_ssim_parms_16x16_sse3): push rbp mov rbp, rsp SHADOW_ARGS_TO_STACK 9 + SAVE_XMM push rsi push rdi ; end prolog @@ -115,19 +116,20 @@ NextRow: SUM_ACROSS_Q xmm11 mov rdi,arg(4) - movq [rdi], xmm15; + movd [rdi], xmm15; mov rdi,arg(5) - movq [rdi], xmm14; + movd [rdi], xmm14; mov rdi,arg(6) - movq [rdi], xmm13; + movd [rdi], xmm13; mov rdi,arg(7) - movq [rdi], xmm12; + movd [rdi], xmm12; mov rdi,arg(8) - movq [rdi], xmm11; + movd [rdi], xmm11; ; begin epilog pop rdi pop rsi + RESTORE_XMM UNSHADOW_ARGS pop rbp ret @@ -154,6 +156,7 @@ sym(vp8_ssim_parms_8x8_sse3): push rbp mov rbp, rsp SHADOW_ARGS_TO_STACK 9 + SAVE_XMM push rsi push rdi ; end prolog @@ -174,11 +177,8 @@ sym(vp8_ssim_parms_8x8_sse3): NextRow2: ;grab source and reference pixels - movq xmm5, [rsi] - movq xmm6, [rdi] - - movdqa xmm3, xmm5 - movdqa xmm4, xmm6 + movq xmm3, [rsi] + movq xmm4, [rdi] punpcklbw xmm3, xmm0 ; low_s punpcklbw xmm4, xmm0 ; low_r @@ -197,19 +197,20 @@ NextRow2: SUM_ACROSS_Q xmm11 mov rdi,arg(4) - movq [rdi], xmm15; + movd [rdi], xmm15; mov rdi,arg(5) - movq [rdi], xmm14; + movd [rdi], xmm14; mov rdi,arg(6) - movq [rdi], xmm13; + movd [rdi], xmm13; mov rdi,arg(7) - movq [rdi], xmm12; + movd [rdi], xmm12; mov rdi,arg(8) - movq [rdi], xmm11; + movd [rdi], xmm11; ; begin epilog pop rdi pop rsi + RESTORE_XMM UNSHADOW_ARGS pop rbp ret |