diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
| commit | f7813a5324be39d13ab536c245d15dfc602a7849 (patch) | |
| tree | fad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libpostproc/postprocess_template.c | |
| parent | b7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff) | |
basic type mechanism working
Diffstat (limited to 'ffmpeg/libpostproc/postprocess_template.c')
| -rw-r--r-- | ffmpeg/libpostproc/postprocess_template.c | 48 |
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); } |
