David 11 年之前
父節點
當前提交
9de89d924e
共有 1 個文件被更改,包括 11 次插入7 次删除
  1. 11 7
      filtros/blur_asm.asm

+ 11 - 7
filtros/blur_asm.asm

@@ -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