Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static inline void tempNoiseReducer_MMX2(uint8_t *src, int stride,
- uint8_t *tempBlurred, uint32_t *tempBlurredPast, int *maxNoise)
- {
- tempBlurredPast[127]= maxNoise[0];
- tempBlurredPast[128]= maxNoise[1];
- tempBlurredPast[129]= maxNoise[2];
- __asm__ volatile(
- "lea (%2, %2, 2), %%""rax"" \n\t"
- "lea (%2, %2, 4), %%""rdx"" \n\t"
- "lea (%%""rdx"", %2, 2), %%""rcx"" \n\t"
- # 2127 "postprocess_template.c"
- "pcmpeqb %%mm7, %%mm7 \n\t"
- "movq """ "b80"", %%mm6 \n\t"
- "pxor %%mm0, %%mm0 \n\t"
- # 2167 "postprocess_template.c"
- "movq " "(%0)" ", %%mm5 \n\t" "movq " "(%1)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %2)" ", %%mm5 \n\t" "movq " "(%1, %2)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %2, 2)" ", %%mm5 \n\t" "movq " "(%1, %2, 2)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %%rax)" ", %%mm5 \n\t" "movq " "(%1, %%rax)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %2, 4)" ", %%mm5 \n\t" "movq " "(%1, %2, 4)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %%rdx)" ", %%mm5 \n\t" "movq " "(%1, %%rdx)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %%rax,2)" ", %%mm5 \n\t" "movq " "(%1, %%rax,2)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq " "(%0, %%rcx)" ", %%mm5 \n\t" "movq " "(%1, %%rcx)" ", %%mm2 \n\t" "pxor %%mm7, %%mm2 \n\t" "pavgb " "%%mm2" ", " "%%mm5" " \n\t" "paddb %%mm6, %%mm5 \n\t" "movq %%mm5, %%mm2 \n\t" "psllw $8, %%mm5 \n\t" "pmaddwd %%mm5, %%mm5 \n\t" "pmaddwd %%mm2, %%mm2 \n\t" "paddd %%mm2, %%mm5 \n\t" "psrld $14, %%mm5 \n\t" "paddd %%mm5, %%mm0 \n\t"
- "movq %%mm0, %%mm4 \n\t"
- "psrlq $32, %%mm0 \n\t"
- "paddd %%mm0, %%mm4 \n\t"
- "movd %%mm4, %%ecx \n\t"
- "shll $2, %%ecx \n\t"
- "mov %3, %%""rdx"" \n\t"
- "addl -4(%%""rdx""), %%ecx \n\t"
- "addl 4(%%""rdx""), %%ecx \n\t"
- "addl -1024(%%""rdx""), %%ecx \n\t"
- "addl $4, %%ecx \n\t"
- "addl 1024(%%""rdx""), %%ecx \n\t"
- "shrl $3, %%ecx \n\t"
- "movl %%ecx, (%%""rdx"") \n\t"
- "cmpl 512(%%""rdx""), %%ecx \n\t"
- " jb 2f \n\t"
- "cmpl 516(%%""rdx""), %%ecx \n\t"
- " jb 1f \n\t"
- "lea (%%""rax"", %2, 2), %%""rdx"" \n\t"
- "lea (%%""rdx"", %2, 2), %%""rcx"" \n\t"
- "movq (%0), %%mm0 \n\t"
- "movq (%0, %2), %%mm1 \n\t"
- "movq (%0, %2, 2), %%mm2 \n\t"
- "movq (%0, %%""rax""), %%mm3 \n\t"
- "movq (%0, %2, 4), %%mm4 \n\t"
- "movq (%0, %%""rdx""), %%mm5 \n\t"
- "movq (%0, %%""rax"", 2), %%mm6 \n\t"
- "movq (%0, %%""rcx""), %%mm7 \n\t"
- "movq %%mm0, (%1) \n\t"
- "movq %%mm1, (%1, %2) \n\t"
- "movq %%mm2, (%1, %2, 2) \n\t"
- "movq %%mm3, (%1, %%""rax"") \n\t"
- "movq %%mm4, (%1, %2, 4) \n\t"
- "movq %%mm5, (%1, %%""rdx"") \n\t"
- "movq %%mm6, (%1, %%""rax"", 2) \n\t"
- "movq %%mm7, (%1, %%""rcx"") \n\t"
- "jmp 4f \n\t"
- "1: \n\t"
- "lea (%%""rax"", %2, 2), %%""rdx"" \n\t"
- "lea (%%""rdx"", %2, 2), %%""rcx"" \n\t"
- "movq (%0), %%mm0 \n\t"
- "pavgb " "(%1)" ", " "%%mm0" " \n\t"
- "movq (%0, %2), %%mm1 \n\t"
- "pavgb " "(%1, %2)" ", " "%%mm1" " \n\t"
- "movq (%0, %2, 2), %%mm2 \n\t"
- "pavgb " "(%1, %2, 2)" ", " "%%mm2" " \n\t"
- "movq (%0, %%""rax""), %%mm3 \n\t"
- "pavgb " "(%1, %%rax)" ", " "%%mm3" " \n\t"
- "movq (%0, %2, 4), %%mm4 \n\t"
- "pavgb " "(%1, %2, 4)" ", " "%%mm4" " \n\t"
- "movq (%0, %%""rdx""), %%mm5 \n\t"
- "pavgb " "(%1, %%rdx)" ", " "%%mm5" " \n\t"
- "movq (%0, %%""rax"", 2), %%mm6 \n\t"
- "pavgb " "(%1, %%rax, 2)" ", " "%%mm6" " \n\t"
- "movq (%0, %%""rcx""), %%mm7 \n\t"
- "pavgb " "(%1, %%rcx)" ", " "%%mm7" " \n\t"
- "movq %%mm0, (%1) \n\t"
- "movq %%mm1, (%1, %2) \n\t"
- "movq %%mm2, (%1, %2, 2) \n\t"
- "movq %%mm3, (%1, %%""rax"") \n\t"
- "movq %%mm4, (%1, %2, 4) \n\t"
- "movq %%mm5, (%1, %%""rdx"") \n\t"
- "movq %%mm6, (%1, %%""rax"", 2) \n\t"
- "movq %%mm7, (%1, %%""rcx"") \n\t"
- "movq %%mm0, (%0) \n\t"
- "movq %%mm1, (%0, %2) \n\t"
- "movq %%mm2, (%0, %2, 2) \n\t"
- "movq %%mm3, (%0, %%""rax"") \n\t"
- "movq %%mm4, (%0, %2, 4) \n\t"
- "movq %%mm5, (%0, %%""rdx"") \n\t"
- "movq %%mm6, (%0, %%""rax"", 2) \n\t"
- "movq %%mm7, (%0, %%""rcx"") \n\t"
- "jmp 4f \n\t"
- "2: \n\t"
- "cmpl 508(%%""rdx""), %%ecx \n\t"
- " jb 3f \n\t"
- "lea (%%""rax"", %2, 2), %%""rdx"" \n\t"
- "lea (%%""rdx"", %2, 2), %%""rcx"" \n\t"
- "movq (%0), %%mm0 \n\t"
- "movq (%0, %2), %%mm1 \n\t"
- "movq (%0, %2, 2), %%mm2 \n\t"
- "movq (%0, %%""rax""), %%mm3 \n\t"
- "movq (%1), %%mm4 \n\t"
- "movq (%1, %2), %%mm5 \n\t"
- "movq (%1, %2, 2), %%mm6 \n\t"
- "movq (%1, %%""rax""), %%mm7 \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "movq %%mm0, (%1) \n\t"
- "movq %%mm1, (%1, %2) \n\t"
- "movq %%mm2, (%1, %2, 2) \n\t"
- "movq %%mm3, (%1, %%""rax"") \n\t"
- "movq %%mm0, (%0) \n\t"
- "movq %%mm1, (%0, %2) \n\t"
- "movq %%mm2, (%0, %2, 2) \n\t"
- "movq %%mm3, (%0, %%""rax"") \n\t"
- "movq (%0, %2, 4), %%mm0 \n\t"
- "movq (%0, %%""rdx""), %%mm1 \n\t"
- "movq (%0, %%""rax"", 2), %%mm2 \n\t"
- "movq (%0, %%""rcx""), %%mm3 \n\t"
- "movq (%1, %2, 4), %%mm4 \n\t"
- "movq (%1, %%""rdx""), %%mm5 \n\t"
- "movq (%1, %%""rax"", 2), %%mm6 \n\t"
- "movq (%1, %%""rcx""), %%mm7 \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "movq %%mm0, (%1, %2, 4) \n\t"
- "movq %%mm1, (%1, %%""rdx"") \n\t"
- "movq %%mm2, (%1, %%""rax"", 2) \n\t"
- "movq %%mm3, (%1, %%""rcx"") \n\t"
- "movq %%mm0, (%0, %2, 4) \n\t"
- "movq %%mm1, (%0, %%""rdx"") \n\t"
- "movq %%mm2, (%0, %%""rax"", 2) \n\t"
- "movq %%mm3, (%0, %%""rcx"") \n\t"
- "jmp 4f \n\t"
- "3: \n\t"
- "lea (%%""rax"", %2, 2), %%""rdx"" \n\t"
- "lea (%%""rdx"", %2, 2), %%""rcx"" \n\t"
- "movq (%0), %%mm0 \n\t"
- "movq (%0, %2), %%mm1 \n\t"
- "movq (%0, %2, 2), %%mm2 \n\t"
- "movq (%0, %%""rax""), %%mm3 \n\t"
- "movq (%1), %%mm4 \n\t"
- "movq (%1, %2), %%mm5 \n\t"
- "movq (%1, %2, 2), %%mm6 \n\t"
- "movq (%1, %%""rax""), %%mm7 \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "movq %%mm0, (%1) \n\t"
- "movq %%mm1, (%1, %2) \n\t"
- "movq %%mm2, (%1, %2, 2) \n\t"
- "movq %%mm3, (%1, %%""rax"") \n\t"
- "movq %%mm0, (%0) \n\t"
- "movq %%mm1, (%0, %2) \n\t"
- "movq %%mm2, (%0, %2, 2) \n\t"
- "movq %%mm3, (%0, %%""rax"") \n\t"
- "movq (%0, %2, 4), %%mm0 \n\t"
- "movq (%0, %%""rdx""), %%mm1 \n\t"
- "movq (%0, %%""rax"", 2), %%mm2 \n\t"
- "movq (%0, %%""rcx""), %%mm3 \n\t"
- "movq (%1, %2, 4), %%mm4 \n\t"
- "movq (%1, %%""rdx""), %%mm5 \n\t"
- "movq (%1, %%""rax"", 2), %%mm6 \n\t"
- "movq (%1, %%""rcx""), %%mm7 \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "pavgb " "%%mm4" ", " "%%mm0" " \n\t"
- "pavgb " "%%mm5" ", " "%%mm1" " \n\t"
- "pavgb " "%%mm6" ", " "%%mm2" " \n\t"
- "pavgb " "%%mm7" ", " "%%mm3" " \n\t"
- "movq %%mm0, (%1, %2, 4) \n\t"
- "movq %%mm1, (%1, %%""rdx"") \n\t"
- "movq %%mm2, (%1, %%""rax"", 2) \n\t"
- "movq %%mm3, (%1, %%""rcx"") \n\t"
- "movq %%mm0, (%0, %2, 4) \n\t"
- "movq %%mm1, (%0, %%""rdx"") \n\t"
- "movq %%mm2, (%0, %%""rax"", 2) \n\t"
- "movq %%mm3, (%0, %%""rcx"") \n\t"
- "4: \n\t"
- :: "r" (src), "r" (tempBlurred), "r"((x86_reg)stride), "m" (tempBlurredPast)
- : "%""rax", "%""rdx", "%""rcx", "memory"
- );
- # 2464 "postprocess_template.c"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement