mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-08-10 17:14:41 +00:00
avfilter/x86/vf_noise: Make line_noise_avg_mmx() match C function
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -33,27 +33,30 @@ static void line_noise_avg_mmx(uint8_t *dst, const uint8_t *src,
|
||||
|
||||
__asm__ volatile(
|
||||
"mov %5, %%"FF_REG_a" \n\t"
|
||||
"pxor %%mm4, %%mm4 \n\t"
|
||||
".p2align 4 \n\t"
|
||||
"1: \n\t"
|
||||
"movq (%1, %%"FF_REG_a"), %%mm1 \n\t"
|
||||
"movq (%0, %%"FF_REG_a"), %%mm0 \n\t"
|
||||
"paddb (%2, %%"FF_REG_a"), %%mm1\n\t"
|
||||
"paddb (%3, %%"FF_REG_a"), %%mm1\n\t"
|
||||
"movq %%mm4, %%mm5 \n\t"
|
||||
"pcmpgtb %%mm0, %%mm5 \n\t"
|
||||
"movq %%mm0, %%mm6 \n\t"
|
||||
"movq %%mm0, %%mm2 \n\t"
|
||||
"punpcklbw %%mm5, %%mm0 \n\t"
|
||||
"punpckhbw %%mm5, %%mm2 \n\t"
|
||||
"movq %%mm4, %%mm5 \n\t"
|
||||
"pcmpgtb %%mm1, %%mm5 \n\t"
|
||||
"movq %%mm1, %%mm3 \n\t"
|
||||
"punpcklbw %%mm0, %%mm0 \n\t"
|
||||
"punpckhbw %%mm2, %%mm2 \n\t"
|
||||
"punpcklbw %%mm1, %%mm1 \n\t"
|
||||
"punpckhbw %%mm3, %%mm3 \n\t"
|
||||
"pmulhw %%mm0, %%mm1 \n\t"
|
||||
"pmulhw %%mm2, %%mm3 \n\t"
|
||||
"paddw %%mm1, %%mm1 \n\t"
|
||||
"paddw %%mm3, %%mm3 \n\t"
|
||||
"paddw %%mm0, %%mm1 \n\t"
|
||||
"paddw %%mm2, %%mm3 \n\t"
|
||||
"psrlw $8, %%mm1 \n\t"
|
||||
"psrlw $8, %%mm3 \n\t"
|
||||
"packuswb %%mm3, %%mm1 \n\t"
|
||||
"punpcklbw %%mm5, %%mm1 \n\t"
|
||||
"punpckhbw %%mm5, %%mm3 \n\t"
|
||||
"pmullw %%mm0, %%mm1 \n\t"
|
||||
"pmullw %%mm2, %%mm3 \n\t"
|
||||
"psraw $7, %%mm1 \n\t"
|
||||
"psraw $7, %%mm3 \n\t"
|
||||
"packsswb %%mm3, %%mm1 \n\t"
|
||||
"paddb %%mm6, %%mm1 \n\t"
|
||||
"movq %%mm1, (%4, %%"FF_REG_a") \n\t"
|
||||
"add $8, %%"FF_REG_a" \n\t"
|
||||
" js 1b \n\t"
|
||||
|
||||
Reference in New Issue
Block a user