Update of /cvsroot/alsa/alsa-lib/src/pcm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26109
Modified Files: pcm_dmix_i386.h Log Message: A new try to fix the SIGSEGV Index: pcm_dmix_i386.h =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dmix_i386.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- pcm_dmix_i386.h 12 Mar 2004 12:41:06 -0000 1.12 +++ pcm_dmix_i386.h 12 Mar 2004 19:08:27 -0000 1.13 @@ -34,6 +34,8 @@ volatile signed int *sum, size_t dst_step, size_t src_step, size_t sum_step) { + unsigned int old_ebx; + /* * ESI - src * EDI - dst @@ -45,7 +47,7 @@ __asm__ __volatile__ ( "\n" - "\tpush %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %%ebx, %7\n" /* ebx is GOT pointer (-fPIC) */ /* * initialization, load ESI, EDI, EBX registers */ @@ -138,10 +140,12 @@ "\tjnz 1b\n" "7:" - "\tpop %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %7, %%ebx\n" /* ebx is GOT pointer (-fPIC) */ : /* no output regs */ - : "m" (size), "m" (dst), "m" (src), "m" (sum), "m" (dst_step), "m" (src_step), "m" (sum_step) + : "m" (size), "m" (dst), "m" (src), + "m" (sum), "m" (dst_step), "m" (src_step), + "m" (sum_step), "m" (old_ebx) : "esi", "edi", "edx", "ecx", "eax" ); } @@ -154,6 +158,8 @@ volatile signed int *sum, size_t dst_step, size_t src_step, size_t sum_step) { + unsigned int old_ebx; + /* * ESI - src * EDI - dst @@ -165,7 +171,7 @@ __asm__ __volatile__ ( "\n" - "\tpush %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %%ebx, %7\n" /* ebx is GOT pointer (-fPIC) */ /* * initialization, load ESI, EDI, EBX registers */ @@ -224,10 +230,12 @@ "\tjnz 1b\n" "\temms\n" "5:" - "\tpop %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %7, %%ebx\n" /* ebx is GOT pointer (-fPIC) */ : /* no output regs */ - : "m" (size), "m" (dst), "m" (src), "m" (sum), "m" (dst_step), "m" (src_step), "m" (sum_step) + : "m" (size), "m" (dst), "m" (src), + "m" (sum), "m" (dst_step), "m" (src_step), + "m" (sum_step), "m" (old_ebx) : "esi", "edi", "edx", "ecx", "eax" ); } @@ -240,6 +248,8 @@ volatile signed int *sum, size_t dst_step, size_t src_step, size_t sum_step) { + unsigned int old_ebx; + /* * ESI - src * EDI - dst @@ -251,7 +261,7 @@ __asm__ __volatile__ ( "\n" - "\tpush %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %%ebx, %7\n" /* ebx is GOT pointer (-fPIC) */ /* * initialization, load ESI, EDI, EBX registers */ @@ -333,10 +343,12 @@ "\tjmp 1b\n" "6:" - "\tpop %%ebx\n" /* ebx is GOT pointer (-fPIC) */ + "\tmovl %7, %%ebx\n" /* ebx is GOT pointer (-fPIC) */ : /* no output regs */ - : "m" (size), "m" (dst), "m" (src), "m" (sum), "m" (dst_step), "m" (src_step), "m" (sum_step) + : "m" (size), "m" (dst), "m" (src), + "m" (sum), "m" (dst_step), "m" (src_step), + "m" (sum_step), "m" (old_ebx) : "esi", "edi", "edx", "ecx", "eax" ); } ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog