[MPlayer-dev-eng] [PATCH] Saturation & PSWAPD bugfix in mp3lib/dct64_3dnow.c & mp3lib/dct64_k7.c

Zuxy Meng zuxy.meng at gmail.com
Tue Jun 27 10:37:52 CEST 2006


2006/6/27, Guillaume Poirier <gpoirier at mplayerhq.hu>:
> Diego Biurrun wrote:
> > On Tue, Jun 27, 2006 at 08:01:59AM +0200, Guillaume POIRIER wrote:
> >
> >>On 6/21/06, Zuxy Meng <zuxy.meng at gmail.com> wrote:
> >>
> >>>2006/6/21, Diego Biurrun <diego at biurrun.de>:
> >>>
> >>>>On Wed, Jun 21, 2006 at 08:50:37PM +0800, Zuxy Meng wrote:
> >>>>
> >>>>>In addition, a false dependency of MMX2 in dct64_k7.c is also fixed
> >>>>>(replace pshufw $78 with pswapd) so it can be used on a K6-2/3+.
> >>>>
> >>>>Could you please split this into two different patches?
> >>>>
> >>>
> >>>Sans problèms.
> >>
> >>Both patches applied. I don't have access to any K6, so I couldn't
> >>test if the 2nd patch really works as expected. If it doesn't, please
> >>speak-up.
> >>In theory, it shouldn't even matter for k6 right now, as these
> >>routines aren't used on k6 (but it would be rather trivial to do so).
> >
> >
> > How would I test this on my K6-III+?  It seems that dct64_k7.c was
> > compiled all along...
>
> Yes, it's compiled, but the ASM routines in dct64_k7.c aren't used in K6.
> You'd need to adapt the part the code in mp3lib/sr1.c::MP3_Init() to
> select the 3dnow code.
>
> I _guess_ it would be smth like that:
>
> Index: sr1.c
> ===================================================================
> --- sr1.c       (revision 18792)
> +++ sr1.c       (working copy)
> @@ -430,7 +430,7 @@
>     if (gCpuCaps.has3DNow)
>     {
>        dct36_func = dct36_3dnow;
> -       dct64_MMX_func = dct64_MMX_3dnow;
> +       dct64_MMX_func = dct64_MMX_3dnowex;
>        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow! optimized
> decore!\n");
>     }
>     else

dct_MMX_3dnowex will raise SIGILL on a K6. For a K6-III+, changes
should be made as

    if (gCpuCaps.has3DNowExt)
    {
        dct36_func=dct36_3dnowex;
-        dct64_MMX_func= (gCpuCaps.hasMMX2) ? dct64_MMX_3dnowex :
dct64_MMX_3dnow;
+       dct64_MMX_func=dct64_MMX_3dnowex;
        mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow!Ex optimized
decore!\n");
    }

>
> if it's not the case, then you'll see it quickly (it'll just crash)

-- 
Zuxy
Beauty is truth,
While truth is beauty.
PGP KeyID: E8555ED6



More information about the MPlayer-dev-eng mailing list