]> git.sesse.net Git - qscale/commitdiff
Removed a hard-coded register.
authorsgunderson@bigfoot.com <>
Sun, 3 Feb 2008 17:33:05 +0000 (18:33 +0100)
committersgunderson@bigfoot.com <>
Sun, 3 Feb 2008 17:33:05 +0000 (18:33 +0100)
qscale.c

index 8ceb53eb0ea8565d31cf72df64c8814154c9b991..3bb1b340228ed2172ed779454f261af829c739bb 100644 (file)
--- a/qscale.c
+++ b/qscale.c
@@ -86,7 +86,7 @@ void hscale(float *pix, unsigned char *npix, unsigned w, unsigned h, unsigned nw
                                size_coeffs <<= 1;
                                coeffs = (float *)realloc(coeffs, size_coeffs * sizeof(float));
                        }
-               
+
                        coeffs[num_coeffs++] = f;
                        sum += f;
                }
@@ -95,36 +95,38 @@ void hscale(float *pix, unsigned char *npix, unsigned w, unsigned h, unsigned nw
                        coeffs[pd[x].startcoeff + sx - start] /= sum;
                }
        }
-       
+
        for (y = 0; y < h; ++y) {
                float *sptr = pix + y*sstride;
                unsigned char *dptr = npix + y*dstride;
                unsigned char ch;
                for (x = 0; x < nw; ++x) {
                        float acc;
+                       int tmp;
                        static const float low = 0.0, high = 255.0;
                        asm (
                                "pxor %0, %0               \n"
-                               "xor %%eax, %%eax          \n"
+                               "xor %1, %1                \n"
                                ".lbl2:                    \n"
-                               "movups (%2,%%eax),%%xmm1  \n"
-                               "movups (%1,%%eax),%%xmm2  \n"
+                               "movups (%3,%1),%%xmm1     \n"
+                               "movups (%2,%1),%%xmm2     \n"
                                "mulps %%xmm2,%%xmm1       \n"
                                "addps %%xmm1,%0           \n"
-                               "addl $16,%%eax            \n"
-                               "dec %3                    \n"
+                               "addl $16,%1              \n"
+                               "dec %4                    \n"
                                "jnz .lbl2                 \n"
                                "haddps %0,%0              \n"
                                "haddps %0,%0              \n"
-                               "maxss %4,%0               \n"
-                               "minss %5,%0               \n"
-                               : "=x" (acc)
+                               "maxss %5,%0               \n"
+                               "minss %6,%0               \n"
+                               : "=&x" (acc),
+                                 "=&r" (tmp)
                                : "r" (&coeffs[pd[x].startcoeff]),
                                  "r" (&sptr[pd[x].start]),
                                  "r" ((pd[x].end - pd[x].start + 1)/4),
                                  "m" (low),
                                  "m" (high)
-                               : "eax", "xmm1", "xmm2"
+                               : "xmm1", "xmm2"
                        );
 
 #if 0