# HG changeset patch # User atmosfear # Date 990799341 0 # Node ID 3d45e3bcd2bdc0c007ace80ecd9543bad1c86eff # Parent ab94c4cf96d8a1cf051457f051c0c29cfc9b92c2 Replaced wrond direction floating -> integer conversion. diff -r ab94c4cf96d8 -r 3d45e3bcd2bd mp3lib/decode_sse.s --- a/mp3lib/decode_sse.s Fri May 25 14:01:21 2001 +0000 +++ b/mp3lib/decode_sse.s Fri May 25 14:02:21 2001 +0000 @@ -110,12 +110,19 @@ 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 @@ addps %xmm1, %xmm0 movhlps %xmm0, %xmm1 addss %xmm1, %xmm0 - cvttss2si %xmm0, %eax + cvtss2si %xmm0, %eax / sar $16,%eax @@ -171,7 +178,7 @@ 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