diff options
author | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-24 20:13:28 +0000 |
---|---|---|
committer | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-24 20:13:28 +0000 |
commit | d3c061d7495dd9f1c9fcd60cae57454d33f8a532 (patch) | |
tree | f01231a6fb94643797335fe1831e63d845b7ec09 /mp3lib | |
parent | 727bd8fd09852fd14b0cf3768ce0b9f841a1d0d4 (diff) | |
download | mpv-d3c061d7495dd9f1c9fcd60cae57454d33f8a532.tar.bz2 mpv-d3c061d7495dd9f1c9fcd60cae57454d33f8a532.tar.xz |
Better working version, no silence, but distorted.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@864 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mp3lib')
-rw-r--r-- | mp3lib/decode_sse.s | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/mp3lib/decode_sse.s b/mp3lib/decode_sse.s index 528d137934..a653e97665 100644 --- a/mp3lib/decode_sse.s +++ b/mp3lib/decode_sse.s @@ -91,6 +91,7 @@ synth_1to1_sse: pushl %eax call dct64 addl $12,%esp + emms movl 16(%esp),%edx leal 0(,%edx,4),%edx movl $decwin+64,%eax @@ -110,15 +111,12 @@ synth_1to1_sse: movups 48(%ecx), %xmm0 mulps 48(%ebx), %xmm0 addps %xmm0, %xmm4 - shufps $0xDD, %xmm4, %xmm1 /* fake of pfacc. 3|2|3|2 */ + movhlps %xmm4, %xmm1 /* fake of pfacc */ addps %xmm1, %xmm4 shufps $0x55, %xmm4, %xmm1 /* fake of pfnacc. 1|1|1|1 */ subps %xmm1, %xmm4 - cvtps2pi %xmm4, %mm4 + cvtss2si %xmm4, %eax - movd %mm4,%eax - - sar $16,%eax movw %ax,(%esi) addl $64,%ebx @@ -140,13 +138,10 @@ synth_1to1_sse: movups 48(%ecx), %xmm0 mulps 48(%ebx), %xmm0 addps %xmm0, %xmm4 - shufps $0xDD, %xmm4, %xmm1 /* 3|2|3|2 */ + movhlps %xmm4, %xmm1 /* 3|2|3|2 */ addps %xmm1, %xmm4 - cvtps2pi %xmm4, %mm4 - - movd %mm4, %eax + cvtss2si %xmm4, %eax - sar $16,%eax movw %ax,(%esi) @@ -156,29 +151,30 @@ synth_1to1_sse: movl $15,%ebp .L68: - xorps %xmm3, %xmm3 + xorps %xmm0, %xmm0 - movups (%ecx), %xmm4 - mulps (%ebx), %xmm4 - subps %xmm4, %xmm3 - movups 16(%ecx), %xmm0 - mulps 16(%ebx), %xmm0 - subps %xmm0, %xmm3 - movups 32(%ecx), %xmm1 - mulps 32(%ebx), %xmm1 - subps %xmm1, %xmm3 - movups 48(%ecx), %xmm0 - mulps 48(%ebx), %xmm0 - subps %xmm0, %xmm3 - shufps $0xDD, %xmm3, %xmm1 /* 3|2|3|2 */ - addps %xmm1, %xmm3 - shufps $0x55, %xmm3, %xmm1 /* fake of pfacc 1|1|1|1 */ - addps %xmm1, %xmm3 - cvtps2pi %xmm3, %mm0 + movups (%ecx),%xmm2 + mulps (%ebx),%xmm2 + subps %xmm2,%xmm0 + + movups 16(%ecx),%xmm2 + mulps 16(%ebx),%xmm2 + subps %xmm2,%xmm0 + + movups 32(%ecx),%xmm2 + mulps 32(%ebx),%xmm2 + subps %xmm2,%xmm0 + + movups 48(%ecx),%xmm2 + mulps 48(%ebx),%xmm2 + subps %xmm2,%xmm0 - movd %mm0,%eax + movhlps %xmm0, %xmm1 /* 3|2|3|2 */ + addps %xmm1, %xmm0 + shufps $0x55, %xmm0, %xmm1 /* fake of pfacc 1|1|1|1 */ + addps %xmm1, %xmm0 + cvtss2si %xmm0, %eax - sar $16,%eax movw %ax,(%esi) |