2 * (C) GraÅžvydas "notaz" Ignotas, 2013
4 * This work is licensed under the terms of GNU GPL version 2 or later.
5 * See the COPYING file in the top-level directory.
8 #include "arm_features.h"
15 .macro bgr555_to_rgb565_one rn
17 and r12, lr, \rn, lsr #5
18 and \rn, lr, \rn, lsr #10
23 .macro pld_ reg offs=#0
29 FUNCTION(bgr555_to_rgb565): @ void *dst, const void *src, int bytes
37 @ src can be unaligned, but that's very rare, so just force it.
38 @ The manual says unaligned ldm should fault, and it does on
39 @ cortex-a78's 32bit mode, but curiously on cortex-a8 it just
40 @ works and loads the data correctly.
46 bgr555_to_rgb565_one r3
49 bgr555_to_rgb565_one r4
50 bgr555_to_rgb565_one r5
51 bgr555_to_rgb565_one r6
52 bgr555_to_rgb565_one r7
53 bgr555_to_rgb565_one r8
54 bgr555_to_rgb565_one r9
55 bgr555_to_rgb565_one r10
66 bgr555_to_rgb565_one r3