summaryrefslogtreecommitdiffstats
path: root/mp3lib
diff options
context:
space:
mode:
authoratmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-05-24 20:13:28 +0000
committeratmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-05-24 20:13:28 +0000
commitd3c061d7495dd9f1c9fcd60cae57454d33f8a532 (patch)
treef01231a6fb94643797335fe1831e63d845b7ec09 /mp3lib
parent727bd8fd09852fd14b0cf3768ce0b9f841a1d0d4 (diff)
downloadmpv-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.s56
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)