summaryrefslogtreecommitdiff
path: root/libavcodec/i386/h264dsp_mmx.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-11-03 09:59:15 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-11-03 09:59:15 +0000
commit5a1553dee39bf35e5474262526f536298a6cd69f (patch)
tree30d60b0207f2ebefa23c520f5deb120a7e44bfe9 /libavcodec/i386/h264dsp_mmx.c
parent4a6cc06123d969fe3214ff874bc87c1aec529143 (diff)
1 instruction less
Originally committed as revision 6880 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/h264dsp_mmx.c')
-rw-r--r--libavcodec/i386/h264dsp_mmx.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libavcodec/i386/h264dsp_mmx.c b/libavcodec/i386/h264dsp_mmx.c
index 53c04db003..468edd9b71 100644
--- a/libavcodec/i386/h264dsp_mmx.c
+++ b/libavcodec/i386/h264dsp_mmx.c
@@ -348,16 +348,15 @@ static void ff_h264_idct8_dc_add_mmx2(uint8_t *dst, int16_t *block, int stride)
"pavgb %%mm2 , %%mm4 \n\t" /* (q0 - p0 + 256)>>1*/\
"pavgb %%mm5 , %%mm3 \n\t"\
"paddb %%mm4 , %%mm3 \n\t" /* d+128+33*/\
- "pxor %%mm6 , %%mm6 \n\t" /* 0*/\
- "psubb %%mm3 , %%mm6 \n\t" /* 128-33-d*/\
+ "movq "MANGLE(ff_pb_A1)" , %%mm6 \n\t"\
+ "psubusb %%mm3 , %%mm6 \n\t"\
"psubusb "MANGLE(ff_pb_A1)" , %%mm3 \n\t"\
- "psubusb "MANGLE(ff_pb_5F)" , %%mm6 \n\t"\
- "pminub %%mm7 , %%mm3 \n\t"\
"pminub %%mm7 , %%mm6 \n\t"\
- "paddusb %%mm3 , %%mm1 \n\t"\
- "paddusb %%mm6 , %%mm2 \n\t"\
+ "pminub %%mm7 , %%mm3 \n\t"\
"psubusb %%mm6 , %%mm1 \n\t"\
- "psubusb %%mm3 , %%mm2 \n\t"
+ "psubusb %%mm3 , %%mm2 \n\t"\
+ "paddusb %%mm3 , %%mm1 \n\t"\
+ "paddusb %%mm6 , %%mm2 \n\t"
// in: mm0=p1 mm1=p0 mm2=q0 mm3=q1 mm7=(tc&mask) %8=mm_bone
// out: (q1addr) = clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 )