[svn] / trunk / xvidcore / src / image / x86_asm / reduced_mmx.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/image/x86_asm/reduced_mmx.asm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 851, Sat Feb 15 15:22:19 2003 UTC revision 1793, Tue Nov 11 20:46:24 2008 UTC
# Line 1  Line 1 
1  ;/*****************************************************************************  ;/*****************************************************************************
2  ; *  ; *
3  ; *  XVID MPEG-4 VIDEO CODEC  ; *  XVID MPEG-4 VIDEO CODEC
4  ; *   Reduced-Resolution utilities  ; *  - Reduced-Resolution utilities -
5  ; *  ; *
6  ; *  Copyright(C) 2002 Pascal Massimino <skal@planet-d.net>  ; *  Copyright(C) 2002 Pascal Massimino <skal@planet-d.net>
7  ; *  ; *
 ; *  This file is part of XviD, a free MPEG-4 video encoder/decoder  
 ; *  
8  ; *  XviD is free software; you can redistribute it and/or modify it  ; *  XviD is free software; you can redistribute it and/or modify it
9  ; *  under the terms of the GNU General Public License as published by  ; *  under the terms of the GNU General Public License as published by
10  ; *  the Free Software Foundation; either version 2 of the License, or  ; *  the Free Software Foundation; either version 2 of the License, or
# Line 21  Line 19 
19  ; *  along with this program; if not, write to the Free Software  ; *  along with this program; if not, write to the Free Software
20  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21  ; *  ; *
22  ; *  Under section 8 of the GNU General Public License, the copyright  ; * $Id: reduced_mmx.asm,v 1.8 2008-11-11 20:46:24 Isibaar Exp $
 ; *  holders of XVID explicitly forbid distribution in the following  
 ; *  countries:  
 ; *  
 ; *    - Japan  
 ; *    - United States of America  
 ; *  
 ; *  Linking XviD statically or dynamically with other modules is making a  
 ; *  combined work based on XviD.  Thus, the terms and conditions of the  
 ; *  GNU General Public License cover the whole combination.  
 ; *  
 ; *  As a special exception, the copyright holders of XviD give you  
 ; *  permission to link XviD with independent modules that communicate with  
 ; *  XviD solely through the VFW1.1 and DShow interfaces, regardless of the  
 ; *  license terms of these independent modules, and to copy and distribute  
 ; *  the resulting combined work under terms of your choice, provided that  
 ; *  every copy of the combined work is accompanied by a complete copy of  
 ; *  the source code of XviD (the version of XviD used to produce the  
 ; *  combined work), being distributed under the terms of the GNU General  
 ; *  Public License plus this exception.  An independent module is a module  
 ; *  which is not derived from or based on XviD.  
 ; *  
 ; *  Note that people who make modified versions of XviD are not obligated  
 ; *  to grant this special exception for their modified versions; it is  
 ; *  their choice whether to do so.  The GNU General Public License gives  
 ; *  permission to release a modified version without this exception; this  
 ; *  exception also makes it possible to release a modified version which  
 ; *  carries forward this exception.  
 ; *  
 ; * $Id: reduced_mmx.asm,v 1.2 2003-02-15 15:22:18 edgomez Exp $  
23  ; *  ; *
24  ; *************************************************************************/  ; *************************************************************************/
25    
26  bits 32  BITS 32
27    
28  %macro cglobal 1  %macro cglobal 1
29          %ifdef PREFIX          %ifdef PREFIX
30                    %ifdef MARK_FUNCS
31                            global _%1:function %1.endfunc-%1
32                            %define %1 _%1:function %1.endfunc-%1
33                            %define ENDFUNC .endfunc
34                    %else
35                  global _%1                  global _%1
36                  %define %1 _%1                  %define %1 _%1
37                            %define ENDFUNC
38                    %endif
39            %else
40                    %ifdef MARK_FUNCS
41                            global %1:function %1.endfunc-%1
42                            %define ENDFUNC .endfunc
43          %else          %else
44                  global %1                  global %1
45                            %define ENDFUNC
46                    %endif
47          %endif          %endif
48  %endmacro  %endmacro
49    
50  ;===========================================================================  ;===========================================================================
51    
52  section .data  %ifdef FORMAT_COFF
53    SECTION .rodata
54    %else
55    SECTION .rodata align=16
56    %endif
57    
58  align 16  align 16
59  Up31 dw  3, 1, 3, 1  Up31 dw  3, 1, 3, 1
# Line 85  Line 71 
71    
72  ;===========================================================================  ;===========================================================================
73    
74  section .text  SECTION .text
75    
76  cglobal xvid_Copy_Upsampled_8x8_16To8_mmx  cglobal xvid_Copy_Upsampled_8x8_16To8_mmx
77  cglobal xvid_Add_Upsampled_8x8_16To8_mmx  cglobal xvid_Add_Upsampled_8x8_16To8_mmx
# Line 289  Line 275 
275    STORE_1 mm2, mm3    STORE_1 mm2, mm3
276    
277    ret    ret
278    ENDFUNC
279    
280  ;===========================================================================  ;===========================================================================
281  ;  ;
# Line 483  Line 470 
470    STORE_ADD_1 mm2, mm3    STORE_ADD_1 mm2, mm3
471    
472    ret    ret
473    ENDFUNC
474    
475  ;===========================================================================  ;===========================================================================
476  ;  ;
# Line 614  Line 602 
602    STORE_1 mm2, mm3    STORE_1 mm2, mm3
603    
604    ret    ret
605    ENDFUNC
606    
607  ;===========================================================================  ;===========================================================================
608  ;  ;
# Line 722  Line 711 
711    STORE_ADD_1 mm2, mm3    STORE_ADD_1 mm2, mm3
712    
713    ret    ret
714    ENDFUNC
715    
716    
717  ;===========================================================================  ;===========================================================================
# Line 778  Line 768 
768    pop edi    pop edi
769    pop esi    pop esi
770    ret    ret
771    ENDFUNC
772    
773    ; mmx is of no use here. Better use plain ASM. Moreover,    ; mmx is of no use here. Better use plain ASM. Moreover,
774    ; this is for the fun of ASM coding, coz' every modern compiler can    ; this is for the fun of ASM coding, coz' every modern compiler can
# Line 817  Line 808 
808    pop edi    pop edi
809    pop esi    pop esi
810    ret    ret
811    ENDFUNC
812    
813    ; this one's just a little faster than gcc's code. Very little.    ; this one's just a little faster than gcc's code. Very little.
814    
# Line 853  Line 845 
845    pop edi    pop edi
846    pop esi    pop esi
847    ret    ret
848    ENDFUNC
849    
850  ;//////////////////////////////////////////////////////////////////////  ;//////////////////////////////////////////////////////////////////////
851  ;// 16b downsampling 16x16 -> 8x8  ;// 16b downsampling 16x16 -> 8x8
# Line 942  Line 935 
935    COPY_TWO_LINES_1331 ecx + 6*16 +8    COPY_TWO_LINES_1331 ecx + 6*16 +8
936    
937    ret    ret
938    ENDFUNC
939    
940  ;===========================================================================  ;===========================================================================
941  ;  ;
# Line 1006  Line 1000 
1000    DIFF_TWO_LINES_1331 ecx + 6*16 +8    DIFF_TWO_LINES_1331 ecx + 6*16 +8
1001    
1002    ret    ret
1003    ENDFUNC
1004    
1005  ;//////////////////////////////////////////////////////////////////////  ;//////////////////////////////////////////////////////////////////////
1006    
1007    ; pfeewwww... Never Do That On Stage Again. :)    ; pfeewwww... Never Do That On Stage Again. :)
1008    
1009    
1010    %ifidn __OUTPUT_FORMAT__,elf
1011    section ".note.GNU-stack" noalloc noexec nowrite progbits
1012    %endif
1013    

Legend:
Removed from v.851  
changed lines
  Added in v.1793

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4