|
|
@@ -1434,7 +1434,9 @@ static inline void RENAME(planar2x)(const uint8_t *src, uint8_t *dst, int srcWid |
|
|
|
dst+= dstStride; |
|
|
|
|
|
|
|
for (y=1; y<srcHeight; y++) { |
|
|
|
const x86_reg mmxSize= srcWidth&~15; |
|
|
|
x86_reg mmxSize= srcWidth&~15; |
|
|
|
|
|
|
|
if (mmxSize) { |
|
|
|
__asm__ volatile( |
|
|
|
"mov %4, %%"REG_a" \n\t" |
|
|
|
"movq "MANGLE(mmx_ff)", %%mm0 \n\t" |
|
|
@@ -1481,6 +1483,11 @@ static inline void RENAME(planar2x)(const uint8_t *src, uint8_t *dst, int srcWid |
|
|
|
NAMED_CONSTRAINTS_ADD(mmx_ff) |
|
|
|
: "%"REG_a |
|
|
|
); |
|
|
|
} else { |
|
|
|
mmxSize = 1; |
|
|
|
dst[0] = (src[0] * 3 + src[srcStride]) >> 2; |
|
|
|
dst[dstStride] = (src[0] + 3 * src[srcStride]) >> 2; |
|
|
|
} |
|
|
|
|
|
|
|
for (x=mmxSize-1; x<srcWidth-1; x++) { |
|
|
|
dst[2*x +1]= (3*src[x+0] + src[x+srcStride+1])>>2; |
|
|
|