[xiph-commits] r11538 - branches/theora-playtime/lib/x86_32_vs

illiminable at svn.xiph.org illiminable at svn.xiph.org
Wed Jun 7 10:00:52 PDT 2006


Author: illiminable
Date: 2006-06-07 10:00:47 -0700 (Wed, 07 Jun 2006)
New Revision: 11538

Modified:
   branches/theora-playtime/lib/x86_32_vs/idct_sse2.c
Log:
* idct1 from 34 to 39 cycles, but this one actually works

Modified: branches/theora-playtime/lib/x86_32_vs/idct_sse2.c
===================================================================
--- branches/theora-playtime/lib/x86_32_vs/idct_sse2.c	2006-06-07 16:31:40 UTC (rev 11537)
+++ branches/theora-playtime/lib/x86_32_vs/idct_sse2.c	2006-06-07 17:00:47 UTC (rev 11538)
@@ -616,15 +616,15 @@
         mov     eax, temp_ptr
 
         mov     cx, WORD PTR [esi]
-        add     cx, WORD PTR [edx]
+        imul    cx, WORD PTR [edx]
         add     cx, 15
-        shr     cx, 5
+        sar     cx, 5
 
         /* Write it to mem so can get it to xmm reg */
         mov     [eax], cx
 
         /* Read it from mem */
-        movdqa xmm0, [eax]
+        movq xmm0, QWORD PTR [eax]
 
         /* Put this word in all the spaces */
         pshufd   xmm1, xmm0, 0
@@ -633,15 +633,23 @@
         por      xmm1, xmm2
 
 
+        
         movdqa  [edi], xmm1
         movdqa  [edi+16], xmm1
         movdqa  [edi+32], xmm1
         movdqa  [edi+48], xmm1
 
+        movdqa  [edi+64], xmm1
+        movdqa  [edi+80], xmm1
+        movdqa  [edi+96], xmm1
+        movdqa  [edi+112], xmm1
 
 
 
 
+
+
+
     }
     PERF_BLOCK_END("IDct1 C", perf_idct1_time, perf_idct1_count,perf_idct1_min, 10000);
 #endif



More information about the commits mailing list