|
@@ -98,9 +98,9 @@ blur_asm:
|
|
|
mov filas_faltan, radius
|
|
mov filas_faltan, radius
|
|
|
shl filas_faltan, 1
|
|
shl filas_faltan, 1
|
|
|
inc filas_faltan ; 2r+1 filas
|
|
inc filas_faltan ; 2r+1 filas
|
|
|
|
|
+
|
|
|
mov tmp_src, src ;salvo para avanzar despues
|
|
mov tmp_src, src ;salvo para avanzar despues
|
|
|
pxor xmm10,xmm10
|
|
pxor xmm10,xmm10
|
|
|
- mov matriz, r15 ;voy al inicio de la matriz
|
|
|
|
|
.loopInterno: ;matriz convulsion
|
|
.loopInterno: ;matriz convulsion
|
|
|
mov col_faltan, radius
|
|
mov col_faltan, radius
|
|
|
shl col_faltan, 1
|
|
shl col_faltan, 1
|
|
@@ -173,17 +173,17 @@ blur_asm:
|
|
|
cmp col_faltan, 0 ;termine
|
|
cmp col_faltan, 0 ;termine
|
|
|
jle .finFilaInterna
|
|
jle .finFilaInterna
|
|
|
|
|
|
|
|
- cmp col_faltan, 4*PIXEL_SIZE ;me faltan entre 0 y 4 pixeles, retrocedo suficiente para que me falten 4 exactos
|
|
|
|
|
|
|
+ cmp col_faltan, 4*PIXEL_SIZE ;me faltan entre 1 y 3 pixeles, retrocedo suficiente para que me falten 4 exactos
|
|
|
jle .retroceder
|
|
jle .retroceder
|
|
|
|
|
|
|
|
- add src, PIXEL_SIZE*4 ; Incremento 4 pixeles
|
|
|
|
|
|
|
+ add src, PIXEL_SIZE*4 ; Incremento 4 pixeles
|
|
|
add matriz, PIXEL_SIZE*4 ; me faltan al menos 4 pixeles en esta fila
|
|
add matriz, PIXEL_SIZE*4 ; me faltan al menos 4 pixeles en esta fila
|
|
|
jmp .loopFila
|
|
jmp .loopFila
|
|
|
|
|
|
|
|
.retroceder:
|
|
.retroceder:
|
|
|
- mov basura, PIXEL_SIZE*4 ;cargo 4 pixeles por tanda
|
|
|
|
|
- sub basura, col_faltan
|
|
|
|
|
- sub src, basura
|
|
|
|
|
|
|
+ mov basura, PIXEL_SIZE*4;cargo 4 pixeles por tanda
|
|
|
|
|
+ sub basura, col_faltan ;resto los que me faltan (1-3)
|
|
|
|
|
+ sub src, basura ;retrocedo(1-3) para que me falten 4
|
|
|
sub matriz, basura
|
|
sub matriz, basura
|
|
|
jmp .loopFila
|
|
jmp .loopFila
|
|
|
|
|
|
|
@@ -200,8 +200,9 @@ blur_asm:
|
|
|
pshufb xmm10, xmm11 ;dejo 0000,0000,0000,rgba
|
|
pshufb xmm10, xmm11 ;dejo 0000,0000,0000,rgba
|
|
|
movd [dst], xmm10 ; Escribo en el destino
|
|
movd [dst], xmm10 ; Escribo en el destino
|
|
|
.endLoop:
|
|
.endLoop:
|
|
|
- mov src, tmp_src
|
|
|
|
|
- add src, PIXEL_SIZE ; Incremento 1 pixel
|
|
|
|
|
|
|
+ mov src, tmp_src ;recupero la posicion a procesar
|
|
|
|
|
+ mov matriz, r15 ;voy al inicio de la matriz
|
|
|
|
|
+ add src, PIXEL_SIZE ; Incremento 1 pixel
|
|
|
add dst, PIXEL_SIZE
|
|
add dst, PIXEL_SIZE
|
|
|
add cont_c, PIXEL_SIZE
|
|
add cont_c, PIXEL_SIZE
|
|
|
jmp .loop
|
|
jmp .loop
|