<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: apps/dsp.c
===================================================================
RCS file: /cvsroot/rockbox/apps/dsp.c,v
retrieving revision 1.44
diff -u -r1.44 dsp.c
--- apps/dsp.c	4 Mar 2006 21:26:47 -0000	1.44
+++ apps/dsp.c	10 Apr 2006 18:11:52 -0000
@@ -797,6 +797,38 @@
         long min = dsp-&gt;clip_min;
         long max = dsp-&gt;clip_max;
 
+        while (count &gt;= 2)
+        {
+            asm volatile ("ldmia %0!, {r0, r1}\n\t"
+                          "ldmia %1!, {r2, r3}\n\t"
+                          "cmp   r0, %3\n\t"
+                          "movlt r0, %3\n\t"
+                          "cmp   r0, %4\n\t"
+                          "movgt r0, %4\n\t"
+                          "cmp   r1, %3\n\t"
+                          "movlt r1, %3\n\t"
+                          "cmp   r1, %4\n\t"
+                          "movgt r1, %4\n\t"
+                          "cmp   r2, %3\n\t"
+                          "movlt r2, %3\n\t"
+                          "cmp   r2, %4\n\t"
+                          "movgt r2, %4\n\t"
+                          "cmp   r3, %3\n\t"
+                          "movlt r3, %3\n\t"
+                          "cmp   r3, %4\n\t"
+                          "movgt r3, %4\n\t"
+                          "and   r0, %6, r0, asr %5\n\t"
+                          "mov   r2, r2, asr %5\n\t"
+                          "orr   r0, r0, r2, lsl #16\n\t"
+                          "and   r1, %6, r1, asr %5\n\t"
+                          "mov   r3, r3, asr %5\n\t"
+                          "orr   r1, r1, r3, lsl #16\n\t"
+                          "stmia %2!, {r0, r1}\n\t"
+                          : "+r" (s0), "+r" (s1), "+r" (dst)
+                          : "r" (min), "r" (max), "r" (scale), "r" (0xffff)
+                          : "r0", "r1", "r2", "r3");
+            count -= 2;
+        }
         while (count-- &gt; 0)
         {
             *dst++ = (short) (clip_sample(*s0++, min, max) &gt;&gt; scale);
</pre></body></html>