Mercurial > mplayer.hg
comparison libswscale/rgb2rgb_template.c @ 23139:10425310d2da
cosmetics: Replace manual tab indentation by \n\t as in the rest of the file.
author | diego |
---|---|
date | Sat, 28 Apr 2007 11:41:11 +0000 |
parents | 9528d1ebe68f |
children | 4d3870361b73 |
comparison
equal
deleted
inserted
replaced
23138:0ed4fd432c9f | 23139:10425310d2da |
---|---|
1370 { | 1370 { |
1371 long idx = 15 - src_size; | 1371 long idx = 15 - src_size; |
1372 uint8_t *s = (uint8_t *) src-idx, *d = dst-idx; | 1372 uint8_t *s = (uint8_t *) src-idx, *d = dst-idx; |
1373 #ifdef HAVE_MMX | 1373 #ifdef HAVE_MMX |
1374 __asm __volatile( | 1374 __asm __volatile( |
1375 " test %0, %0 \n" | 1375 "test %0, %0 \n\t" |
1376 " jns 2f \n" | 1376 "jns 2f \n\t" |
1377 " "PREFETCH" (%1, %0) \n" | 1377 PREFETCH" (%1, %0) \n\t" |
1378 " movq %3, %%mm7 \n" | 1378 "movq %3, %%mm7 \n\t" |
1379 " pxor %4, %%mm7 \n" | 1379 "pxor %4, %%mm7 \n\t" |
1380 " movq %%mm7, %%mm6 \n" | 1380 "movq %%mm7, %%mm6 \n\t" |
1381 " pxor %5, %%mm7 \n" | 1381 "pxor %5, %%mm7 \n\t" |
1382 ASMALIGN(4) | 1382 ASMALIGN(4) |
1383 "1: \n" | 1383 "1: \n\t" |
1384 " "PREFETCH" 32(%1, %0) \n" | 1384 PREFETCH" 32(%1, %0) \n\t" |
1385 " movq (%1, %0), %%mm0 \n" | 1385 "movq (%1, %0), %%mm0 \n\t" |
1386 " movq 8(%1, %0), %%mm1 \n" | 1386 "movq 8(%1, %0), %%mm1 \n\t" |
1387 # ifdef HAVE_MMX2 | 1387 # ifdef HAVE_MMX2 |
1388 " pshufw $177, %%mm0, %%mm3 \n" | 1388 "pshufw $177, %%mm0, %%mm3 \n\t" |
1389 " pshufw $177, %%mm1, %%mm5 \n" | 1389 "pshufw $177, %%mm1, %%mm5 \n\t" |
1390 " pand %%mm7, %%mm0 \n" | 1390 "pand %%mm7, %%mm0 \n\t" |
1391 " pand %%mm6, %%mm3 \n" | 1391 "pand %%mm6, %%mm3 \n\t" |
1392 " pand %%mm7, %%mm1 \n" | 1392 "pand %%mm7, %%mm1 \n\t" |
1393 " pand %%mm6, %%mm5 \n" | 1393 "pand %%mm6, %%mm5 \n\t" |
1394 " por %%mm3, %%mm0 \n" | 1394 "por %%mm3, %%mm0 \n\t" |
1395 " por %%mm5, %%mm1 \n" | 1395 "por %%mm5, %%mm1 \n\t" |
1396 # else | 1396 # else |
1397 " movq %%mm0, %%mm2 \n" | 1397 "movq %%mm0, %%mm2 \n\t" |
1398 " movq %%mm1, %%mm4 \n" | 1398 "movq %%mm1, %%mm4 \n\t" |
1399 " pand %%mm7, %%mm0 \n" | 1399 "pand %%mm7, %%mm0 \n\t" |
1400 " pand %%mm6, %%mm2 \n" | 1400 "pand %%mm6, %%mm2 \n\t" |
1401 " pand %%mm7, %%mm1 \n" | 1401 "pand %%mm7, %%mm1 \n\t" |
1402 " pand %%mm6, %%mm4 \n" | 1402 "pand %%mm6, %%mm4 \n\t" |
1403 " movq %%mm2, %%mm3 \n" | 1403 "movq %%mm2, %%mm3 \n\t" |
1404 " movq %%mm4, %%mm5 \n" | 1404 "movq %%mm4, %%mm5 \n\t" |
1405 " pslld $16, %%mm2 \n" | 1405 "pslld $16, %%mm2 \n\t" |
1406 " psrld $16, %%mm3 \n" | 1406 "psrld $16, %%mm3 \n\t" |
1407 " pslld $16, %%mm4 \n" | 1407 "pslld $16, %%mm4 \n\t" |
1408 " psrld $16, %%mm5 \n" | 1408 "psrld $16, %%mm5 \n\t" |
1409 " por %%mm2, %%mm0 \n" | 1409 "por %%mm2, %%mm0 \n\t" |
1410 " por %%mm4, %%mm1 \n" | 1410 "por %%mm4, %%mm1 \n\t" |
1411 " por %%mm3, %%mm0 \n" | 1411 "por %%mm3, %%mm0 \n\t" |
1412 " por %%mm5, %%mm1 \n" | 1412 "por %%mm5, %%mm1 \n\t" |
1413 # endif | 1413 # endif |
1414 " "MOVNTQ" %%mm0, (%2, %0) \n" | 1414 MOVNTQ" %%mm0, (%2, %0) \n\t" |
1415 " "MOVNTQ" %%mm1, 8(%2, %0) \n" | 1415 MOVNTQ" %%mm1, 8(%2, %0) \n\t" |
1416 " add $16, %0 \n" | 1416 "add $16, %0 \n\t" |
1417 " js 1b \n" | 1417 "js 1b \n\t" |
1418 " "SFENCE" \n" | 1418 SFENCE" \n\t" |
1419 " "EMMS" \n" | 1419 EMMS" \n\t" |
1420 "2: \n" | 1420 "2: \n\t" |
1421 : "+&r"(idx) | 1421 : "+&r"(idx) |
1422 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one) | 1422 : "r" (s), "r" (d), "m" (mask32b), "m" (mask32r), "m" (mmx_one) |
1423 : "memory"); | 1423 : "memory"); |
1424 #endif | 1424 #endif |
1425 for (; idx<15; idx+=4) { | 1425 for (; idx<15; idx+=4) { |