~ubuntu-branches/ubuntu/lucid/mpg123/lucid

« back to all changes in this revision

Viewing changes to src/equalizer_3dnow.s

Tags: upstream-0.60
ImportĀ upstreamĀ versionĀ 0.60

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/
 
2
/       dct64_3dnow.s: 3DNow! optimized do_equalizer()
 
3
/
 
4
/       copyright ?-2006 by the mpg123 project - free software under the terms of the LGPL 2.1
 
5
/       see COPYING and AUTHORS files in distribution or http://mpg123.de
 
6
/       initially written by KIMURA Takuhiro
 
7
        
 
8
.text
 
9
        .align 4
 
10
.globl do_equalizer_3dnow
 
11
        .type    do_equalizer_3dnow,@function
 
12
do_equalizer_3dnow:
 
13
        pushl %esi
 
14
        pushl %ebx
 
15
        / bandPtr
 
16
        movl 12(%esp),%ebx
 
17
        cmpl $0,equalfile
 
18
        je .L5
 
19
        / channel
 
20
        movl 16(%esp),%ecx
 
21
        xorl %edx,%edx
 
22
        movl $equalizer,%esi
 
23
        sall $7,%ecx
 
24
        .align 4
 
25
.L9:
 
26
        movq (%ebx,%edx),%mm0
 
27
        pfmul (%esi,%ecx),%mm0
 
28
 
 
29
        movq 8(%ebx,%edx),%mm1
 
30
        pfmul 8(%esi,%ecx),%mm1
 
31
        movq %mm0,(%ebx,%edx)
 
32
        
 
33
        movq 16(%ebx,%edx),%mm0
 
34
        pfmul 16(%esi,%ecx),%mm0
 
35
        movq %mm1,8(%ebx,%edx)
 
36
        
 
37
        movq 24(%ebx,%edx),%mm1
 
38
        pfmul 24(%esi,%ecx),%mm1
 
39
        movq %mm0,16(%ebx,%edx)
 
40
 
 
41
        movq 32(%ebx,%edx),%mm0
 
42
        pfmul 32(%esi,%ecx),%mm0
 
43
        movq %mm1,24(%ebx,%edx)
 
44
 
 
45
        movq 40(%ebx,%edx),%mm1
 
46
        pfmul 40(%esi,%ecx),%mm1
 
47
        movq %mm0,32(%ebx,%edx)
 
48
        
 
49
        movq 48(%ebx,%edx),%mm0
 
50
        pfmul 48(%esi,%ecx),%mm0
 
51
        movq %mm1,40(%ebx,%edx)
 
52
        
 
53
        movq 56(%ebx,%edx),%mm1
 
54
        pfmul 56(%esi,%ecx),%mm1
 
55
        movq %mm0,48(%ebx,%edx)
 
56
        movq %mm1,56(%ebx,%edx)
 
57
        
 
58
        addl $64,%edx
 
59
        addl $32,%ecx
 
60
        cmpl $124,%edx
 
61
        jle .L9
 
62
        .align 4
 
63
.L5:
 
64
        popl %ebx
 
65
        popl %esi
 
66
        ret