|
|
|
@ -1034,6 +1034,7 @@ static inline void RENAME(rgb16to32)(const uint8_t *src, uint8_t *dst, int src_s |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if COMPILE_TEMPLATE_MMXEXT |
|
|
|
|
static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size) |
|
|
|
|
{ |
|
|
|
|
x86_reg idx = 15 - src_size; |
|
|
|
@ -1052,7 +1053,6 @@ static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, |
|
|
|
|
PREFETCH" 32(%1, %0) \n\t" |
|
|
|
|
"movq (%1, %0), %%mm0 \n\t" |
|
|
|
|
"movq 8(%1, %0), %%mm1 \n\t" |
|
|
|
|
# if COMPILE_TEMPLATE_MMXEXT |
|
|
|
|
"pshufw $177, %%mm0, %%mm3 \n\t" |
|
|
|
|
"pshufw $177, %%mm1, %%mm5 \n\t" |
|
|
|
|
"pand %%mm7, %%mm0 \n\t" |
|
|
|
@ -1061,24 +1061,6 @@ static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, |
|
|
|
|
"pand %%mm6, %%mm5 \n\t" |
|
|
|
|
"por %%mm3, %%mm0 \n\t" |
|
|
|
|
"por %%mm5, %%mm1 \n\t" |
|
|
|
|
# else |
|
|
|
|
"movq %%mm0, %%mm2 \n\t" |
|
|
|
|
"movq %%mm1, %%mm4 \n\t" |
|
|
|
|
"pand %%mm7, %%mm0 \n\t" |
|
|
|
|
"pand %%mm6, %%mm2 \n\t" |
|
|
|
|
"pand %%mm7, %%mm1 \n\t" |
|
|
|
|
"pand %%mm6, %%mm4 \n\t" |
|
|
|
|
"movq %%mm2, %%mm3 \n\t" |
|
|
|
|
"movq %%mm4, %%mm5 \n\t" |
|
|
|
|
"pslld $16, %%mm2 \n\t" |
|
|
|
|
"psrld $16, %%mm3 \n\t" |
|
|
|
|
"pslld $16, %%mm4 \n\t" |
|
|
|
|
"psrld $16, %%mm5 \n\t" |
|
|
|
|
"por %%mm2, %%mm0 \n\t" |
|
|
|
|
"por %%mm4, %%mm1 \n\t" |
|
|
|
|
"por %%mm3, %%mm0 \n\t" |
|
|
|
|
"por %%mm5, %%mm1 \n\t" |
|
|
|
|
# endif |
|
|
|
|
MOVNTQ" %%mm0, (%2, %0) \n\t" |
|
|
|
|
MOVNTQ" %%mm1, 8(%2, %0) \n\t" |
|
|
|
|
"add $16, %0 \n\t" |
|
|
|
@ -1095,6 +1077,7 @@ static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, |
|
|
|
|
*(uint32_t *)&d[idx] = (v>>16) + g + (v<<16); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
static inline void RENAME(rgb24tobgr24)(const uint8_t *src, uint8_t *dst, int src_size) |
|
|
|
|
{ |
|
|
|
@ -2572,7 +2555,9 @@ static av_cold void RENAME(rgb2rgb_init)(void) |
|
|
|
|
rgb24to15 = RENAME(rgb24to15); |
|
|
|
|
rgb24to16 = RENAME(rgb24to16); |
|
|
|
|
rgb24tobgr24 = RENAME(rgb24tobgr24); |
|
|
|
|
#if COMPILE_TEMPLATE_MMXEXT |
|
|
|
|
shuffle_bytes_2103 = RENAME(shuffle_bytes_2103); |
|
|
|
|
#endif |
|
|
|
|
rgb32tobgr16 = RENAME(rgb32tobgr16); |
|
|
|
|
rgb32tobgr15 = RENAME(rgb32tobgr15); |
|
|
|
|
yv12toyuy2 = RENAME(yv12toyuy2); |
|
|
|
|