summaryrefslogtreecommitdiff
path: root/ffmpeg/libpostproc/postprocess_template.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libpostproc/postprocess_template.c')
-rw-r--r--ffmpeg/libpostproc/postprocess_template.c48
1 files changed, 25 insertions, 23 deletions
diff --git a/ffmpeg/libpostproc/postprocess_template.c b/ffmpeg/libpostproc/postprocess_template.c
index ad0404f..74b0ab4 100644
--- a/ffmpeg/libpostproc/postprocess_template.c
+++ b/ffmpeg/libpostproc/postprocess_template.c
@@ -1313,7 +1313,7 @@ DERING_CORE((%0, %1, 8) ,(%%REGd, %1, 4),%%mm2,%%mm4,%%mm0,%%mm3,%%mm5,%%mm1,
"1: \n\t"
: : "r" (src), "r" ((x86_reg)stride), "m" (c->pQPb), "m"(c->pQPb2), "q"(tmp)
- : "%"REG_a, "%"REG_d
+ : "%"REG_a, "%"REG_d, "%"REG_SP
);
#else // HAVE_7REGS && (TEMPLATE_PP_MMXEXT || TEMPLATE_PP_3DNOW)
int y;
@@ -1875,40 +1875,40 @@ static inline void RENAME(deInterlaceMedian)(uint8_t src[], int stride)
// 0 1 2 3 4 5 6 7 8 9
// %0 eax eax+%1 eax+2%1 %0+4%1 edx edx+%1 edx+2%1 %0+8%1 edx+4%1
- "movq (%0), %%mm0 \n\t" //
- "movq (%%"REG_a", %1), %%mm2 \n\t" //
- "movq (%%"REG_a"), %%mm1 \n\t" //
+ "movq (%0), %%mm0 \n\t"
+ "movq (%%"REG_a", %1), %%mm2 \n\t"
+ "movq (%%"REG_a"), %%mm1 \n\t"
"movq %%mm0, %%mm3 \n\t"
- "pmaxub %%mm1, %%mm0 \n\t" //
- "pminub %%mm3, %%mm1 \n\t" //
- "pmaxub %%mm2, %%mm1 \n\t" //
+ "pmaxub %%mm1, %%mm0 \n\t"
+ "pminub %%mm3, %%mm1 \n\t"
+ "pmaxub %%mm2, %%mm1 \n\t"
"pminub %%mm1, %%mm0 \n\t"
"movq %%mm0, (%%"REG_a") \n\t"
- "movq (%0, %1, 4), %%mm0 \n\t" //
- "movq (%%"REG_a", %1, 2), %%mm1 \n\t" //
+ "movq (%0, %1, 4), %%mm0 \n\t"
+ "movq (%%"REG_a", %1, 2), %%mm1 \n\t"
"movq %%mm2, %%mm3 \n\t"
- "pmaxub %%mm1, %%mm2 \n\t" //
- "pminub %%mm3, %%mm1 \n\t" //
- "pmaxub %%mm0, %%mm1 \n\t" //
+ "pmaxub %%mm1, %%mm2 \n\t"
+ "pminub %%mm3, %%mm1 \n\t"
+ "pmaxub %%mm0, %%mm1 \n\t"
"pminub %%mm1, %%mm2 \n\t"
"movq %%mm2, (%%"REG_a", %1, 2) \n\t"
- "movq (%%"REG_d"), %%mm2 \n\t" //
- "movq (%%"REG_d", %1), %%mm1 \n\t" //
+ "movq (%%"REG_d"), %%mm2 \n\t"
+ "movq (%%"REG_d", %1), %%mm1 \n\t"
"movq %%mm2, %%mm3 \n\t"
- "pmaxub %%mm0, %%mm2 \n\t" //
- "pminub %%mm3, %%mm0 \n\t" //
- "pmaxub %%mm1, %%mm0 \n\t" //
+ "pmaxub %%mm0, %%mm2 \n\t"
+ "pminub %%mm3, %%mm0 \n\t"
+ "pmaxub %%mm1, %%mm0 \n\t"
"pminub %%mm0, %%mm2 \n\t"
"movq %%mm2, (%%"REG_d") \n\t"
- "movq (%%"REG_d", %1, 2), %%mm2 \n\t" //
- "movq (%0, %1, 8), %%mm0 \n\t" //
+ "movq (%%"REG_d", %1, 2), %%mm2 \n\t"
+ "movq (%0, %1, 8), %%mm0 \n\t"
"movq %%mm2, %%mm3 \n\t"
- "pmaxub %%mm0, %%mm2 \n\t" //
- "pminub %%mm3, %%mm0 \n\t" //
- "pmaxub %%mm1, %%mm0 \n\t" //
+ "pmaxub %%mm0, %%mm2 \n\t"
+ "pminub %%mm3, %%mm0 \n\t"
+ "pmaxub %%mm1, %%mm0 \n\t"
"pminub %%mm0, %%mm2 \n\t"
"movq %%mm2, (%%"REG_d", %1, 2) \n\t"
@@ -3216,17 +3216,19 @@ static inline void RENAME(duplicate)(uint8_t src[], int stride)
#if TEMPLATE_PP_MMX
__asm__ volatile(
"movq (%0), %%mm0 \n\t"
+ "movq %%mm0, (%0, %1, 4) \n\t"
"add %1, %0 \n\t"
"movq %%mm0, (%0) \n\t"
"movq %%mm0, (%0, %1) \n\t"
"movq %%mm0, (%0, %1, 2) \n\t"
+ "movq %%mm0, (%0, %1, 4) \n\t"
: "+r" (src)
: "r" ((x86_reg)-stride)
);
#else
int i;
uint8_t *p=src;
- for(i=0; i<3; i++){
+ for(i=0; i<5; i++){
p-= stride;
memcpy(p, src, 8);
}