Kaynağa Gözat

convulcion+push mistico

David 11 yıl önce
ebeveyn
işleme
663799dc5c
1 değiştirilmiş dosya ile 25 ekleme ve 4 silme
  1. 25 4
      filtros/blur_asm.asm

+ 25 - 4
filtros/blur_asm.asm

@@ -1,7 +1,7 @@
 default rel global _blur_asm
 global blur_asm
 
-extern convulcion_matriz
+extern convulcion_matrix
 
 ; Alias para no volverme loco con los registros
 %define src 	rdi
@@ -43,6 +43,28 @@ blur_asm:
 	push r14
 	push r15
 .init:
+
+	push src
+	push dst
+	push cols
+	push filas
+	push radius
+
+	sub rsp, 16
+	movdqu [rsp],xmm0
+
+	mov rdi, radius
+	call convulcion_matrix
+
+	movdqu  xmm0, [rsp]
+	add     rsp, 16
+
+	pop radius
+	pop filas
+	pop cols
+	pop dst
+	pop src
+
 	mov r14,rcx					;guardo rcx para loop
 	mov r9, rdx					;salvo rdx por los mul
 	mov rax, PIXEL_SIZE
@@ -105,9 +127,8 @@ blur_asm:
 			punpckhwd xmm4, xmm8
 
 			;cargo 1 elem de matriz como single
-			;FIXME esto carga 4
-			movdqu xmm9, [matriz]
-			;lo clono con mascara a los 4 elem del xmm
+			movd xmm9, [matriz]
+			;TODO lo clono con mascara a los 4 elem del xmm
 
 			;multiplico cada pixel por su coeficiente de la matriz(float)
 			mulps xmm5, xmm9