Rev 2736 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2736 | Rev 6619 | ||
---|---|---|---|
Line 745... | Line 745... | ||
745 | push dword 0x01010101 |
745 | push dword 0x01010101 |
746 | movss xmm5,[esp] |
746 | movss xmm5,[esp] |
747 | shufps xmm5,xmm5,0 |
747 | shufps xmm5,xmm5,0 |
748 | .again_blur: |
748 | .again_blur: |
749 | push ecx |
749 | push ecx |
750 | mov edi,screen |
750 | mov edi,[screen_ptr] |
- | 751 | movzx ecx,word[size_x_var] ;SIZE_X*3/4 |
|
- | 752 | lea ecx,[ecx*3] |
|
- | 753 | shr ecx,2 |
|
751 | mov ecx,SIZE_X*3/4 |
754 | ; mov ecx,SIZE_X*3/4 |
752 | xor eax,eax |
755 | xor eax,eax |
753 | rep stosd |
756 | rep stosd |
754 | 757 | if 1 |
|
- | 758 | movzx ebx,word[size_x_var] |
|
- | 759 | movzx ecx,word[size_y_var] |
|
- | 760 | sub ecx,3 |
|
- | 761 | imul ecx,ebx |
|
- | 762 | lea ecx,[ecx*3] |
|
- | 763 | shr ecx,4 |
|
- | 764 | lea ebx,[ebx*3] |
|
755 | mov ecx,(SIZE_X*(SIZE_Y-3))*3/16 |
765 | ; mov ecx,(SIZE_X*(SIZE_Y-3))*3/16 |
756 | .blr: |
766 | .blr: |
757 | @@: |
767 | @@: |
- | 768 | push ecx |
|
758 | movaps xmm0,[edi+SIZE_X*3] |
769 | movups xmm0,[edi+ebx] |
- | 770 | mov ecx,edi |
|
- | 771 | sub ecx,ebx |
|
759 | movaps xmm1,[edi-SIZE_X*3] |
772 | movups xmm1,[ecx] |
760 | movups xmm2,[edi-3] |
773 | movups xmm2,[edi-3] |
761 | movups xmm3,[edi+3] |
774 | movups xmm3,[edi+3] |
Line 762... | Line 775... | ||
762 | 775 | ||
763 | pavgb xmm0,xmm1 |
776 | pavgb xmm0,xmm1 |
764 | pavgb xmm2,xmm3 |
777 | pavgb xmm2,xmm3 |
Line 765... | Line 778... | ||
765 | pavgb xmm0,xmm2 |
778 | pavgb xmm0,xmm2 |
Line 766... | Line 779... | ||
766 | 779 | ||
767 | psubusb xmm0,xmm5 ; importand if fire |
780 | psubusb xmm0,xmm5 ; importand if fire |
768 | 781 | ||
769 | movaps [edi],xmm0 |
782 | movups [edi],xmm0 |
770 | add edi,16 |
783 | add edi,16 |
771 | add esi,16 |
784 | add esi,16 |
772 | 785 | pop ecx |
|
- | 786 | loop .blr |
|
- | 787 | end if |
|
- | 788 | xor eax,eax |
|
773 | loop .blr |
789 | movzx ecx,word[size_x_var] |
774 | 790 | lea ecx,[ecx*3] |
|
775 | xor eax,eax |
791 | shr ecx,2 |
776 | mov ecx,SIZE_X*3/4 |
792 | ; mov ecx,SIZE_X*3/4 |
777 | rep stosd |
793 | rep stosd |
778 | pop ecx |
794 | pop ecx |
Line 788... | Line 804... | ||
788 | push dword 0x01010101 |
804 | push dword 0x01010101 |
789 | push dword 0x01010101 |
805 | push dword 0x01010101 |
790 | movq mm4,[esp] |
806 | movq mm4,[esp] |
791 | .again_blur: |
807 | .again_blur: |
792 | push ecx |
808 | push ecx |
793 | mov edi,screen |
809 | mov edi,[screen_ptr] |
- | 810 | movzx ecx,word[size_x_var] ;SIZE_X*3/4 |
|
794 | mov ecx,SIZE_X*3/4 |
811 | lea ecx,[ecx*3] |
- | 812 | shr ecx,2 |
|
795 | ; pxor mm5,mm5 |
813 | ; pxor mm5,mm5 |
796 | xor eax,eax |
814 | xor eax,eax |
797 | rep stosd |
815 | rep stosd |
- | 816 | movzx ebx,word[size_x_var] |
|
- | 817 | movzx ecx,word[size_y_var] |
|
- | 818 | sub ecx,3 |
|
- | 819 | imul ecx,ebx |
|
- | 820 | lea ecx,[ecx*3] |
|
798 | 821 | shr ecx,3 |
|
- | 822 | lea ebx,[ebx*3] |
|
799 | mov ecx,(SIZE_X*(SIZE_Y-3))*3/8 |
823 | ; mov ecx,(SIZE_X*(SIZE_Y-3))*3/8 |
800 | .blr: |
824 | .blr: |
801 | @@: |
825 | @@: |
802 | movq mm0,[edi+SIZE_X*3] |
826 | movq mm0,[edi+ebx] |
803 | movq mm1,[edi-SIZE_X*3] |
827 | movq mm1,[edi-ebx] |
804 | movq mm2,[edi-3] |
828 | movq mm2,[edi-3] |
805 | movq mm3,[edi+3] |
829 | movq mm3,[edi+3] |
Line 806... | Line 830... | ||
806 | 830 | ||
807 | pavgb mm0,mm1 |
831 | pavgb mm0,mm1 |
Line 815... | Line 839... | ||
815 | add esi,8 |
839 | add esi,8 |
Line 816... | Line 840... | ||
816 | 840 | ||
Line 817... | Line 841... | ||
817 | loop .blr |
841 | loop .blr |
- | 842 | ||
- | 843 | xor eax,eax |
|
- | 844 | mov ecx,[size_x_var] |
|
818 | 845 | lea ecx,[ecx*3] |
|
819 | xor eax,eax |
846 | shr ecx,2 |
820 | mov ecx,SIZE_X*3/4 |
847 | ; SIZE_X*3/4 |
821 | rep stosd |
848 | rep stosd |
822 | pop ecx |
849 | pop ecx |
823 | loop .again_blur |
850 | loop .again_blur |
Line 831... | Line 858... | ||
831 | mov ebp,esp |
858 | mov ebp,esp |
832 | push dword 0x0 |
859 | push dword 0x0 |
833 | push dword 0x01010101 |
860 | push dword 0x01010101 |
834 | .again_blur: |
861 | .again_blur: |
835 | push ecx |
862 | push ecx |
836 | mov edi,screen |
863 | mov edi,[screen_ptr] |
837 | mov ecx,SIZE_X*3/4 |
864 | mov ecx,SIZE_X*3/4 |
838 | pxor mm5,mm5 |
865 | pxor mm5,mm5 |
839 | xor eax,eax |
866 | xor eax,eax |
840 | rep stosd |
867 | rep stosd |