diff options
author | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-25 14:02:21 +0000 |
---|---|---|
committer | atmosfear <atmosfear@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-25 14:02:21 +0000 |
commit | 2d570f3d3af409c6a84992087df504189d9bbb16 (patch) | |
tree | fc83630709da30131121074483cc698d875f17b6 /mp3lib | |
parent | 6af61392b2a68f446e0c9c27944045fd6f61d20d (diff) |
Replaced wrond direction floating -> integer conversion.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@873 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mp3lib')
-rw-r--r-- | mp3lib/decode_sse.s | 13 |
1 files 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 |