From 26e195ff8927d0946d77e06fb6f60273c68c4b69 Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 25 Dec 2001 17:19:18 +0000 Subject: memset(?, 0, 256*sizeof(float)) in MMX git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3739 b3059339-0415-0410-9bf9-f77b7e298cf2 --- liba52/downmix.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'liba52') diff --git a/liba52/downmix.c b/liba52/downmix.c index be004b99a3..527f38efdd 100644 --- a/liba52/downmix.c +++ b/liba52/downmix.c @@ -65,7 +65,7 @@ int downmix_init (int input, int flags, sample_t * level, output = flags & A52_CHANNEL_MASK; if (output > A52_DOLBY) return -1; - + output = table[output][input & 7]; if ((output == A52_STEREO) && @@ -593,9 +593,25 @@ static void move2to1 (sample_t * src, sample_t * dest, sample_t bias) static void zero (sample_t * samples) { int i; - +#ifdef HAVE_MMX + asm volatile( + "movl $-1024, %%esi \n\t" + "pxor %%mm0, %%mm0 \n\t" + "1: \n\t" + "movq %%mm0, (%0, %%esi) \n\t" + "movq %%mm0, 8(%0, %%esi) \n\t" + "movq %%mm0, 16(%0, %%esi) \n\t" + "movq %%mm0, 24(%0, %%esi) \n\t" + "addl $32, %%esi \n\t" + " jnz 1b \n\t" + "emms" + :: "r" (samples+256) + : "%esi" + ); +#else for (i = 0; i < 256; i++) samples[i] = 0; +#endif } void downmix (sample_t * samples, int acmod, int output, sample_t bias, -- cgit v1.2.3