From 2d570f3d3af409c6a84992087df504189d9bbb16 Mon Sep 17 00:00:00 2001 From: atmosfear Date: Fri, 25 May 2001 14:02:21 +0000 Subject: [PATCH] Replaced wrond direction floating -> integer conversion. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@873 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mp3lib/decode_sse.s | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mp3lib/decode_sse.s b/mp3lib/decode_sse.s index b4ee78d0ea..eebd2f6cfb 100644 --- a/mp3lib/decode_sse.s +++ b/mp3lib/decode_sse.s @@ -110,12 +110,19 @@ synth_1to1_sse: movups 48(%ecx), %xmm1 mulps 48(%ebx), %xmm1 addps %xmm1, %xmm0 +/* pfnacc -> PFNACC mmreg1, mmreg2 performs the following operations: */ +/* temp = mmreg2 */ +/* mmreg1[31:0] = mmreg1[31:0] - mmreg1[63:32] */ +/* mmreg1[63:32]= temp [31:0] - temp[63:32] */ +/* save difference of mmreg1's low-word and high-word into mmreg1's low-word */ +/* save difference of mmreg2's low-word and high-word into mmreg1's high-word */ movhlps %xmm0, %xmm1 addps %xmm1, %xmm0 movaps %xmm0, %xmm1 shufps $0x55, %xmm1, %xmm1 /* fake of pfnacc. 1|1|1|1 */ + subss %xmm1, %xmm0 - cvttss2si %xmm0, %eax + cvtss2si %xmm0, %eax / sar $16,%eax movw %ax,(%esi) @@ -141,7 +148,7 @@ synth_1to1_sse: addps %xmm1, %xmm0 movhlps %xmm0, %xmm1 addss %xmm1, %xmm0 - cvttss2si %xmm0, %eax + cvtss2si %xmm0, %eax / sar $16,%eax @@ -171,7 +178,7 @@ synth_1to1_sse: movaps %xmm0, %xmm1 shufps $0x55, %xmm1, %xmm1 /* fake of pfacc 1|1|1|1 */ addss %xmm1, %xmm0 - cvttss2si %xmm0, %eax + cvtss2si %xmm0, %eax / sar $16,%eax