Mercurial > libavcodec.hg
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" |