neon filters: support optional color space conversion
[libpicofe.git] / arm / neon_eagle2x.Sinc
index cfbd303..ec2ba0d 100644 (file)
         vld1.16 {d27[3]}, [\reg1]       @ S3prev[7] = src[2 * (counter & 7) - 2 + srcstride]\r
     .endif\r
 \r
+    #ifdef DO_BGR_TO_RGB\r
+        bgr1555_to_rgb565 q14, q15, q8, q9, q10\r
+        bgr1555_to_rgb565 q6, q7, q8, q9, q10\r
+    #endif\r
+\r
         ubfx \reg1, \counter, #0, #3    @ reg1 = counter & 7\r
 \r
         lsl \reg1, #2\r
         vbsl q6, \qY, q12               @ E3 = < (X == Y && X == V) ? Y : C >\r
 \r
         vbsl q7, \qY, q12               @ E4 = < (Z == Y && Z == W) ? Y : C >\r
+\r
+    #ifdef DO_BGR_TO_RGB\r
+        bgr1555_to_rgb565 q14, q15, q0, q1, q2\r
+        bgr1555_to_rgb565 q6, q7, q0, q1, q2\r
+    #endif\r
+\r
         vst2.16 {q14-q15}, [\aldst1]!   @ [dst] = E1,E2; dst1 += 2*2*8\r
 \r
         cmp \counter, #8\r
         vbsl q6, \qY, q12               @ E3 = < (X == Y && X == V) ? Y : C >\r
 \r
         vbsl q7, \qY, q12               @ E4 = < (Z == Y && Z == W) ? Y : C >\r
+\r
+    #ifdef DO_BGR_TO_RGB\r
+        bgr1555_to_rgb565 q14, q15, q8, q9, q10\r
+        bgr1555_to_rgb565 q6, q7, q8, q9, q10\r
+    #endif\r
+\r
         vst2.16 {q14-q15}, [\aldst1]!   @ [dst] = E1,E2; dst1 += 2*2*8\r
 \r
         vst2.16 {q6-q7}, [\aldst2]!     @ [dst + dststride] = E3,E4; dst2 += 2*2*8\r