drc: allow xor imm 0
[pcsx_rearmed.git] / frontend / arm_utils.s
... / ...
CommitLineData
1/*
2 * (C) GraÅžvydas "notaz" Ignotas, 2010
3 *
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
5 * See the COPYING file in the top-level directory.
6 */
7
8.text
9.align 2
10
11.global bgr555_to_rgb565
12bgr555_to_rgb565:
13 mov r3, #0x03e0
14 vdup.16 q15, r3
15 mov r2, r2, lsr #6
160:
17 vldmia r1!, {q0-q3}
18 vshr.u16 q4, q0, #10
19 vshr.u16 q5, q1, #10
20 vshr.u16 q6, q2, #10
21 vshr.u16 q7, q3, #10
22 vshl.u16 q8, q0, #11
23 vshl.u16 q9, q1, #11
24 vshl.u16 q10, q2, #11
25 vshl.u16 q11, q3, #11
26 vand q0, q0, q15
27 vand q1, q1, q15
28 vand q2, q2, q15
29 vand q3, q3, q15
30 vshl.u16 q0, q0, #1
31 vshl.u16 q1, q1, #1
32 vshl.u16 q2, q2, #1
33 vshl.u16 q3, q3, #1
34 vorr q0, q0, q4
35 vorr q1, q1, q5
36 vorr q2, q2, q6
37 vorr q3, q3, q7
38 vorr q0, q0, q8
39 vorr q1, q1, q9
40 vorr q2, q2, q10
41 vorr q3, q3, q11
42 vstmia r0!, {q0-q3}
43 subs r2, r2, #1
44 bne 0b
45
46 bx lr
47
48@ vim:filetype=armasm