summaryrefslogtreecommitdiff
path: root/libavcodec/x86/dsputil_mmx_rnd_template.c
diff options
context:
space:
mode:
authorDavid Conrad <lessen42@gmail.com>2009-04-15 19:10:16 +0000
committerDavid Conrad <lessen42@gmail.com>2009-04-15 19:10:16 +0000
commitc21c835b8d2dae324c544920ac0b3e8d583e0b99 (patch)
tree8b495cd542daf2d7eae47ccfce6896e1c1b47553 /libavcodec/x86/dsputil_mmx_rnd_template.c
parent29382bc1ebe40a9f081c2f71683a57b2d6758189 (diff)
avg_ pixel functions need to use (dst+pix+1)>>1 to average with existing
pixels, not (dst+pix)>>1. This makes the mmx functions bitexact with the C functions. Originally committed as revision 18527 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/x86/dsputil_mmx_rnd_template.c')
-rw-r--r--libavcodec/x86/dsputil_mmx_rnd_template.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/libavcodec/x86/dsputil_mmx_rnd_template.c b/libavcodec/x86/dsputil_mmx_rnd_template.c
index ccfd7e55f4..113b6c38eb 100644
--- a/libavcodec/x86/dsputil_mmx_rnd_template.c
+++ b/libavcodec/x86/dsputil_mmx_rnd_template.c
@@ -306,7 +306,7 @@ static void av_unused DEF(avg, pixels4)(uint8_t *block, const uint8_t *pixels, i
__asm__ volatile(
"movd %0, %%mm0 \n\t"
"movd %1, %%mm1 \n\t"
- PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
+ OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
"movd %%mm2, %0 \n\t"
:"+m"(*block)
:"m"(*pixels)
@@ -326,7 +326,7 @@ static void DEF(avg, pixels8)(uint8_t *block, const uint8_t *pixels, int line_si
__asm__ volatile(
"movq %0, %%mm0 \n\t"
"movq %1, %%mm1 \n\t"
- PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
+ OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
"movq %%mm2, %0 \n\t"
:"+m"(*block)
:"m"(*pixels)
@@ -345,11 +345,11 @@ static void DEF(avg, pixels16)(uint8_t *block, const uint8_t *pixels, int line_s
__asm__ volatile(
"movq %0, %%mm0 \n\t"
"movq %1, %%mm1 \n\t"
- PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
+ OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
"movq %%mm2, %0 \n\t"
"movq 8%0, %%mm0 \n\t"
"movq 8%1, %%mm1 \n\t"
- PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
+ OP_AVG(%%mm0, %%mm1, %%mm2, %%mm6)
"movq %%mm2, 8%0 \n\t"
:"+m"(*block)
:"m"(*pixels)
@@ -370,7 +370,7 @@ static void DEF(avg, pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line
"movq 1%1, %%mm1 \n\t"
"movq %0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, %0 \n\t"
:"+m"(*block)
:"m"(*pixels)
@@ -390,7 +390,7 @@ static av_unused void DEF(avg, pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t
"movq %2, %%mm1 \n\t"
"movq %0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, %0 \n\t"
:"+m"(*dst)
:"m"(*src1), "m"(*src2)
@@ -411,13 +411,13 @@ static void DEF(avg, pixels16_x2)(uint8_t *block, const uint8_t *pixels, int lin
"movq 1%1, %%mm1 \n\t"
"movq %0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, %0 \n\t"
"movq 8%1, %%mm0 \n\t"
"movq 9%1, %%mm1 \n\t"
"movq 8%0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, 8%0 \n\t"
:"+m"(*block)
:"m"(*pixels)
@@ -437,13 +437,13 @@ static av_unused void DEF(avg, pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t
"movq %2, %%mm1 \n\t"
"movq %0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, %0 \n\t"
"movq 8%1, %%mm0 \n\t"
"movq 8%2, %%mm1 \n\t"
"movq 8%0, %%mm3 \n\t"
PAVGB(%%mm0, %%mm1, %%mm2, %%mm6)
- PAVGB(%%mm3, %%mm2, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6)
"movq %%mm0, 8%0 \n\t"
:"+m"(*dst)
:"m"(*src1), "m"(*src2)
@@ -466,9 +466,9 @@ static void DEF(avg, pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line
"movq (%1, %%"REG_a"), %%mm2 \n\t"
PAVGBP(%%mm1, %%mm0, %%mm4, %%mm2, %%mm1, %%mm5)
"movq (%2), %%mm3 \n\t"
- PAVGB(%%mm3, %%mm4, %%mm0, %%mm6)
+ OP_AVG(%%mm3, %%mm4, %%mm0, %%mm6)
"movq (%2, %3), %%mm3 \n\t"
- PAVGB(%%mm3, %%mm5, %%mm1, %%mm6)
+ OP_AVG(%%mm3, %%mm5, %%mm1, %%mm6)
"movq %%mm0, (%2) \n\t"
"movq %%mm1, (%2, %3) \n\t"
"add %%"REG_a", %1 \n\t"
@@ -478,9 +478,9 @@ static void DEF(avg, pixels8_y2)(uint8_t *block, const uint8_t *pixels, int line
"movq (%1, %%"REG_a"), %%mm0 \n\t"
PAVGBP(%%mm1, %%mm2, %%mm4, %%mm0, %%mm1, %%mm5)
"movq (%2), %%mm3 \n\t"
- PAVGB(%%mm3, %%mm4, %%mm2, %%mm6)
+ OP_AVG(%%mm3, %%mm4, %%mm2, %%mm6)
"movq (%2, %3), %%mm3 \n\t"
- PAVGB(%%mm3, %%mm5, %%mm1, %%mm6)
+ OP_AVG(%%mm3, %%mm5, %%mm1, %%mm6)
"movq %%mm2, (%2) \n\t"
"movq %%mm1, (%2, %3) \n\t"
"add %%"REG_a", %1 \n\t"
@@ -533,7 +533,7 @@ static void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int lin
"packuswb %%mm5, %%mm4 \n\t"
"pcmpeqd %%mm2, %%mm2 \n\t"
"paddb %%mm2, %%mm2 \n\t"
- PAVGB(%%mm3, %%mm4, %%mm5, %%mm2)
+ OP_AVG(%%mm3, %%mm4, %%mm5, %%mm2)
"movq %%mm5, (%2, %%"REG_a") \n\t"
"add %3, %%"REG_a" \n\t"
@@ -557,7 +557,7 @@ static void DEF(avg, pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int lin
"packuswb %%mm1, %%mm0 \n\t"
"pcmpeqd %%mm2, %%mm2 \n\t"
"paddb %%mm2, %%mm2 \n\t"
- PAVGB(%%mm3, %%mm0, %%mm1, %%mm2)
+ OP_AVG(%%mm3, %%mm0, %%mm1, %%mm2)
"movq %%mm1, (%2, %%"REG_a") \n\t"
"add %3, %%"REG_a" \n\t"