| Index: source/libvpx/vp8/encoder/x86/ssim_opt.asm | 
| =================================================================== | 
| --- source/libvpx/vp8/encoder/x86/ssim_opt.asm	(revision 96967) | 
| +++ source/libvpx/vp8/encoder/x86/ssim_opt.asm	(working copy) | 
| @@ -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 @@ | 
| push        rbp | 
| mov         rbp, rsp | 
| SHADOW_ARGS_TO_STACK 9 | 
| +    SAVE_XMM 15 | 
| push        rsi | 
| push        rdi | 
| ; end prolog | 
| @@ -115,19 +116,20 @@ | 
| 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 @@ | 
| push        rbp | 
| mov         rbp, rsp | 
| SHADOW_ARGS_TO_STACK 9 | 
| +    SAVE_XMM 15 | 
| push        rsi | 
| push        rdi | 
| ; end prolog | 
| @@ -174,11 +177,8 @@ | 
| 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 @@ | 
| 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 | 
|  |