[svn] / trunk / xvidcore / src / motion / x86_asm / sad_xmm.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/motion/x86_asm/sad_xmm.asm

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

revision 850, Sat Feb 15 08:39:17 2003 UTC revision 851, Sat Feb 15 15:22:19 2003 UTC
# Line 1  Line 1 
1  ;/*****************************************************************************  ;/**************************************************************************
2  ; *  ; *
3  ; *  XVID MPEG-4 VIDEO CODEC  ; *  XVID MPEG-4 VIDEO CODEC
4  ; *  xmm (extended mmx) sum of absolute difference  ; *     xmm sum of absolute difference
5  ; *  ; *
6  ; *  Copyright(C) 2002 Peter Ross <pross@xvid.org>  ; *     This program is an implementation of a part of one or more MPEG-4
7  ; *  Copyright(C) 2002 Michael Militzer <michael@xvid.org>  ; *     Video tools as specified in ISO/IEC 14496-2 standard.  Those intending
8  ; *  Copyright(C) 2002 Pascal Massimino <skal@planet-d.net>  ; *     to use this software module in hardware or software products are
9    ; *     advised that its use may infringe existing patents or copyrights, and
10    ; *     any such use would be at such party's own risk.  The original
11    ; *     developer of this software module and his/her company, and subsequent
12    ; *     editors and their companies, will have no liability for use of this
13    ; *     software or modifications or derivatives thereof.
14  ; *  ; *
15  ; *  This file is part of XviD, a free MPEG-4 video encoder/decoder  ; *     This program is free software; you can redistribute it and/or modify
16  ; *  ; *     it under the terms of the GNU General Public License as published by
 ; *  XviD is free software; you can redistribute it and/or modify it  
 ; *  under the terms of the GNU General Public License as published by  
17  ; *  the Free Software Foundation; either version 2 of the License, or  ; *  the Free Software Foundation; either version 2 of the License, or
18  ; *  (at your option) any later version.  ; *  (at your option) any later version.
19  ; *  ; *
# Line 21  Line 24 
24  ; *  ; *
25  ; *  You should have received a copy of the GNU General Public License  ; *  You should have received a copy of the GNU General Public License
26  ; *  along with this program; if not, write to the Free Software  ; *  along with this program; if not, write to the Free Software
27  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  ; *     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 ; *  
 ; *  Under section 8 of the GNU General Public License, the copyright  
 ; *  holders of XVID explicitly forbid distribution in the following  
 ; *  countries:  
 ; *  
 ; *    - Japan  
 ; *    - United States of America  
28  ; *  ; *
29  ; *  Linking XviD statically or dynamically with other modules is making a  ; *************************************************************************/
30  ; *  combined work based on XviD.  Thus, the terms and conditions of the  
31  ; *  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.  
32  ; *  ; *
33  ; *  Note that people who make modified versions of XviD are not obligated  ; *     History:
 ; *  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.  
34  ; *  ; *
35  ; * $Id: sad_xmm.asm,v 1.5 2002-11-17 00:32:06 edgomez Exp $  ; * 23.07.2002  sad8bi_xmm; <pross@xvid.org>
36    ; * 04.06.2002  rewrote some funcs (XMM mainly)     -Skal-
37    ; * 17.11.2001  bugfix and small improvement for dev16_xmm,
38    ; *             removed terminate early in sad16_xmm (Isibaar)
39    ; *     12.11.2001      inital version; (c)2001 peter ross <pross@cs.rmit.edu.au>
40  ; *  ; *
41  ; *************************************************************************/  ; *************************************************************************/
42    
# Line 373  Line 357 
357    
358      mov eax, [esp+ 4] ; Src      mov eax, [esp+ 4] ; Src
359    
360    
361      pxor mm5, mm5 ; sums      pxor mm5, mm5 ; sums
362      pxor mm6, mm6      pxor mm6, mm6
363    
# Line 401  Line 386 
386    
387      movd eax, mm6      movd eax, mm6
388      ret      ret
389    
390    cglobal sad16v_xmm
391    
392    ;===========================================================================
393    ;int sad16v_xmm(const uint8_t * const cur,
394    ;               const uint8_t * const ref,
395    ;               const uint32_t stride,
396    ;               int* sad8);
397    ;===========================================================================
398    align 16
399    sad16v_xmm:
400        push ebx
401        mov eax, [esp+4+ 4] ; Src1
402        mov edx, [esp+4+ 8] ; Src2
403        mov ecx, [esp+4+12] ; Stride
404        mov ebx, [esp+4+16] ; sad ptr
405    
406        pxor mm5, mm5 ; accum1
407        pxor mm6, mm6 ; accum2
408        pxor mm7, mm7 ; total
409        SAD_16x16_SSE
410        SAD_16x16_SSE
411        SAD_16x16_SSE
412        SAD_16x16_SSE
413        SAD_16x16_SSE
414        SAD_16x16_SSE
415        SAD_16x16_SSE
416        SAD_16x16_SSE
417        paddusw mm7, mm5
418        paddusw mm7, mm6
419        movd [ebx], mm5
420        movd [ebx+4], mm6
421    
422        pxor mm5, mm5 ; accum1
423        pxor mm6, mm6 ; accum2
424        SAD_16x16_SSE
425        SAD_16x16_SSE
426        SAD_16x16_SSE
427        SAD_16x16_SSE
428        SAD_16x16_SSE
429        SAD_16x16_SSE
430        SAD_16x16_SSE
431        SAD_16x16_SSE
432        paddusw mm7, mm5
433        paddusw mm7, mm6
434        movd [ebx+8], mm5
435        movd [ebx+12], mm6
436    
437        movd eax, mm7
438        pop ebx
439        ret
440    ;--------
441    
442    

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

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