Mercurial > mplayer.hg
comparison postproc/swscale.c @ 2521:b70a77066611
tell the c compiler that the memory changed
author | michael |
---|---|
date | Sun, 28 Oct 2001 19:54:23 +0000 |
parents | b58c43aab619 |
children | cc9d3fd626f0 |
comparison
equal
deleted
inserted
replaced
2520:b58c43aab619 | 2521:b70a77066611 |
---|---|
446 { | 446 { |
447 int yalpha1=yalpha^4095; | 447 int yalpha1=yalpha^4095; |
448 int uvalpha1=uvalpha^4095; | 448 int uvalpha1=uvalpha^4095; |
449 int i; | 449 int i; |
450 | 450 |
451 asm volatile ("\n\t"::: "memory"); | |
452 | |
451 for(i=0;i<dstw;i++) | 453 for(i=0;i<dstw;i++) |
452 { | 454 { |
453 ((uint8_t*)dest)[0] = (buf0[i]*yalpha1+buf1[i]*yalpha)>>19; | 455 ((uint8_t*)dest)[0] = (buf0[i]*yalpha1+buf1[i]*yalpha)>>19; |
454 dest++; | 456 dest++; |
455 } | 457 } |
623 "m" (yalpha1), "m" (uvalpha1) | 625 "m" (yalpha1), "m" (uvalpha1) |
624 : "%eax" | 626 : "%eax" |
625 ); | 627 ); |
626 } | 628 } |
627 #else | 629 #else |
630 asm volatile ("\n\t"::: "memory"); | |
631 | |
628 if(dstbpp==32 || dstbpp==24) | 632 if(dstbpp==32 || dstbpp==24) |
629 { | 633 { |
630 for(i=0;i<dstw;i++){ | 634 for(i=0;i<dstw;i++){ |
631 // vertical linear interpolation && yuv2rgb in a single step: | 635 // vertical linear interpolation && yuv2rgb in a single step: |
632 int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>19)]; | 636 int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>19)]; |
731 : "%eax" | 735 : "%eax" |
732 ); | 736 ); |
733 } | 737 } |
734 #else | 738 #else |
735 //FIXME unroll C loop and dont recalculate UV | 739 //FIXME unroll C loop and dont recalculate UV |
740 asm volatile ("\n\t"::: "memory"); | |
741 | |
736 if(dstbpp==32 || dstbpp==24) | 742 if(dstbpp==32 || dstbpp==24) |
737 { | 743 { |
738 for(i=0;i<dstw;i++){ | 744 for(i=0;i<dstw;i++){ |
739 // vertical linear interpolation && yuv2rgb in a single step: | 745 // vertical linear interpolation && yuv2rgb in a single step: |
740 int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>19)]; | 746 int Y=yuvtab_2568[((buf0[i]*yalpha1+buf1[i]*yalpha)>>19)]; |
848 : "%eax" | 854 : "%eax" |
849 ); | 855 ); |
850 } | 856 } |
851 #else | 857 #else |
852 //FIXME unroll C loop and dont recalculate UV | 858 //FIXME unroll C loop and dont recalculate UV |
859 asm volatile ("\n\t"::: "memory"); | |
860 | |
853 if(dstbpp==32 || dstbpp==24) | 861 if(dstbpp==32 || dstbpp==24) |
854 { | 862 { |
855 for(i=0;i<dstw;i++){ | 863 for(i=0;i<dstw;i++){ |
856 // vertical linear interpolation && yuv2rgb in a single step: | 864 // vertical linear interpolation && yuv2rgb in a single step: |
857 int Y=yuvtab_2568[buf0[i]>>7]; | 865 int Y=yuvtab_2568[buf0[i]>>7]; |