neon filters: minor optimization from M-HT
[libpicofe.git] / arm / neon_scale2x.Sinc
index 774f7ff..658086b 100644 (file)
         vtbl.8 d17, {d28, d29}, d17     @ S2prev[7] = src[reg1 - 1]\r
 \r
         vorr q10, q2, q3                @ C0 = < B == H || D == F >\r
-        and \reg1, \counter, #7\r
 \r
         vceq.i16 q2, q14, \qH           @ tmp2 = < D == H >\r
 \r
         vbsl q3, q12, q15               @ E3 = < (C0 || !(H == F)) ? E : F >\r
 \r
     #ifdef DO_BGR_TO_RGB\r
-        bgr1555_to_rgb565 q0, q1, q12, q14, q15\r
-        bgr1555_to_rgb565 q2, q3, q12, q14, q15\r
+        bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1\r
+        bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1\r
     #endif\r
 \r
+        and \reg1, \counter, #7\r
+\r
         vst2.16 {q0-q1}, [\dst1]        @ [dst] = E0,E1\r
 \r
         bic \counter, \counter, #7\r
         vbsl q3, q12, q15               @ E3 = < (C0 || !(H == F)) ? E : F >\r
 \r
     #ifdef DO_BGR_TO_RGB\r
-        bgr1555_to_rgb565 q0, q1, q12, q14, q15\r
-        bgr1555_to_rgb565 q2, q3, q12, q14, q15\r
+        bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1\r
+        bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1\r
     #endif\r
 \r
         vst2.16 {q0-q1}, [\aldst1]!     @ [dst] = E0,E1; dst1 += 2*2*8\r
         vbsl q3, q12, q15               @ E3 = < (C0 || !(H == F)) ? E : F >\r
 \r
     #ifdef DO_BGR_TO_RGB\r
-        bgr1555_to_rgb565 q0, q1, q12, q14, q15\r
-        bgr1555_to_rgb565 q2, q3, q12, q14, q15\r
+        bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1\r
+        bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1\r
     #endif\r
 \r
         vst2.16 {q0-q1}, [\aldst1]!     @ [dst] = E0,E1; dst1 += 2*2*8\r