Implemented snd_pcm_rewind() for the dmix plugin

This commit is contained in:
Jaroslav Kysela 2008-01-10 10:01:14 +01:00
parent 8f16428f9c
commit 70b11d614d
7 changed files with 459 additions and 28 deletions

View file

@ -83,9 +83,9 @@ static void MIX_AREAS_16(unsigned int size,
"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
"\tmovswl (%%esi), %%ecx\n"
"\tjnz 3f\n"
"\tsubl %%edx, %%ecx\n"
"\t" XSUB " %%edx, %%ecx\n"
"3:"
"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
"\t" LOCK_PREFIX XADD " %%ecx, (%%ebx)\n"
/*
* do {
@ -202,9 +202,9 @@ static void MIX_AREAS_16_MMX(unsigned int size,
"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
"\tmovswl (%%esi), %%ecx\n"
"\tjnz 3f\n"
"\tsubl %%edx, %%ecx\n"
"\t" XSUB " %%edx, %%ecx\n"
"3:"
"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
"\t" LOCK_PREFIX XADD " %%ecx, (%%ebx)\n"
/*
* do {
@ -291,14 +291,14 @@ static void MIX_AREAS_32(unsigned int size,
"\tmovl (%%esi), %%ecx\n"
/* sample >>= 8 */
"\tsarl $8, %%ecx\n"
"\tsubl %%edx, %%ecx\n"
"\t" XSUB " %%edx, %%ecx\n"
"\tjmp 21f\n"
"2:"
"\tmovl (%%esi), %%ecx\n"
/* sample >>= 8 */
"\tsarl $8, %%ecx\n"
"21:"
"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
"\t" LOCK_PREFIX XADD " %%ecx, (%%ebx)\n"
/*
* do {
@ -403,9 +403,9 @@ static void MIX_AREAS_24(unsigned int size,
"\t" LOCK_PREFIX "btsl $0, (%%edi)\n"
"\tleal (%%ecx,%%eax,1), %%ecx\n"
"\tjc 2f\n"
"\tsubl %%edx, %%ecx\n"
"\t" XSUB " %%edx, %%ecx\n"
"2:"
"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
"\t" LOCK_PREFIX XADD " %%ecx, (%%ebx)\n"
/*
* do {
@ -508,9 +508,9 @@ static void MIX_AREAS_24_CMOV(unsigned int size,
"\t" LOCK_PREFIX "btsl $0, (%%edi)\n"
"\tleal (%%ecx,%%eax,1), %%ecx\n"
"\tjc 2f\n"
"\tsubl %%edx, %%ecx\n"
"\t" XSUB " %%edx, %%ecx\n"
"2:"
"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
"\t" LOCK_PREFIX XADD " %%ecx, (%%ebx)\n"
/*
* do {