mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	Reverted back to 1.1 version
This commit is contained in:
		
							parent
							
								
									a8f375386e
								
							
						
					
					
						commit
						75d9142a83
					
				
					 1 changed files with 16 additions and 18 deletions
				
			
		| 
						 | 
					@ -40,14 +40,15 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
	 *  EBX - sum
 | 
						 *  EBX - sum
 | 
				
			||||||
	 *  ECX - old sample
 | 
						 *  ECX - old sample
 | 
				
			||||||
	 *  EAX - sample / temporary
 | 
						 *  EAX - sample / temporary
 | 
				
			||||||
	 *  EDX - temporary
 | 
						 *  EDX - size
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	__asm__ __volatile__ (
 | 
						__asm__ __volatile__ (
 | 
				
			||||||
		"\n"
 | 
							"\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 *  initialization, load ESI, EDI, EBX registers
 | 
							 *  initialization, load EDX, ESI, EDI, EBX registers
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
 | 
							"\tmovl %0, %%edx\n"
 | 
				
			||||||
		"\tmovl %1, %%edi\n"
 | 
							"\tmovl %1, %%edi\n"
 | 
				
			||||||
		"\tmovl %2, %%esi\n"
 | 
							"\tmovl %2, %%esi\n"
 | 
				
			||||||
		"\tmovl %3, %%ebx\n"
 | 
							"\tmovl %3, %%ebx\n"
 | 
				
			||||||
| 
						 | 
					@ -55,7 +56,7 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * while (size-- > 0) {
 | 
							 * while (size-- > 0) {
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		"\tcmp $0, %0\n"
 | 
							"\tcmp $0, %%edx\n"
 | 
				
			||||||
		"jz 6f\n"
 | 
							"jz 6f\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		"\t.p2align 4,,15\n"
 | 
							"\t.p2align 4,,15\n"
 | 
				
			||||||
| 
						 | 
					@ -64,18 +65,16 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 *   sample = *src;
 | 
							 *   sample = *src;
 | 
				
			||||||
		 *   sum_sample = *sum;
 | 
					 | 
				
			||||||
		 *   if (cmpxchg(*dst, 0, 1) == 0)
 | 
							 *   if (cmpxchg(*dst, 0, 1) == 0)
 | 
				
			||||||
		 *     sample -= sum_sample;
 | 
							 *     sample -= *sum;
 | 
				
			||||||
		 *   xadd(*sum, sample);
 | 
							 *   xadd(*sum, sample);
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		"\tmovw $0, %%ax\n"
 | 
							"\tmovw $0, %%ax\n"
 | 
				
			||||||
		"\tmovw $1, %%cx\n"
 | 
							"\tmovw $1, %%cx\n"
 | 
				
			||||||
		"\tmovl (%%ebx), %%edx\n"
 | 
					 | 
				
			||||||
		"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
 | 
							"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
 | 
				
			||||||
		"\tmovswl (%%esi), %%ecx\n"
 | 
							"\tmovswl (%%esi), %%ecx\n"
 | 
				
			||||||
		"\tjnz 2f\n"
 | 
							"\tjnz 2f\n"
 | 
				
			||||||
		"\tsubl %%edx, %%ecx\n"
 | 
							"\tsubl (%%ebx), %%ecx\n"
 | 
				
			||||||
		"2:"
 | 
							"2:"
 | 
				
			||||||
		"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
 | 
							"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -103,7 +102,7 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
		"\tadd %4, %%edi\n"
 | 
							"\tadd %4, %%edi\n"
 | 
				
			||||||
		"\tadd %5, %%esi\n"
 | 
							"\tadd %5, %%esi\n"
 | 
				
			||||||
		"\tadd %6, %%ebx\n"
 | 
							"\tadd %6, %%ebx\n"
 | 
				
			||||||
		"\tdecl %0\n"
 | 
							"\tdecl %%edx\n"
 | 
				
			||||||
		"\tjnz 1b\n"
 | 
							"\tjnz 1b\n"
 | 
				
			||||||
		"\tjmp 6f\n"
 | 
							"\tjmp 6f\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -121,7 +120,7 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
		"\tadd %4, %%edi\n"
 | 
							"\tadd %4, %%edi\n"
 | 
				
			||||||
		"\tadd %5, %%esi\n"
 | 
							"\tadd %5, %%esi\n"
 | 
				
			||||||
		"\tadd %6, %%ebx\n"
 | 
							"\tadd %6, %%ebx\n"
 | 
				
			||||||
		"\tdecl %0\n"
 | 
							"\tdecl %%edx\n"
 | 
				
			||||||
		"\tjnz 1b\n"
 | 
							"\tjnz 1b\n"
 | 
				
			||||||
		"\tjmp 6f\n"
 | 
							"\tjmp 6f\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,7 +138,7 @@ static void MIX_AREAS1(unsigned int size,
 | 
				
			||||||
		"\tadd %4, %%edi\n"
 | 
							"\tadd %4, %%edi\n"
 | 
				
			||||||
		"\tadd %5, %%esi\n"
 | 
							"\tadd %5, %%esi\n"
 | 
				
			||||||
		"\tadd %6, %%ebx\n"
 | 
							"\tadd %6, %%ebx\n"
 | 
				
			||||||
		"\tdecl %0\n"
 | 
							"\tdecl %%edx\n"
 | 
				
			||||||
		"\tjnz 1b\n"
 | 
							"\tjnz 1b\n"
 | 
				
			||||||
		// "\tjmp 6f\n"
 | 
							// "\tjmp 6f\n"
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
| 
						 | 
					@ -165,14 +164,15 @@ static void MIX_AREAS1_MMX(unsigned int size,
 | 
				
			||||||
	 *  EBX - sum
 | 
						 *  EBX - sum
 | 
				
			||||||
	 *  ECX - old sample
 | 
						 *  ECX - old sample
 | 
				
			||||||
	 *  EAX - sample / temporary
 | 
						 *  EAX - sample / temporary
 | 
				
			||||||
	 *  EDX - temporary
 | 
						 *  EDX - size
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	__asm__ __volatile__ (
 | 
						__asm__ __volatile__ (
 | 
				
			||||||
		"\n"
 | 
							"\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 *  initialization, load ESI, EDI, EBX registers
 | 
							 *  initialization, load EDX, ESI, EDI, EBX registers
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
 | 
							"\tmovl %0, %%edx\n"
 | 
				
			||||||
		"\tmovl %1, %%edi\n"
 | 
							"\tmovl %1, %%edi\n"
 | 
				
			||||||
		"\tmovl %2, %%esi\n"
 | 
							"\tmovl %2, %%esi\n"
 | 
				
			||||||
		"\tmovl %3, %%ebx\n"
 | 
							"\tmovl %3, %%ebx\n"
 | 
				
			||||||
| 
						 | 
					@ -180,7 +180,7 @@ static void MIX_AREAS1_MMX(unsigned int size,
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * while (size-- > 0) {
 | 
							 * while (size-- > 0) {
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		"\tcmp $0, %0\n"
 | 
							"\tcmp $0, %%edx\n"
 | 
				
			||||||
		"jz 6f\n"
 | 
							"jz 6f\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		"\t.p2align 4,,15\n"
 | 
							"\t.p2align 4,,15\n"
 | 
				
			||||||
| 
						 | 
					@ -189,18 +189,16 @@ static void MIX_AREAS1_MMX(unsigned int size,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 *   sample = *src;
 | 
							 *   sample = *src;
 | 
				
			||||||
		 *   sum_sample = *sum;
 | 
					 | 
				
			||||||
		 *   if (cmpxchg(*dst, 0, 1) == 0)
 | 
							 *   if (cmpxchg(*dst, 0, 1) == 0)
 | 
				
			||||||
		 *     sample -= sum_sample;
 | 
							 *     sample -= *sum;
 | 
				
			||||||
		 *   xadd(*sum, sample);
 | 
							 *   xadd(*sum, sample);
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		"\tmovw $0, %%ax\n"
 | 
							"\tmovw $0, %%ax\n"
 | 
				
			||||||
		"\tmovw $1, %%cx\n"
 | 
							"\tmovw $1, %%cx\n"
 | 
				
			||||||
		"\tmovl (%%ebx), %%edx\n"
 | 
					 | 
				
			||||||
		"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
 | 
							"\t" LOCK_PREFIX "cmpxchgw %%cx, (%%edi)\n"
 | 
				
			||||||
		"\tmovswl (%%esi), %%ecx\n"
 | 
							"\tmovswl (%%esi), %%ecx\n"
 | 
				
			||||||
		"\tjnz 2f\n"
 | 
							"\tjnz 2f\n"
 | 
				
			||||||
		"\tsubl %%edx, %%ecx\n"
 | 
							"\tsubl (%%ebx), %%ecx\n"
 | 
				
			||||||
		"2:"
 | 
							"2:"
 | 
				
			||||||
		"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
 | 
							"\t" LOCK_PREFIX "addl %%ecx, (%%ebx)\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -227,7 +225,7 @@ static void MIX_AREAS1_MMX(unsigned int size,
 | 
				
			||||||
		"\tadd %4, %%edi\n"
 | 
							"\tadd %4, %%edi\n"
 | 
				
			||||||
		"\tadd %5, %%esi\n"
 | 
							"\tadd %5, %%esi\n"
 | 
				
			||||||
		"\tadd %6, %%ebx\n"
 | 
							"\tadd %6, %%ebx\n"
 | 
				
			||||||
		"\tdecl %0\n"
 | 
							"\tdecl %%edx\n"
 | 
				
			||||||
		"\tjnz 1b\n"
 | 
							"\tjnz 1b\n"
 | 
				
			||||||
		"\tjmp 6f\n"
 | 
							"\tjmp 6f\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue