Fix the reading of too many input pixels
in VP9_get4x4var_mmx Change-Id: I4b4a8f45f25ebdfad281f169cc87aba5e2d6f227
This commit is contained in:
parent
66ccf5ddcf
commit
6c5433c836
@ -342,8 +342,8 @@ sym(vp9_get4x4var_mmx):
|
|||||||
movsxd rdx, dword ptr arg(3) ;[recon_stride]
|
movsxd rdx, dword ptr arg(3) ;[recon_stride]
|
||||||
|
|
||||||
; Row 1
|
; Row 1
|
||||||
movq mm0, [rax] ; Copy eight bytes to mm0
|
movd mm0, [rax] ; Copy 4 bytes to mm0
|
||||||
movq mm1, [rbx] ; Copy eight bytes to mm1
|
movd mm1, [rbx] ; Copy 4 bytes to mm1
|
||||||
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
||||||
punpcklbw mm1, mm6
|
punpcklbw mm1, mm6
|
||||||
psubsw mm0, mm1 ; A-B (low order) to MM0
|
psubsw mm0, mm1 ; A-B (low order) to MM0
|
||||||
@ -351,12 +351,12 @@ sym(vp9_get4x4var_mmx):
|
|||||||
pmaddwd mm0, mm0 ; square and accumulate
|
pmaddwd mm0, mm0 ; square and accumulate
|
||||||
add rbx,rdx ; Inc pointer into ref data
|
add rbx,rdx ; Inc pointer into ref data
|
||||||
add rax,rcx ; Inc pointer into the new data
|
add rax,rcx ; Inc pointer into the new data
|
||||||
movq mm1, [rbx] ; Copy eight bytes to mm1
|
movd mm1, [rbx] ; Copy 4 bytes to mm1
|
||||||
paddd mm7, mm0 ; accumulate in mm7
|
paddd mm7, mm0 ; accumulate in mm7
|
||||||
|
|
||||||
|
|
||||||
; Row 2
|
; Row 2
|
||||||
movq mm0, [rax] ; Copy eight bytes to mm0
|
movd mm0, [rax] ; Copy 4 bytes to mm0
|
||||||
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
||||||
punpcklbw mm1, mm6
|
punpcklbw mm1, mm6
|
||||||
psubsw mm0, mm1 ; A-B (low order) to MM0
|
psubsw mm0, mm1 ; A-B (low order) to MM0
|
||||||
@ -365,11 +365,11 @@ sym(vp9_get4x4var_mmx):
|
|||||||
pmaddwd mm0, mm0 ; square and accumulate
|
pmaddwd mm0, mm0 ; square and accumulate
|
||||||
add rbx,rdx ; Inc pointer into ref data
|
add rbx,rdx ; Inc pointer into ref data
|
||||||
add rax,rcx ; Inc pointer into the new data
|
add rax,rcx ; Inc pointer into the new data
|
||||||
movq mm1, [rbx] ; Copy eight bytes to mm1
|
movd mm1, [rbx] ; Copy 4 bytes to mm1
|
||||||
paddd mm7, mm0 ; accumulate in mm7
|
paddd mm7, mm0 ; accumulate in mm7
|
||||||
|
|
||||||
; Row 3
|
; Row 3
|
||||||
movq mm0, [rax] ; Copy eight bytes to mm0
|
movd mm0, [rax] ; Copy 4 bytes to mm0
|
||||||
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
||||||
punpcklbw mm1, mm6
|
punpcklbw mm1, mm6
|
||||||
psubsw mm0, mm1 ; A-B (low order) to MM0
|
psubsw mm0, mm1 ; A-B (low order) to MM0
|
||||||
@ -378,11 +378,11 @@ sym(vp9_get4x4var_mmx):
|
|||||||
pmaddwd mm0, mm0 ; square and accumulate
|
pmaddwd mm0, mm0 ; square and accumulate
|
||||||
add rbx,rdx ; Inc pointer into ref data
|
add rbx,rdx ; Inc pointer into ref data
|
||||||
add rax,rcx ; Inc pointer into the new data
|
add rax,rcx ; Inc pointer into the new data
|
||||||
movq mm1, [rbx] ; Copy eight bytes to mm1
|
movd mm1, [rbx] ; Copy 4 bytes to mm1
|
||||||
paddd mm7, mm0 ; accumulate in mm7
|
paddd mm7, mm0 ; accumulate in mm7
|
||||||
|
|
||||||
; Row 4
|
; Row 4
|
||||||
movq mm0, [rax] ; Copy eight bytes to mm0
|
movd mm0, [rax] ; Copy 4 bytes to mm0
|
||||||
|
|
||||||
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
punpcklbw mm0, mm6 ; unpack to higher prrcision
|
||||||
punpcklbw mm1, mm6
|
punpcklbw mm1, mm6
|
||||||
|
Loading…
x
Reference in New Issue
Block a user