32bit process
Code: Select all
Procedure LPF201(*buffer_audio_ptr, *lpf_table_ptr, *out_buffer_ptr)
;/ http://forum.purebasic.com/english/viewtopic.php?f=35&t=47679
; Thanks "Wilbert in Netherlands"
!MOV Ecx, [p.p_lpf_table_ptr]
!MOV Edx, [p.p_buffer_audio_ptr]
!SUB Edx, 800
!PXOR xmm2, xmm2
!MOV Eax, 201
!align 4
!SincInterLoop3:
!movq xmm0, [Ecx] ; sinc
!movlhps xmm0, xmm0
!cvtps2pd xmm1, [Edx] ; L + R
!mulpd xmm1, xmm0
!ADDPD xmm2, xmm1
!ADD Ecx, 8
!ADD Edx, 8
!DEC Eax
!JNZ SincInterLoop3
!cvtpd2ps xmm2, xmm2
!MOV Edx, [p.p_out_buffer_ptr]
!movq [Edx], xmm2
EndProcedure