neon filters: support optional color space conversion
[libpicofe.git] / arm / neon_normalxx.Sinc
index 0391e12..0546ac2 100644 (file)
 #define A256 :256\r
 #endif\r
 \r
+.macro bgr1555_to_rgb565 dr0 dr1 t0 t1 t2\r
+        str r0, [sp, #-4]\r
+        mov r0, #0x07c0\r
+        vshl.u16 \t0, \dr0, #11\r
+        vshl.u16 \t1, \dr1, #11\r
+        vshl.u16 \dr0, \dr0, #1\r
+        vshl.u16 \dr1, \dr1, #1\r
+        vdup.16 \t2, r0\r
+        vsri.u16 \t0, \dr0, #11\r
+        vsri.u16 \t1, \dr1, #11\r
+        ldr r0, [sp, #-4]\r
+        vbif \dr0, \t0, \t2\r
+        vbif \dr1, \t1, \t2\r
+.endm\r
 \r
 .macro _neon_normalxx_8_16_line_middle src, dst, pal, counter, reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8, reg9, dststride, dA, dB\r
         ldr \reg1, [\src]                   @ reg1 = src[0-3]\r