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

Reply via email to