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

« back to all changes in this revision

Viewing changes to equalizer_3dnow.s

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2004-09-07 15:57:57 UTC
  • Revision ID: james.westby@ubuntu.com-20040907155757-pgypftl9bt2uqyyl
Tags: 0.59r-16
* layer2.c: Fix buffer overflow in layer2 decoder (CVE ID CAN-2004-0805).
* Makefile: Fix compiler options to build for generic targets on ARM,
  but optimise for xscale. Closes: #261255
* README.3DNOW, dct36_3dnow.s, dct64_3dnow.s, decode_3dnow.s,
  decode_i386.c, equalizer_3dnow.s, getcpuflags.s, layer3.c, mpg123.c,
  mpg123.h, tabinit.c, debian/rules: Apply patch by KIMURA Takuhiro and
  Syuuhei Kashiyama to fix errors in 3dnow-optimised decoding.
  Thanks to Alberto Garcia for the patch-merging. Closes: #242212
* debian/prerm: De-register mp3-decoder alternative. Closes: #222982
* debian/changelog: Convert to utf8.
* debian/control: Bump standards version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/
 
2
/ equalizer_3dnow.s - 3DNow! optimized do_equalizer()
 
3
/ by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp>
 
4
/                    <kim@comtec.co.jp>
 
5
/
 
6
        
 
7
.text
 
8
        .align 4
 
9
.globl do_equalizer_3dnow
 
10
        .type    do_equalizer_3dnow,@function
 
11
do_equalizer_3dnow:
 
12
        pushl %esi
 
13
        pushl %ebx
 
14
        / bandPtr
 
15
        movl 12(%esp),%ebx
 
16
        cmpl $0,equalfile
 
17
        je .L5
 
18
        / channel
 
19
        movl 16(%esp),%ecx
 
20
        xorl %edx,%edx
 
21
        movl $equalizer,%esi
 
22
        sall $7,%ecx
 
23
        .align 4
 
24
.L9:
 
25
        movq (%ebx,%edx),%mm0
 
26
        pfmul (%esi,%ecx),%mm0
 
27
 
 
28
        movq 8(%ebx,%edx),%mm1
 
29
        pfmul 8(%esi,%ecx),%mm1
 
30
        movq %mm0,(%ebx,%edx)
 
31
        
 
32
        movq 16(%ebx,%edx),%mm0
 
33
        pfmul 16(%esi,%ecx),%mm0
 
34
        movq %mm1,8(%ebx,%edx)
 
35
        
 
36
        movq 24(%ebx,%edx),%mm1
 
37
        pfmul 24(%esi,%ecx),%mm1
 
38
        movq %mm0,16(%ebx,%edx)
 
39
 
 
40
        movq 32(%ebx,%edx),%mm0
 
41
        pfmul 32(%esi,%ecx),%mm0
 
42
        movq %mm1,24(%ebx,%edx)
 
43
 
 
44
        movq 40(%ebx,%edx),%mm1
 
45
        pfmul 40(%esi,%ecx),%mm1
 
46
        movq %mm0,32(%ebx,%edx)
 
47
        
 
48
        movq 48(%ebx,%edx),%mm0
 
49
        pfmul 48(%esi,%ecx),%mm0
 
50
        movq %mm1,40(%ebx,%edx)
 
51
        
 
52
        movq 56(%ebx,%edx),%mm1
 
53
        pfmul 56(%esi,%ecx),%mm1
 
54
        movq %mm0,48(%ebx,%edx)
 
55
        movq %mm1,56(%ebx,%edx)
 
56
        
 
57
        addl $64,%edx
 
58
        addl $32,%ecx
 
59
        cmpl $124,%edx
 
60
        jle .L9
 
61
        .align 4
 
62
.L5:
 
63
        popl %ebx
 
64
        popl %esi
 
65
        ret