comparison i386/h264dsp_mmx.c @ 6319:4089a1ae6558 libavcodec

remove some movq in ff_h264_idct8_add_mmx. 225->217 cycles on core2.
author lorenm
date Sun, 03 Feb 2008 03:21:47 +0000
parents 1c67967d893b
children ffb2a7b80d6d
comparison
equal deleted inserted replaced
6318:73c09e922744 6319:4089a1ae6558
92 92
93 static inline void h264_idct8_1d(int16_t *block) 93 static inline void h264_idct8_1d(int16_t *block)
94 { 94 {
95 asm volatile( 95 asm volatile(
96 "movq 112(%0), %%mm7 \n\t" 96 "movq 112(%0), %%mm7 \n\t"
97 "movq 80(%0), %%mm5 \n\t" 97 "movq 80(%0), %%mm0 \n\t"
98 "movq 48(%0), %%mm3 \n\t" 98 "movq 48(%0), %%mm3 \n\t"
99 "movq 16(%0), %%mm1 \n\t" 99 "movq 16(%0), %%mm5 \n\t"
100 100
101 "movq %%mm7, %%mm4 \n\t" 101 "movq %%mm0, %%mm4 \n\t"
102 "movq %%mm3, %%mm6 \n\t" 102 "movq %%mm5, %%mm1 \n\t"
103 "movq %%mm5, %%mm0 \n\t"
104 "movq %%mm7, %%mm2 \n\t"
105 "psraw $1, %%mm4 \n\t" 103 "psraw $1, %%mm4 \n\t"
106 "psraw $1, %%mm6 \n\t" 104 "psraw $1, %%mm1 \n\t"
105 "paddw %%mm0, %%mm4 \n\t"
106 "paddw %%mm5, %%mm1 \n\t"
107 "paddw %%mm7, %%mm4 \n\t"
108 "paddw %%mm0, %%mm1 \n\t"
109 "psubw %%mm5, %%mm4 \n\t"
110 "paddw %%mm3, %%mm1 \n\t"
111
112 "psubw %%mm3, %%mm5 \n\t"
113 "psubw %%mm3, %%mm0 \n\t"
114 "paddw %%mm7, %%mm5 \n\t"
107 "psubw %%mm7, %%mm0 \n\t" 115 "psubw %%mm7, %%mm0 \n\t"
108 "psubw %%mm6, %%mm2 \n\t" 116 "psraw $1, %%mm3 \n\t"
109 "psubw %%mm4, %%mm0 \n\t" 117 "psraw $1, %%mm7 \n\t"
110 "psubw %%mm3, %%mm2 \n\t" 118 "psubw %%mm3, %%mm5 \n\t"
111 "psubw %%mm3, %%mm0 \n\t" 119 "psubw %%mm7, %%mm0 \n\t"
112 "paddw %%mm1, %%mm2 \n\t" 120
113
114 "movq %%mm5, %%mm4 \n\t"
115 "movq %%mm1, %%mm6 \n\t"
116 "psraw $1, %%mm4 \n\t"
117 "psraw $1, %%mm6 \n\t"
118 "paddw %%mm5, %%mm4 \n\t"
119 "paddw %%mm1, %%mm6 \n\t"
120 "paddw %%mm7, %%mm4 \n\t"
121 "paddw %%mm5, %%mm6 \n\t"
122 "psubw %%mm1, %%mm4 \n\t"
123 "paddw %%mm3, %%mm6 \n\t"
124
125 "movq %%mm0, %%mm1 \n\t"
126 "movq %%mm4, %%mm3 \n\t" 121 "movq %%mm4, %%mm3 \n\t"
127 "movq %%mm2, %%mm5 \n\t" 122 "movq %%mm1, %%mm7 \n\t"
128 "movq %%mm6, %%mm7 \n\t" 123 "psraw $2, %%mm1 \n\t"
129 "psraw $2, %%mm6 \n\t"
130 "psraw $2, %%mm3 \n\t" 124 "psraw $2, %%mm3 \n\t"
125 "paddw %%mm5, %%mm3 \n\t"
131 "psraw $2, %%mm5 \n\t" 126 "psraw $2, %%mm5 \n\t"
127 "paddw %%mm0, %%mm1 \n\t"
132 "psraw $2, %%mm0 \n\t" 128 "psraw $2, %%mm0 \n\t"
133 "paddw %%mm6, %%mm1 \n\t"
134 "paddw %%mm2, %%mm3 \n\t"
135 "psubw %%mm4, %%mm5 \n\t" 129 "psubw %%mm4, %%mm5 \n\t"
136 "psubw %%mm0, %%mm7 \n\t" 130 "psubw %%mm0, %%mm7 \n\t"
137 131
138 "movq 32(%0), %%mm2 \n\t" 132 "movq 32(%0), %%mm2 \n\t"
139 "movq 96(%0), %%mm6 \n\t" 133 "movq 96(%0), %%mm6 \n\t"