Commit edadbb70 authored by lorenm's avatar lorenm

remove some movq in ff_h264_idct8_add_mmx. 288->280 cycles on core2.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@11825 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 5ad24b56
...@@ -94,44 +94,38 @@ static inline void h264_idct8_1d(int16_t *block) ...@@ -94,44 +94,38 @@ static inline void h264_idct8_1d(int16_t *block)
{ {
asm volatile( asm volatile(
"movq 112(%0), %%mm7 \n\t" "movq 112(%0), %%mm7 \n\t"
"movq 80(%0), %%mm5 \n\t" "movq 80(%0), %%mm0 \n\t"
"movq 48(%0), %%mm3 \n\t" "movq 48(%0), %%mm3 \n\t"
"movq 16(%0), %%mm1 \n\t" "movq 16(%0), %%mm5 \n\t"
"movq %%mm7, %%mm4 \n\t" "movq %%mm0, %%mm4 \n\t"
"movq %%mm3, %%mm6 \n\t" "movq %%mm5, %%mm1 \n\t"
"movq %%mm5, %%mm0 \n\t"
"movq %%mm7, %%mm2 \n\t"
"psraw $1, %%mm4 \n\t"
"psraw $1, %%mm6 \n\t"
"psubw %%mm7, %%mm0 \n\t"
"psubw %%mm6, %%mm2 \n\t"
"psubw %%mm4, %%mm0 \n\t"
"psubw %%mm3, %%mm2 \n\t"
"psubw %%mm3, %%mm0 \n\t"
"paddw %%mm1, %%mm2 \n\t"
"movq %%mm5, %%mm4 \n\t"
"movq %%mm1, %%mm6 \n\t"
"psraw $1, %%mm4 \n\t" "psraw $1, %%mm4 \n\t"
"psraw $1, %%mm6 \n\t" "psraw $1, %%mm1 \n\t"
"paddw %%mm5, %%mm4 \n\t" "paddw %%mm0, %%mm4 \n\t"
"paddw %%mm1, %%mm6 \n\t" "paddw %%mm5, %%mm1 \n\t"
"paddw %%mm7, %%mm4 \n\t" "paddw %%mm7, %%mm4 \n\t"
"paddw %%mm5, %%mm6 \n\t" "paddw %%mm0, %%mm1 \n\t"
"psubw %%mm1, %%mm4 \n\t" "psubw %%mm5, %%mm4 \n\t"
"paddw %%mm3, %%mm6 \n\t" "paddw %%mm3, %%mm1 \n\t"
"psubw %%mm3, %%mm5 \n\t"
"psubw %%mm3, %%mm0 \n\t"
"paddw %%mm7, %%mm5 \n\t"
"psubw %%mm7, %%mm0 \n\t"
"psraw $1, %%mm3 \n\t"
"psraw $1, %%mm7 \n\t"
"psubw %%mm3, %%mm5 \n\t"
"psubw %%mm7, %%mm0 \n\t"
"movq %%mm0, %%mm1 \n\t"
"movq %%mm4, %%mm3 \n\t" "movq %%mm4, %%mm3 \n\t"
"movq %%mm2, %%mm5 \n\t" "movq %%mm1, %%mm7 \n\t"
"movq %%mm6, %%mm7 \n\t" "psraw $2, %%mm1 \n\t"
"psraw $2, %%mm6 \n\t"
"psraw $2, %%mm3 \n\t" "psraw $2, %%mm3 \n\t"
"paddw %%mm5, %%mm3 \n\t"
"psraw $2, %%mm5 \n\t" "psraw $2, %%mm5 \n\t"
"paddw %%mm0, %%mm1 \n\t"
"psraw $2, %%mm0 \n\t" "psraw $2, %%mm0 \n\t"
"paddw %%mm6, %%mm1 \n\t"
"paddw %%mm2, %%mm3 \n\t"
"psubw %%mm4, %%mm5 \n\t" "psubw %%mm4, %%mm5 \n\t"
"psubw %%mm0, %%mm7 \n\t" "psubw %%mm0, %%mm7 \n\t"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment