[svn] / trunk / xvidcore / src / dct / x86_asm / idct_sse2_dmitry.asm Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/dct/x86_asm/idct_sse2_dmitry.asm

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

revision 1794, Fri Nov 14 15:43:28 2008 UTC revision 1795, Wed Nov 26 01:04:34 2008 UTC
# Line 19  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  ; * $Id: idct_sse2_dmitry.asm,v 1.7 2008-11-11 20:46:24 Isibaar Exp $  ; * $Id: idct_sse2_dmitry.asm,v 1.8 2008-11-26 01:04:34 Isibaar Exp $
23  ; *  ; *
24  ; ***************************************************************************/  ; ***************************************************************************/
25    
 BITS 32  
   
26  ;=============================================================================  ;=============================================================================
27  ; Macros and other preprocessor constants  ; Macros and other preprocessor constants
28  ;=============================================================================  ;=============================================================================
29    
30  %macro cglobal 1  %include "nasm.inc"
         %ifdef PREFIX  
                 %ifdef MARK_FUNCS  
                         global _%1:function %1.endfunc-%1  
                         %define %1 _%1:function %1.endfunc-%1  
                         %define ENDFUNC .endfunc  
                 %else  
                         global _%1  
                         %define %1 _%1  
                         %define ENDFUNC  
                 %endif  
         %else  
                 %ifdef MARK_FUNCS  
                         global %1:function %1.endfunc-%1  
                         %define ENDFUNC .endfunc  
                 %else  
                         global %1  
                         %define ENDFUNC  
                 %endif  
         %endif  
 %endmacro  
31    
32  %define BITS_INV_ACC    5                           ; 4 or 5 for IEEE  %define BITS_INV_ACC    5                           ; 4 or 5 for IEEE
33  %define SHIFT_INV_ROW   16 - BITS_INV_ACC  %define SHIFT_INV_ROW   16 - BITS_INV_ACC
# Line 67  Line 45 
45  ; Local Data (Read Only)  ; Local Data (Read Only)
46  ;=============================================================================  ;=============================================================================
47    
48  %ifdef FORMAT_COFF  DATA
 SECTION .rodata  
 %else  
 SECTION .rodata align=16  
 %endif  
49    
50  ALIGN 16  ALIGN SECTION_ALIGN
51  tab_i_04:  tab_i_04:
52    dw  16384,  21407,  16384,   8867 ; movq-> w05 w04 w01 w00    dw  16384,  21407,  16384,   8867 ; movq-> w05 w04 w01 w00
53    dw  16384,  -8867,  16384, -21407 ; w13 w12 w09 w08    dw  16384,  -8867,  16384, -21407 ; w13 w12 w09 w08
# Line 171  Line 145 
145  ; Code  ; Code
146  ;=============================================================================  ;=============================================================================
147    
148  SECTION .text  SECTION .rotext align=SECTION_ALIGN
149    
150  cglobal idct_sse2_dmitry  cglobal idct_sse2_dmitry
151    
# Line 330  Line 304 
304  ; void idct_sse2_dmitry(int16_t coeff[64]);  ; void idct_sse2_dmitry(int16_t coeff[64]);
305  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
306    
307  ALIGN 16  ALIGN SECTION_ALIGN
308  idct_sse2_dmitry:  idct_sse2_dmitry:
309    
310    mov eax, [esp + 4]    mov _ECX, prm1
311    
312    DCT_8_INV_ROW_1_SSE2 eax+  0, eax+  0, tab_i_04, rounder_2_0    DCT_8_INV_ROW_1_SSE2 _ECX+  0, _ECX+  0, tab_i_04, rounder_2_0
313    DCT_8_INV_ROW_1_SSE2 eax+ 16, eax+ 16, tab_i_17, rounder_2_1    DCT_8_INV_ROW_1_SSE2 _ECX+ 16, _ECX+ 16, tab_i_17, rounder_2_1
314    DCT_8_INV_ROW_1_SSE2 eax+ 32, eax+ 32, tab_i_26, rounder_2_2    DCT_8_INV_ROW_1_SSE2 _ECX+ 32, _ECX+ 32, tab_i_26, rounder_2_2
315    DCT_8_INV_ROW_1_SSE2 eax+ 48, eax+ 48, tab_i_35, rounder_2_3    DCT_8_INV_ROW_1_SSE2 _ECX+ 48, _ECX+ 48, tab_i_35, rounder_2_3
316    DCT_8_INV_ROW_1_SSE2 eax+ 64, eax+ 64, tab_i_04, rounder_2_4    DCT_8_INV_ROW_1_SSE2 _ECX+ 64, _ECX+ 64, tab_i_04, rounder_2_4
317    DCT_8_INV_ROW_1_SSE2 eax+ 80, eax+ 80, tab_i_35, rounder_2_5    DCT_8_INV_ROW_1_SSE2 _ECX+ 80, _ECX+ 80, tab_i_35, rounder_2_5
318    DCT_8_INV_ROW_1_SSE2 eax+ 96, eax+ 96, tab_i_26, rounder_2_6    DCT_8_INV_ROW_1_SSE2 _ECX+ 96, _ECX+ 96, tab_i_26, rounder_2_6
319    DCT_8_INV_ROW_1_SSE2 eax+112, eax+112, tab_i_17, rounder_2_7    DCT_8_INV_ROW_1_SSE2 _ECX+112, _ECX+112, tab_i_17, rounder_2_7
320    
321    DCT_8_INV_COL_4_SSE2 eax, eax    DCT_8_INV_COL_4_SSE2 _ECX, _ECX
322    
323    ret    ret
324  ENDFUNC  ENDFUNC

Legend:
Removed from v.1794  
changed lines
  Added in v.1795

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