src/audio/SDL_mixer_MMX.c
changeset 1411 efb34e597d21
parent 1402 d910939febfa
child 1612 97d0966f4bf7
equal deleted inserted replaced
1410:93c48ff6d41f 1411:efb34e597d21
    57 "	psllq $16,%%mm0\n"
    57 "	psllq $16,%%mm0\n"
    58 "	por %%mm1,%%mm0\n"
    58 "	por %%mm1,%%mm0\n"
    59 "	psllq $16,%%mm0\n"
    59 "	psllq $16,%%mm0\n"
    60 "	por %%mm1,%%mm0\n"		// mm0 = vol|vol|vol|vol
    60 "	por %%mm1,%%mm0\n"		// mm0 = vol|vol|vol|vol
    61 
    61 
    62 ".align 16\n"
    62 ".align 8\n"
    63 "	.mixloopS16:\n"
    63 "	.mixloopS16:\n"
    64 
    64 
    65 "	movq (%1),%%mm1\n" // mm1 = a|b|c|d
    65 "	movq (%1),%%mm1\n" // mm1 = a|b|c|d
    66 
    66 
    67 "	movq %%mm1,%%mm2\n" // mm2 = a|b|c|d
    67 "	movq %%mm1,%%mm2\n" // mm2 = a|b|c|d
   157 "	shr $3,%%edx\n"	// process 8 bytes per iteration = 8 samples
   157 "	shr $3,%%edx\n"	// process 8 bytes per iteration = 8 samples
   158 
   158 
   159 "	cmp $0,%%edx\n"
   159 "	cmp $0,%%edx\n"
   160 "	je .endS8\n"
   160 "	je .endS8\n"
   161 
   161 
   162 ".align 16\n"
   162 ".align 8\n"
   163 "	.mixloopS8:\n"
   163 "	.mixloopS8:\n"
   164 
   164 
   165 "	pxor %%mm2,%%mm2\n"		// mm2 = 0
   165 "	pxor %%mm2,%%mm2\n"		// mm2 = 0
   166 "	movq (%1),%%mm1\n"	// mm1 = a|b|c|d|e|f|g|h
   166 "	movq (%1),%%mm1\n"	// mm1 = a|b|c|d|e|f|g|h
   167 
   167