]> git.sesse.net Git - qscale/blobdiff - qscale.c
Use local labels instead of hardcoded names, so we can theoretically
[qscale] / qscale.c
index 8dafced51c5f49ef7802d4748cbd0ab615721c4b..5c5ee09448e6cff919825d2ab7f2972a3015cf4c 100644 (file)
--- a/qscale.c
+++ b/qscale.c
@@ -108,14 +108,14 @@ void hscale(float *pix, unsigned char *npix, unsigned w, unsigned h, unsigned nw
                        asm (
                                "pxor %1, %1               \n"
                                "xor %2, %2                \n"
-                               ".lbl2:                    \n"
+                               "0:                        \n"
                                "movups (%4,%2),%%xmm1     \n"
                                "movups (%3,%2),%%xmm2     \n"
                                "mulps %%xmm2,%%xmm1       \n"
                                "addps %%xmm1,%1           \n"
                                "add $16,%2                \n"
                                "dec %5                    \n"
-                               "jnz .lbl2                 \n"
+                               "jnz 0b                    \n"
                                "haddps %1,%1              \n"
                                "haddps %1,%1              \n"
                                "maxss %6,%1               \n"
@@ -129,7 +129,7 @@ void hscale(float *pix, unsigned char *npix, unsigned w, unsigned h, unsigned nw
                                  "r" ((pd[x].end - pd[x].start + 1)/4),
                                  "m" (low),
                                  "m" (high)
-                               : "xmm1", "xmm2"
+                               : "memory", "xmm1", "xmm2"
                        );
 
 #if 0
@@ -231,7 +231,7 @@ void vscale(unsigned char *pix, float *npix, unsigned w, unsigned h, unsigned nh
                                "pxor %%xmm3, %%xmm3          \n"
 
                                /* main loop */
-                               ".lbl:                        \n"
+                               "0:                           \n"
                                
                                /* a zero is useful during unpacking */
                                "pxor %%xmm4, %%xmm4          \n"
@@ -290,7 +290,7 @@ void vscale(unsigned char *pix, float *npix, unsigned w, unsigned h, unsigned nh
                                "add $4, %2                   \n"
                                "add %3, %0                   \n"
                                "dec %1                       \n"
-                               "jnz .lbl                     \n"
+                               "jnz 0b                       \n"
 
                                /* store the values */
                                "movaps %%xmm0, (%4)          \n"