| | 402 | static void RENAME(yuv2bgr32_X)(SwsContext *c, const int16_t *lumFilter, |
| | 403 | const int16_t **lumSrc, int lumFilterSize, |
| | 404 | const int16_t *chrFilter, const int16_t **chrUSrc, |
| | 405 | const int16_t **chrVSrc, |
| | 406 | int chrFilterSize, const int16_t **alpSrc, |
| | 407 | uint8_t *dest, int dstW, int dstY) |
| | 408 | { |
| | 409 | x86_reg dummy=0; |
| | 410 | x86_reg dstW_reg = dstW; |
| | 411 | x86_reg uv_off = c->uv_offx2; |
| | 412 | |
| | 413 | if (CONFIG_SWSCALE_ALPHA && c->alpPixBuf) { |
| | 414 | YSCALEYUV2PACKEDX |
| | 415 | YSCALEYUV2RGBX |
| | 416 | YSCALEYUV2PACKEDX_YA(ALP_MMX_FILTER_OFFSET, %%mm0, %%mm3, %%mm6, %%mm1, %%mm7) |
| | 417 | "psraw $3, %%mm1 \n\t" |
| | 418 | "psraw $3, %%mm7 \n\t" |
| | 419 | "packuswb %%mm7, %%mm1 \n\t" |
| | 420 | WRITEBGR32(%4, "%5", %%REGa, %%mm5, %%mm4, %%mm2, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6) |
| | 421 | YSCALEYUV2PACKEDX_END |
| | 422 | } else { |
| | 423 | YSCALEYUV2PACKEDX |
| | 424 | YSCALEYUV2RGBX |
| | 425 | "pcmpeqd %%mm7, %%mm7 \n\t" |
| | 426 | WRITEBGR32(%4, "%5", %%REGa, %%mm5, %%mm4, %%mm2, %%mm7, %%mm0, %%mm1, %%mm3, %%mm6) |
| | 427 | YSCALEYUV2PACKEDX_END |
| | 428 | } |
| | 429 | } |
| | 430 | |