136 |
|
|
137 |
pxor mm4, mm4 |
pxor mm4, mm4 |
138 |
pxor mm5, mm5 |
pxor mm5, mm5 |
139 |
|
%if %1 == 3 ; BGR (24-bit) |
140 |
|
movd mm1, [x_ptr+2] |
141 |
|
movd mm3, [x_ptr+x_stride+2] |
142 |
|
psrlq mm1, 8 ; src[%1...] |
143 |
|
psrlq mm3, 8 ; src[x_stride+%1...] |
144 |
|
%else |
145 |
movd mm1, [x_ptr+%1] ; src[%1...] |
movd mm1, [x_ptr+%1] ; src[%1...] |
146 |
movd mm3, [x_ptr+x_stride+%1] ; src[x_stride+%1...] |
movd mm3, [x_ptr+x_stride+%1] ; src[x_stride+%1...] |
147 |
|
%endif |
148 |
punpcklbw mm1, mm4 ; [ |b |g |r ] |
punpcklbw mm1, mm4 ; [ |b |g |r ] |
149 |
punpcklbw mm3, mm5 ; [ |b |g |r ] |
punpcklbw mm3, mm5 ; [ |b |g |r ] |
150 |
paddw mm6, mm1 ; +[ |b4|g4|r4] |
paddw mm6, mm1 ; +[ |b4|g4|r4] |
244 |
|
|
245 |
pxor mm4, mm4 |
pxor mm4, mm4 |
246 |
pxor mm5, mm5 |
pxor mm5, mm5 |
247 |
|
%if %1 == 3 ; BGR (24-bit) |
248 |
|
movd mm1, [x_ptr+2] |
249 |
|
movd mm3, [x_ptr+x_stride+2] |
250 |
|
psrlq mm1, 8 ; src[%1...] |
251 |
|
psrlq mm3, 8 ; src[x_stride+%1...] |
252 |
|
%else |
253 |
movd mm1, [x_ptr+%1] ; src[%1...] |
movd mm1, [x_ptr+%1] ; src[%1...] |
254 |
movd mm3, [x_ptr+x_stride+%1] ; src[x_stride+%1...] |
movd mm3, [x_ptr+x_stride+%1] ; src[x_stride+%1...] |
255 |
|
%endif |
256 |
punpcklbw mm1, mm4 ; [ |b |g |r ] |
punpcklbw mm1, mm4 ; [ |b |g |r ] |
257 |
punpcklbw mm3, mm5 ; [ |b |g |r ] |
punpcklbw mm3, mm5 ; [ |b |g |r ] |
258 |
paddw mm6, mm1 ; +[ |b4|g4|r4] |
paddw mm6, mm1 ; +[ |b4|g4|r4] |
543 |
MAKE_COLORSPACE yv12_to_bgr_mmx,48, 3,8,2, YV12_TO_BGR, 3, -1 |
MAKE_COLORSPACE yv12_to_bgr_mmx,48, 3,8,2, YV12_TO_BGR, 3, -1 |
544 |
MAKE_COLORSPACE yv12_to_bgra_mmx,48, 4,8,2, YV12_TO_BGR, 4, -1 |
MAKE_COLORSPACE yv12_to_bgra_mmx,48, 4,8,2, YV12_TO_BGR, 4, -1 |
545 |
|
|
546 |
|
NON_EXEC_STACK |
|
%ifidn __OUTPUT_FORMAT__,elf |
|
|
section ".note.GNU-stack" noalloc noexec nowrite progbits |
|
|
%endif |
|
|
|
|