📄 equalizer_3dnow.s
字号:
/* equalizer_3dnow: 3DNow! optimized do_equalizer() copyright ?-2006 by the mpg123 project - free software under the terms of the LGPL 2.1 see COPYING and AUTHORS files in distribution or http://mpg123.org initially written by KIMURA Takuhiro*/#include "mangle.h".text ALIGN4.globl ASM_NAME(do_equalizer_3dnow)/* .type ASM_NAME(do_equalizer_3dnow),@function *//* void do_equalizer(real *bandPtr,int channel, real equalizer[2][32]); */ASM_NAME(do_equalizer_3dnow): pushl %esi pushl %ebx /* bandPtr */ movl 12(%esp),%ebx /* channel */ movl 16(%esp),%ecx xorl %edx,%edx /* equalizer */ movl 20(%esp),%esi sall $7,%ecx ALIGN4.L9: movq (%ebx,%edx),%mm0 pfmul (%esi,%ecx),%mm0 movq 8(%ebx,%edx),%mm1 pfmul 8(%esi,%ecx),%mm1 movq %mm0,(%ebx,%edx) movq 16(%ebx,%edx),%mm0 pfmul 16(%esi,%ecx),%mm0 movq %mm1,8(%ebx,%edx) movq 24(%ebx,%edx),%mm1 pfmul 24(%esi,%ecx),%mm1 movq %mm0,16(%ebx,%edx) movq 32(%ebx,%edx),%mm0 pfmul 32(%esi,%ecx),%mm0 movq %mm1,24(%ebx,%edx) movq 40(%ebx,%edx),%mm1 pfmul 40(%esi,%ecx),%mm1 movq %mm0,32(%ebx,%edx) movq 48(%ebx,%edx),%mm0 pfmul 48(%esi,%ecx),%mm0 movq %mm1,40(%ebx,%edx) movq 56(%ebx,%edx),%mm1 pfmul 56(%esi,%ecx),%mm1 movq %mm0,48(%ebx,%edx) movq %mm1,56(%ebx,%edx) addl $64,%edx addl $32,%ecx cmpl $124,%edx jle .L9 ALIGN4 popl %ebx popl %esi ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -