[svn] / branches / release-1_2-branch / xvidcore / src / dct / x86_asm / fdct_sse2_skal.asm Repository:
ViewVC logotype

Diff of /branches/release-1_2-branch/xvidcore/src/dct/x86_asm/fdct_sse2_skal.asm

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

trunk/xvidcore/src/dct/x86_asm/fdct_sse2_skal.asm revision 1382, Mon Mar 22 22:36:25 2004 UTC branches/release-1_2-branch/xvidcore/src/dct/x86_asm/fdct_sse2_skal.asm revision 1820, Fri Nov 28 16:54:45 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: fdct_sse2_skal.asm,v 1.2 2004-03-22 22:36:23 edgomez Exp $  ; * $Id: fdct_sse2_skal.asm,v 1.10 2008-11-26 01:04:34 Isibaar Exp $
23  ; *  ; *
24  ; ***************************************************************************/  ; ***************************************************************************/
25    
26  BITS 32  %include "nasm.inc"
   
 %macro cglobal 1  
   %ifdef PREFIX  
     global _%1  
     %define %1 _%1  
   %else  
     global %1  
   %endif  
 %endmacro  
27    
28  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
29  ;  ;
# Line 65  Line 56 
56  ;  ;
57  ;  * Some more details at: http://skal.planet-d.net/coding/dct.html  ;  * Some more details at: http://skal.planet-d.net/coding/dct.html
58  ;  ;
 ;  
 ;//////////////////////////////////////////////////////////////////////  
 ;  
 ;  == Mean square errors ==  
 ;   0.000 0.001 0.001 0.002 0.000 0.002 0.001 0.000    [0.001]  
 ;   0.035 0.029 0.032 0.032 0.031 0.032 0.034 0.035    [0.032]  
 ;   0.026 0.028 0.027 0.027 0.025 0.028 0.028 0.025    [0.027]  
 ;   0.037 0.032 0.031 0.030 0.028 0.029 0.026 0.031    [0.030]  
 ;   0.000 0.001 0.001 0.002 0.000 0.002 0.001 0.001    [0.001]  
 ;   0.025 0.024 0.022 0.022 0.022 0.022 0.023 0.023    [0.023]  
 ;   0.026 0.028 0.025 0.028 0.030 0.025 0.026 0.027    [0.027]  
 ;   0.021 0.020 0.020 0.022 0.020 0.022 0.017 0.019    [0.020]  
 ;  
 ;  == Abs Mean errors ==  
 ;   0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000    [0.000]  
 ;   0.020 0.001 0.003 0.003 0.000 0.004 0.002 0.003    [0.002]  
 ;   0.000 0.001 0.001 0.001 0.001 0.004 0.000 0.000    [0.000]  
 ;   0.027 0.001 0.000 0.002 0.002 0.002 0.001 0.000    [0.003]  
 ;   0.000 0.000 0.000 0.000 0.000 0.001 0.000 0.001    [-0.000]  
 ;   0.001 0.003 0.001 0.001 0.002 0.001 0.000 0.000    [-0.000]  
 ;   0.000 0.002 0.002 0.001 0.001 0.002 0.001 0.000    [-0.000]  
 ;   0.000 0.002 0.001 0.002 0.001 0.002 0.001 0.001    [-0.000]  
 ;  
 ;  =========================  
 ;  Peak error:   1.0000  
 ;  Peak MSE:     0.0365  
 ;  Overall MSE:  0.0201  
 ;  Peak ME:      0.0265  
 ;  Overall ME:   0.0006  
 ;  
59  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
60  ;  ;
61  ;                          -=IDCT=-  ;                          -=IDCT=-
# Line 103  Line 64 
64  ; descaling) require some unpairable shifting and packing, all on  ; descaling) require some unpairable shifting and packing, all on
65  ; the same CPU unit.  ; the same CPU unit.
66  ;  ;
 ;   THIS IDCT IS NOT IEEE-COMPLIANT: IT WILL FAIL THE [-300,300]  
 ;   INPUT RANGE TEST (because of overflow). But the [-256,255] one  
 ;   is OK, and I'm fine with it (for now;)  
 ;  
 ;  == Mean square errors ==  
 ;   0.007 0.006 0.005 0.007 0.006 0.007 0.005 0.007    [0.006]  
 ;   0.006 0.008 0.007 0.007 0.007 0.008 0.008 0.008    [0.007]  
 ;   0.008 0.008 0.008 0.008 0.007 0.009 0.010 0.007    [0.008]  
 ;   0.007 0.007 0.006 0.007 0.008 0.007 0.006 0.008    [0.007]  
 ;   0.007 0.006 0.006 0.006 0.006 0.005 0.006 0.006    [0.006]  
 ;   0.008 0.007 0.006 0.008 0.007 0.008 0.009 0.009    [0.008]  
 ;   0.008 0.006 0.010 0.008 0.008 0.008 0.007 0.007    [0.008]  
 ;   0.007 0.006 0.006 0.007 0.007 0.006 0.006 0.007    [0.006]  
 ;  
 ;  == Abs Mean errors ==  
 ;   0.001 0.000 0.000 0.001 0.001 0.000 0.000 0.000    [0.000]  
 ;   0.000 0.002 0.002 0.000 0.001 0.001 0.000 0.002    [0.000]  
 ;   0.001 0.002 0.001 0.001 0.001 0.001 0.000 0.001    [-0.001]  
 ;   0.000 0.002 0.000 0.000 0.001 0.000 0.000 0.001    [-0.000]  
 ;   0.000 0.001 0.001 0.001 0.000 0.001 0.000 0.001    [0.000]  
 ;   0.000 0.001 0.001 0.001 0.001 0.000 0.001 0.000    [0.000]  
 ;   0.001 0.001 0.002 0.001 0.001 0.002 0.001 0.001    [0.001]  
 ;   0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000    [0.000]  
 ;  
 ;  =========================  
 ;  
 ;  Peak error:   1.0000  
 ;  Peak MSE:     0.0096  
 ;  Overall MSE:  0.0070  
 ;  Peak ME:      0.0024  
 ;  Overall ME:   0.0001  
 ;  
67  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
68    
69  ;=============================================================================  ;=============================================================================
70  ; Read only data  ; Read only data
71  ;=============================================================================  ;=============================================================================
72    
73  %ifdef FORMAT_COFF  DATA
 SECTION .rodata data  
 %else  
 SECTION .rodata data align=16  
 %endif  
74    
75  ALIGN 16  ALIGN SECTION_ALIGN
76  tan1:    times 8 dw 0x32ec    ; tan( pi/16)  tan1:    times 8 dw 0x32ec    ; tan( pi/16)
77  tan2:    times 8 dw 0x6a0a    ; tan(2pi/16)  (=sqrt(2)-1)  tan2:    times 8 dw 0x6a0a    ; tan(2pi/16)  (=sqrt(2)-1)
78  tan3:    times 8 dw 0xab0e    ; tan(3pi/16)-1  tan3:    times 8 dw 0xab0e    ; tan(3pi/16)-1
# Line 157  Line 82 
82  ; Inverse DCT tables  ; Inverse DCT tables
83  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
84    
85  ALIGN 16  ALIGN SECTION_ALIGN
86  iTab1:  iTab1:
87    dw 0x4000, 0x539f, 0x4000, 0x22a3    dw 0x4000, 0x539f, 0x4000, 0x22a3
88    dw 0x4000, 0xdd5d, 0x4000, 0xac61    dw 0x4000, 0xdd5d, 0x4000, 0xac61
# Line 198  Line 123 
123    dw 0x3b21, 0x14c3, 0x979e, 0xc4df    dw 0x3b21, 0x14c3, 0x979e, 0xc4df
124    dw 0x14c3, 0x587e, 0x587e, 0x979e    dw 0x14c3, 0x587e, 0x587e, 0x979e
125    
126    ; the original rounding trick is by  ALIGN SECTION_ALIGN
127    ; Michel Lespinasse (hi Walken!) <walken@zoy.org>  Walken_Idct_Rounders:
128      dd  65536, 65536, 65536, 65536
129  ALIGN 16    dd   3597,  3597,  3597,  3597
130  Idct_Rnd0: dd  65535, 65535, 65535, 65535    dd   2260,  2260,  2260,  2260
131  Idct_Rnd1: dd   3612,  3612,  3612,  3612    dd   1203,  1203,  1203,  1203
132  Idct_Rnd2: dd   2271,  2271,  2271,  2271    dd      0,     0,     0,     0
133  Idct_Rnd3: dd   1203,  1203,  1203,  1203    dd    120,   120,   120,   120
134  Idct_Rnd4: dd   1023,  1023,  1023,  1023    dd    512,   512,   512,   512
135  Idct_Rnd5: dd    102,   102,   102,   102    dd    512,   512,   512,   512
136  Idct_Rnd6: dd    398,   398,   398,   398  
137  Idct_Rnd7: dd    469,   469,   469,   469    times 8 dw  (65536>>11)
138      times 8 dw  ( 3597>>11)
139  Idct_Sparse_Rnd0: times 4 dw  (65535>>11)    times 8 dw  ( 2260>>11)
 Idct_Sparse_Rnd1: times 4 dw  ( 3612>>11)  
 Idct_Sparse_Rnd2: times 4 dw  ( 2271>>11)  
140    ; other rounders are zero...    ; other rounders are zero...
141    
142  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
143  ; Forward DCT tables  ; Forward DCT tables
144  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
145    
146  ALIGN 16  ALIGN SECTION_ALIGN
147  fTab1:  fTab1:
148    dw 0x4000, 0x4000, 0x58c5, 0x4b42,    dw 0x4000, 0x4000, 0x58c5, 0x4b42,
149    dw 0xdd5d, 0xac61, 0xa73b, 0xcdb7,    dw 0xdd5d, 0xac61, 0xa73b, 0xcdb7,
# Line 262  Line 185 
185    dw 0x28ba, 0x9dac, 0x14c3, 0xc4df    dw 0x28ba, 0x9dac, 0x14c3, 0xc4df
186    
187    
188  ALIGN 16  ALIGN SECTION_ALIGN
189  Fdct_Rnd0: dw  6,8,8,8, 6,8,8,8  Fdct_Rnd0: dw  6,8,8,8, 6,8,8,8
190  Fdct_Rnd1: dw  8,8,8,8, 8,8,8,8  Fdct_Rnd1: dw  8,8,8,8, 8,8,8,8
191  Fdct_Rnd2: dw 10,8,8,8, 8,8,8,8  Fdct_Rnd2: dw 10,8,8,8, 8,8,8,8
# Line 272  Line 195 
195  ; Code  ; Code
196  ;=============================================================================  ;=============================================================================
197    
198  SECTION .text  SECTION .rotext align=SECTION_ALIGN
199    
200  cglobal idct_sse2_skal  cglobal idct_sse2_skal
 cglobal idct_sse2_sparse_skal  
201  cglobal fdct_sse2_skal  cglobal fdct_sse2_skal
202    
203  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
# Line 284  Line 206 
206    
207  %macro iMTX_MULT 4   ; %1=src, %2 = Table to use, %3=rounder, %4=Shift  %macro iMTX_MULT 4   ; %1=src, %2 = Table to use, %3=rounder, %4=Shift
208    
209    movdqa  xmm0, [ecx+%1*16]     ; xmm0 = [01234567]    movdqa  xmm0, [_ECX+%1*16]     ; xmm0 = [01234567]
210    
211      pshuflw xmm0, xmm0, 11011000b ; [02134567]  ; these two shufflings could be
212      pshufhw xmm0, xmm0, 11011000b ; [02134657]  ; integrated in zig-zag orders
213    
   pshuflw xmm0, xmm0, 11011000b ; [0213]  
   pshufhw xmm0, xmm0, 11011000b ; [02134657]  
214    pshufd  xmm4, xmm0, 00000000b ; [02020202]    pshufd  xmm4, xmm0, 00000000b ; [02020202]
215    pshufd  xmm5, xmm0, 10101010b ; [46464646]    pshufd  xmm5, xmm0, 10101010b ; [46464646]
216    pshufd  xmm6, xmm0, 01010101b ; [13131313]    pshufd  xmm6, xmm0, 01010101b ; [13131313]
# Line 309  Line 232 
232    psrad   xmm4, %4        ; => out [7654]    psrad   xmm4, %4        ; => out [7654]
233    
234    packssdw xmm6, xmm4     ; [01237654]    packssdw xmm6, xmm4     ; [01237654]
235    
236    pshufhw xmm6, xmm6, 00011011b ; [01234567]    pshufhw xmm6, xmm6, 00011011b ; [01234567]
237    
238    movdqa  [ecx+%1*16], xmm6    movdqa  [_ECX+%1*16], xmm6
239    
240  %endmacro  %endmacro
241    
# Line 381  Line 305 
305    movdqa xmm3, [%1+0*16] ; x0    movdqa xmm3, [%1+0*16] ; x0
306    movdqa xmm6, [%1+4*16] ; x4    movdqa xmm6, [%1+4*16] ; x4
307    
308      movdqa [%1   ], xmm2  ; we spill 1 reg to perform safe butterflies
309    
310      movdqa xmm2, xmm3
311    psubsw xmm3, xmm6   ; x0-x4 = tm04    psubsw xmm3, xmm6   ; x0-x4 = tm04
312    paddsw xmm6, xmm6   ; 2.x4    paddsw xmm6, xmm2   ; x0+x4 = tp04
313    paddsw xmm6, xmm3   ; x0+x4 = tp04  
314      movdqa xmm2, xmm6
315      psubsw xmm6, xmm7
316      paddsw xmm7, xmm2
317      movdqa xmm2, xmm3
318      psubsw xmm3, xmm5
319      paddsw xmm5, xmm2
320    
321      movdqa xmm2, xmm5
322      psubsw xmm5, xmm0
323      paddsw xmm0, xmm2
324      movdqa xmm2, xmm3
325      psubsw xmm3, xmm4
326      paddsw xmm4, xmm2
327    
328    psubsw xmm3, xmm5   ; tm04-tm26 = a2    movdqa xmm2, [%1]
   psubsw xmm6, xmm7   ; tp04-tp26 = a3  
   paddsw xmm5, xmm5   ; 2.tm26  
   paddsw xmm7, xmm7   ; 2.tp26  
   paddsw xmm5, xmm3   ; tm04+tm26 = a1  
   paddsw xmm7, xmm6   ; tp04+tp26 = a0  
   
   psubsw xmm5, xmm0   ; a1-b1  
   psubsw xmm3, xmm4   ; a2-b2  
   paddsw xmm0, xmm0   ; 2.b1  
   paddsw xmm4, xmm4   ; 2.b2  
   paddsw xmm0, xmm5   ; a1+b1  
   paddsw xmm4, xmm3   ; a2+b2  
329    
330    psraw  xmm5, 6     ; out6    psraw  xmm5, 6     ; out6
331    psraw  xmm3, 6     ; out5    psraw  xmm3, 6     ; out5
# Line 423  Line 351 
351    psraw  xmm2, 6     ; out3    psraw  xmm2, 6     ; out3
352    psraw  xmm6, 6     ; out4    psraw  xmm6, 6     ; out4
353    
354        ; store result
355    
356    movdqa [%1+0*16], xmm1    movdqa [%1+0*16], xmm1
357    movdqa [%1+3*16], xmm2    movdqa [%1+3*16], xmm2
358    movdqa [%1+4*16], xmm6    movdqa [%1+4*16], xmm6
359    movdqa [%1+7*16], xmm7    movdqa [%1+7*16], xmm7
 %endmacro  
   
 ;-----------------------------------------------------------------------------  
 ; Function idct (the straight forward version)  
 ;-----------------------------------------------------------------------------  
360    
361  ALIGN 16  %endmacro
 idct_sse2_skal:  
   mov ecx, [esp+4]  
   iMTX_MULT  0, iTab1, Idct_Rnd0, 11  
   iMTX_MULT  1, iTab2, Idct_Rnd1, 11  
   iMTX_MULT  2, iTab3, Idct_Rnd2, 11  
   iMTX_MULT  3, iTab4, Idct_Rnd3, 11  
   iMTX_MULT  4, iTab1, Idct_Rnd4, 11  
   iMTX_MULT  5, iTab4, Idct_Rnd5, 11  
   iMTX_MULT  6, iTab3, Idct_Rnd6, 11  
   iMTX_MULT  7, iTab2, Idct_Rnd7, 11  
   iLLM_PASS ecx+0  
   ret  
362    
363  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
364  ; Helper macro TEST_ROW (test a null row)  ; Helper macro TEST_ROW (test a null row)
365  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
366    
367  %macro TEST_ROW 2     ; %1:src,  %2:label x8  %macro TEST_ROW 2     ; %1:src,  %2:label x8
368    mov eax, [%1   ]    mov _EAX, [%1   ]
369    mov edx, [%1+ 8]    mov _EDX, [%1+ 8]
370    or  eax, [%1+ 4]    or  _EAX, [%1+ 4]
371    or  edx, [%1+12]    or  _EDX, [%1+12]
372    or  eax, edx    or  _EAX, _EDX
373    jz near %2    jz near %2
374  %endmacro  %endmacro
375    
376  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
377  ; Function idct (this one skips null rows)  ; Function idct (this one skips null rows)
378  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
379    ; IEEE1180 and Walken compatible version
380    
381  ALIGN 16  ALIGN SECTION_ALIGN
382  idct_sse2_sparse_skal:  idct_sse2_skal:
383    
384    mov ecx, [esp+ 4]  ; Src    mov _ECX, prm1  ; Src
385    
386    TEST_ROW ecx, .Row0_Round    TEST_ROW _ECX, .Row0_Round
387    iMTX_MULT  0, iTab1, Idct_Rnd0, 11    iMTX_MULT  0, iTab1, Walken_Idct_Rounders + 16*0, 11
388    jmp .Row1    jmp .Row1
389  .Row0_Round  .Row0_Round:
390    movq mm0, [Idct_Sparse_Rnd0]    movdqa xmm0, [Walken_Idct_Rounders + 16*8 + 8*0]
391    movq [ecx  ], mm0    movdqa [_ECX  ], xmm0
392    movq [ecx+8], mm0  
393    .Row1:
394  .Row1    TEST_ROW _ECX+16, .Row1_Round
395    TEST_ROW ecx+16, .Row1_Round    iMTX_MULT  1, iTab2, Walken_Idct_Rounders + 16*1, 11
   iMTX_MULT  1, iTab2, Idct_Rnd1, 11  
396    jmp .Row2    jmp .Row2
397  .Row1_Round  .Row1_Round:
398    movq mm0, [Idct_Sparse_Rnd1]    movdqa xmm0, [Walken_Idct_Rounders + 16*8 + 16*1]
399    movq [ecx+16  ], mm0    movdqa [_ECX+16  ], xmm0
400    movq [ecx+16+8], mm0  
401    .Row2:
402  .Row2    TEST_ROW _ECX+32, .Row2_Round
403    TEST_ROW ecx+32, .Row2_Round    iMTX_MULT  2, iTab3, Walken_Idct_Rounders + 16*2, 11
   iMTX_MULT  2, iTab3, Idct_Rnd2, 11  
404    jmp .Row3    jmp .Row3
405  .Row2_Round  .Row2_Round:
406    movq mm0, [Idct_Sparse_Rnd2]    movdqa xmm0, [Walken_Idct_Rounders + 16*8 + 16*2]
407    movq [ecx+32  ], mm0    movdqa [_ECX+32  ], xmm0
408    movq [ecx+32+8], mm0  
409    .Row3:
410  .Row3    TEST_ROW _ECX+48, .Row4
411    TEST_ROW ecx+48, .Row4    iMTX_MULT  3, iTab4, Walken_Idct_Rounders + 16*3, 11
412    iMTX_MULT  3, iTab4, Idct_Rnd3, 11  
413    jmp .Row4  .Row4:
414      TEST_ROW _ECX+64, .Row5
415  .Row4    iMTX_MULT  4, iTab1, Walken_Idct_Rounders + 16*4, 11
416    TEST_ROW ecx+64, .Row5  
417    iMTX_MULT  4, iTab1, Idct_Rnd4, 11  .Row5:
418    jmp .Row5    TEST_ROW _ECX+80, .Row6
419      iMTX_MULT  5, iTab4, Walken_Idct_Rounders + 16*5, 11
420  .Row5  
421    TEST_ROW ecx+80, .Row6  .Row6:
422    iMTX_MULT  5, iTab4, Idct_Rnd5, 11    TEST_ROW _ECX+96, .Row7
423      iMTX_MULT  6, iTab3, Walken_Idct_Rounders + 16*6, 11
424  .Row6  
425    TEST_ROW ecx+96, .Row7  .Row7:
426    iMTX_MULT  6, iTab3, Idct_Rnd6, 11    TEST_ROW _ECX+112, .End
427      iMTX_MULT  7, iTab2, Walken_Idct_Rounders + 16*7, 11
428  .Row7  .End:
429    TEST_ROW ecx+112, .End  
430    iMTX_MULT  7, iTab2, Idct_Rnd7, 11    iLLM_PASS _ECX
 .End  
431    
   iLLM_PASS ecx+0  
432    ret    ret
433    ENDFUNC
434    
435  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
436  ; Helper macro fLLM_PASS  ; Helper macro fLLM_PASS
# Line 631  Line 542 
542    
543  %macro fMTX_MULT 3   ; %1=src, %2 = Coeffs, %3=rounders  %macro fMTX_MULT 3   ; %1=src, %2 = Coeffs, %3=rounders
544    
545    movdqa   xmm0, [ecx+%1*16+0]   ; xmm0 = [0123][4567]    movdqa   xmm0, [_ECX+%1*16+0]   ; xmm0 = [0123][4567]
546    pshufhw  xmm1, xmm0, 00011011b ; xmm1 = [----][7654]    pshufhw  xmm1, xmm0, 00011011b ; xmm1 = [----][7654]
547    pshufd   xmm0, xmm0, 01000100b    pshufd   xmm0, xmm0, 01000100b
548    pshufd   xmm1, xmm1, 11101110b    pshufd   xmm1, xmm1, 11101110b
# Line 665  Line 576 
576    
577    psraw    xmm0, 4               ; => [-2048, 2047]    psraw    xmm0, 4               ; => [-2048, 2047]
578    
579    movdqa  [ecx+%1*16+0], xmm0    movdqa  [_ECX+%1*16+0], xmm0
580  %endmacro  %endmacro
581    
582  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
583  ; Function Forward DCT  ; Function Forward DCT
584  ;-----------------------------------------------------------------------------  ;-----------------------------------------------------------------------------
585    
586  ALIGN 16  ALIGN SECTION_ALIGN
587  fdct_sse2_skal:  fdct_sse2_skal:
588    mov ecx, [esp+4]    mov _ECX, prm1
589    fLLM_PASS ecx+0, 3    fLLM_PASS _ECX+0, 3
590    fMTX_MULT  0, fTab1, Fdct_Rnd0    fMTX_MULT  0, fTab1, Fdct_Rnd0
591    fMTX_MULT  1, fTab2, Fdct_Rnd2    fMTX_MULT  1, fTab2, Fdct_Rnd2
592    fMTX_MULT  2, fTab3, Fdct_Rnd1    fMTX_MULT  2, fTab3, Fdct_Rnd1
# Line 685  Line 596 
596    fMTX_MULT  6, fTab3, Fdct_Rnd1    fMTX_MULT  6, fTab3, Fdct_Rnd1
597    fMTX_MULT  7, fTab2, Fdct_Rnd1    fMTX_MULT  7, fTab2, Fdct_Rnd1
598    ret    ret
599    ENDFUNC
600    
601    
602    %ifidn __OUTPUT_FORMAT__,elf
603    section ".note.GNU-stack" noalloc noexec nowrite progbits
604    %endif
605    

Legend:
Removed from v.1382  
changed lines
  Added in v.1820

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