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