|
|
@@ -80,17 +80,21 @@ blur_asm:
|
|
|
add col_faltan, radius
|
|
|
add col_faltan, PIXEL_SIZE ; 2r+1 columnas
|
|
|
.loopFila:
|
|
|
- ;faltan <4? me muevo para atras 4-faltantes pix
|
|
|
|
|
|
;levanto 4px
|
|
|
movdqu xmm2, [src] ; Cargo 4 pix de la imagen 1 => xmm0 = |B(P1)|G(P1)|R(P1)|A(P1)|B(P2)|G(P2)|......|
|
|
|
- mov basura, 4
|
|
|
- sub basura, col_faltan
|
|
|
- mov rax, PIXEL_SIZE
|
|
|
- mul basura;rdx?
|
|
|
- ;shift (4-faltantes) bytes
|
|
|
- psrldq xmm2, basura ;ok, borre los que no queria
|
|
|
+ cmp col_faltan, 3
|
|
|
+ jg .normal
|
|
|
+ je .tres
|
|
|
+ jl .uno
|
|
|
|
|
|
+ .uno:
|
|
|
+ ;shift (4-faltantes) bytes
|
|
|
+ psrldq xmm2, 1;ok, borre los que no queria
|
|
|
+ jmp .normal
|
|
|
+ .tres:
|
|
|
+ psrldq xmm2, 3;ok, borre los que no queria
|
|
|
+ .normal:
|
|
|
;desempaqueto cada pixel a un registro (cada elem como dword)
|
|
|
punpcklbw xmm2, xmm3
|
|
|
punpckhbw xmm2, xmm4
|