neon filters: support optional color space conversion
[libpicofe.git] / arm / neon_scale2x.Sinc
index a3379ca..774f7ff 100644 (file)
         vorn q3, q10, q3                @ tmp3 = < C0 || !(H == F) >\r
 \r
         vbsl q2, q12, q14               @ E2 = < (C0 || !(D == H)) ? E : D >\r
-        vst2.16 {q0-q1}, [\dst1]        @ [dst] = E0,E1\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
+    #endif\r
+\r
+        vst2.16 {q0-q1}, [\dst1]        @ [dst] = E0,E1\r
+\r
         bic \counter, \counter, #7\r
     .ifeqs "\qB", "q11"\r
         add \src1, \src1, \reg1, lsl #1\r
         vorn q3, q10, q3                @ tmp3 = < C0 || !(H == F) >\r
 \r
         vbsl q2, q12, q14               @ E2 = < (C0 || !(D == H)) ? E : D >\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
+    #endif\r
+\r
         vst2.16 {q0-q1}, [\aldst1]!     @ [dst] = E0,E1; dst1 += 2*2*8\r
 \r
         cmp \counter, #8\r
 \r
-        vbsl q3, q12, q15               @ E3 = < (C0 || !(H == F)) ? E : F >\r
-\r
         vst2.16 {q2-q3}, [\aldst2]!     @ [dst + dststride] = E2,E3; dst2 += 2*2*8\r
 \r
         bhi 2b\r
         vorn q3, q10, q3                @ tmp3 = < C0 || !(H == F) >\r
 \r
         vbsl q2, q12, q14               @ E2 = < (C0 || !(D == H)) ? E : D >\r
-        vst2.16 {q0-q1}, [\aldst1]!     @ [dst] = E0,E1; dst1 += 2*2*8\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
+    #endif\r
+\r
+        vst2.16 {q0-q1}, [\aldst1]!     @ [dst] = E0,E1; dst1 += 2*2*8\r
+\r
         vst2.16 {q2-q3}, [\aldst2]!     @ [dst + dststride] = E2,E3; dst2 += 2*2*8\r
 \r
 .endm\r