瀏覽代碼

Merge branch 'master' of ssh://git.davidventura.com.ar:443/david/orga2-simd

Fabian 11 年之前
父節點
當前提交
e4d8b3f6bc
共有 2 個文件被更改,包括 11 次插入10 次删除
  1. 10 9
      filtros/blur_asm.asm
  2. 1 1
      filtros/blur_c.c

+ 10 - 9
filtros/blur_asm.asm

@@ -98,9 +98,9 @@ blur_asm:
 	mov filas_faltan, radius
 	shl filas_faltan, 1
 	inc filas_faltan ; 2r+1 filas
+
 	mov tmp_src, src ;salvo para avanzar despues
 	pxor xmm10,xmm10
-	mov matriz, r15 ;voy al inicio de la matriz
 	.loopInterno: ;matriz convulsion
 		mov col_faltan, radius
 		shl col_faltan, 1
@@ -169,21 +169,21 @@ blur_asm:
 
 			;actualizo cuantos faltan
 			sub col_faltan, 4*PIXEL_SIZE
+			add src, 	PIXEL_SIZE*4      ; Incremento 4 pixeles
+			add matriz, PIXEL_SIZE*4   ; me faltan al menos 4 pixeles en esta fila 
 
 			cmp col_faltan, 0 ;termine
 			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
 
-    		add src, PIXEL_SIZE*4      ; Incremento 4 pixeles
-			add matriz, PIXEL_SIZE*4   ; me faltan al menos 4 pixeles en esta fila 
 			jmp .loopFila
 
 		.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
 			jmp .loopFila
 			
@@ -200,8 +200,9 @@ blur_asm:
 	pshufb xmm10, xmm11	 ;dejo 0000,0000,0000,rgba
 	movd [dst], xmm10    ; Escribo en el destino
 .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 cont_c, PIXEL_SIZE
     jmp .loop

+ 1 - 1
filtros/blur_c.c

@@ -3,7 +3,7 @@
 #include <math.h>
 #define M_PI 3.14159265358979323846
 #include "../tp2.h"
-#define DEBUG 0
+#define DEBUG 1
 /**
 *	Calculo la matriz de convulsión.
 *	Hago el calculo de todos los componentes.