+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)\r
+/* can't use because gas wants ',' before ':' */\r
+#define A128\r
+#define A256\r
+#else\r
+#define A128 :128\r
+#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