drc: allow xor imm 0
[pcsx_rearmed.git] / frontend / arm_utils.s
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
12 bgr555_to_rgb565:
13     mov         r3, #0x03e0
14     vdup.16     q15, r3
15     mov         r2, r2, lsr #6
16 0:
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