|
|
|
@ -1668,7 +1668,7 @@ DEINT_FF((%%REGd, %1), (%%REGd, %1, 2), (%0, %1, 8) , (%%REGd, %1, 4)) |
|
|
|
|
*/ |
|
|
|
|
static inline void RENAME(deInterlaceL5)(uint8_t src[], int stride, uint8_t *tmp, uint8_t *tmp2) |
|
|
|
|
{ |
|
|
|
|
#if TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW |
|
|
|
|
#if (TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS |
|
|
|
|
src+= stride*4; |
|
|
|
|
__asm__ volatile( |
|
|
|
|
"lea (%0, %1), %%"REG_a" \n\t" |
|
|
|
@ -1728,7 +1728,7 @@ DEINT_L5(%%mm1, %%mm0, (%%REGd, %1, 2), (%0, %1, 8) , (%%REGd, %1, 4)) |
|
|
|
|
: : "r" (src), "r" ((x86_reg)stride), "r"(tmp), "r"(tmp2) |
|
|
|
|
: "%"REG_a, "%"REG_d |
|
|
|
|
); |
|
|
|
|
#else //TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW
|
|
|
|
|
#else //(TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS
|
|
|
|
|
int x; |
|
|
|
|
src+= stride*4; |
|
|
|
|
for(x=0; x<8; x++){ |
|
|
|
@ -1757,7 +1757,7 @@ DEINT_L5(%%mm1, %%mm0, (%%REGd, %1, 2), (%0, %1, 8) , (%%REGd, %1, 4)) |
|
|
|
|
|
|
|
|
|
src++; |
|
|
|
|
} |
|
|
|
|
#endif //TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW
|
|
|
|
|
#endif //(TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -2164,7 +2164,7 @@ static inline void RENAME(tempNoiseReducer)(uint8_t *src, int stride, |
|
|
|
|
|
|
|
|
|
#define FAST_L2_DIFF |
|
|
|
|
//#define L1_DIFF //u should change the thresholds too if u try that one
|
|
|
|
|
#if TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW |
|
|
|
|
#if (TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS |
|
|
|
|
__asm__ volatile( |
|
|
|
|
"lea (%2, %2, 2), %%"REG_a" \n\t" // 3*stride
|
|
|
|
|
"lea (%2, %2, 4), %%"REG_d" \n\t" // 5*stride
|
|
|
|
@ -2453,7 +2453,7 @@ L2_DIFF_CORE((%0, %%REGc) , (%1, %%REGc)) |
|
|
|
|
NAMED_CONSTRAINTS_ADD(b80) |
|
|
|
|
: "%"REG_a, "%"REG_d, "%"REG_c, "memory" |
|
|
|
|
); |
|
|
|
|
#else //TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW
|
|
|
|
|
#else //(TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS
|
|
|
|
|
{ |
|
|
|
|
int y; |
|
|
|
|
int d=0; |
|
|
|
@ -2536,7 +2536,7 @@ Switch between |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif //TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW
|
|
|
|
|
#endif //(TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW) && HAVE_6REGS
|
|
|
|
|
} |
|
|
|
|
#endif //TEMPLATE_PP_ALTIVEC
|
|
|
|
|
|
|
|
|
@ -3093,11 +3093,11 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ |
|
|
|
|
static inline void RENAME(blockCopy)(uint8_t dst[], int dstStride, const uint8_t src[], int srcStride, |
|
|
|
|
int levelFix, int64_t *packedOffsetAndScale) |
|
|
|
|
{ |
|
|
|
|
#if !TEMPLATE_PP_MMX |
|
|
|
|
#if !TEMPLATE_PP_MMX || !HAVE_6REGS |
|
|
|
|
int i; |
|
|
|
|
#endif |
|
|
|
|
if(levelFix){ |
|
|
|
|
#if TEMPLATE_PP_MMX |
|
|
|
|
#if TEMPLATE_PP_MMX && HAVE_6REGS |
|
|
|
|
__asm__ volatile( |
|
|
|
|
"movq (%%"REG_a"), %%mm2 \n\t" // packedYOffset
|
|
|
|
|
"movq 8(%%"REG_a"), %%mm3 \n\t" // packedYScale
|
|
|
|
@ -3174,13 +3174,13 @@ SCALED_CPY((%%REGa, %4), (%%REGa, %4, 2), (%%REGd, %5), (%%REGd, %5, 2)) |
|
|
|
|
"r" ((x86_reg)dstStride) |
|
|
|
|
: "%"REG_d |
|
|
|
|
); |
|
|
|
|
#else //TEMPLATE_PP_MMX
|
|
|
|
|
#else //TEMPLATE_PP_MMX && HAVE_6REGS
|
|
|
|
|
for(i=0; i<8; i++) |
|
|
|
|
memcpy( &(dst[dstStride*i]), |
|
|
|
|
&(src[srcStride*i]), BLOCK_SIZE); |
|
|
|
|
#endif //TEMPLATE_PP_MMX
|
|
|
|
|
#endif //TEMPLATE_PP_MMX && HAVE_6REGS
|
|
|
|
|
}else{ |
|
|
|
|
#if TEMPLATE_PP_MMX |
|
|
|
|
#if TEMPLATE_PP_MMX && HAVE_6REGS |
|
|
|
|
__asm__ volatile( |
|
|
|
|
"lea (%0,%2), %%"REG_a" \n\t" |
|
|
|
|
"lea (%1,%3), %%"REG_d" \n\t" |
|
|
|
@ -3207,11 +3207,11 @@ SIMPLE_CPY((%%REGa, %2), (%%REGa, %2, 2), (%%REGd, %3), (%%REGd, %3, 2)) |
|
|
|
|
"r" ((x86_reg)dstStride) |
|
|
|
|
: "%"REG_a, "%"REG_d |
|
|
|
|
); |
|
|
|
|
#else //TEMPLATE_PP_MMX
|
|
|
|
|
#else //TEMPLATE_PP_MMX && HAVE_6REGS
|
|
|
|
|
for(i=0; i<8; i++) |
|
|
|
|
memcpy( &(dst[dstStride*i]), |
|
|
|
|
&(src[srcStride*i]), BLOCK_SIZE); |
|
|
|
|
#endif //TEMPLATE_PP_MMX
|
|
|
|
|
#endif //TEMPLATE_PP_MMX && HAVE_6REGS
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -3363,7 +3363,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ |
|
|
|
|
// with the L1 Cache of the P4 ... or only a few blocks at a time or something
|
|
|
|
|
for(x=0; x<width; x+=BLOCK_SIZE){ |
|
|
|
|
|
|
|
|
|
#if TEMPLATE_PP_MMXEXT |
|
|
|
|
#if TEMPLATE_PP_MMXEXT && HAVE_6REGS |
|
|
|
|
/*
|
|
|
|
|
prefetchnta(srcBlock + (((x>>2)&6) + 5)*srcStride + 32); |
|
|
|
|
prefetchnta(srcBlock + (((x>>2)&6) + 6)*srcStride + 32); |
|
|
|
@ -3499,7 +3499,7 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[ |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if TEMPLATE_PP_MMXEXT |
|
|
|
|
#if TEMPLATE_PP_MMXEXT && HAVE_6REGS |
|
|
|
|
/*
|
|
|
|
|
prefetchnta(srcBlock + (((x>>2)&6) + 5)*srcStride + 32); |
|
|
|
|
prefetchnta(srcBlock + (((x>>2)&6) + 6)*srcStride + 32); |
|
|
|
|