aboutsummaryrefslogtreecommitdiff
path: root/frontend/arm_utils.s
diff options
context:
space:
mode:
authornotaz2011-02-03 23:37:20 +0200
committernotaz2011-02-03 23:37:20 +0200
commitf3a63e25fac571e222b969f0d16c542061190797 (patch)
treed970d76e26d3b3e966b0d79debb47bf23f3e413a /frontend/arm_utils.s
parente0c692d9417fdea51a1deebda1048d1a91f1270f (diff)
downloadpcsx_rearmed-f3a63e25fac571e222b969f0d16c542061190797.tar.gz
pcsx_rearmed-f3a63e25fac571e222b969f0d16c542061190797.tar.bz2
pcsx_rearmed-f3a63e25fac571e222b969f0d16c542061190797.zip
dfxvideo: add bgr888->rgb565 converter for maemo port
Diffstat (limited to 'frontend/arm_utils.s')
-rw-r--r--frontend/arm_utils.s31
1 files changed, 31 insertions, 0 deletions
diff --git a/frontend/arm_utils.s b/frontend/arm_utils.s
index 4736380..4e561f9 100644
--- a/frontend/arm_utils.s
+++ b/frontend/arm_utils.s
@@ -75,4 +75,35 @@ bgr888_to_rgb888:
bx lr
+.global bgr888_to_rgb565
+bgr888_to_rgb565:
+ @ r2 /= 48
+ mov r2, r2, lsr #4
+ movw r3, #0x5556
+ movt r3, #0x5555
+ umull r12,r2, r3, r2
+
+ mov r3, #0x07e0
+ vdup.16 q15, r3
+0:
+ vld3.8 {d1-d3}, [r1, :64]!
+ vld3.8 {d5-d7}, [r1, :64]!
+
+ vshll.u8 q8, d2, #3 @ g
+ vshll.u8 q9, d6, #3
+ vshr.u8 d0, d3, #3 @ b
+ vshr.u8 d4, d7, #3
+ vzip.8 d0, d1 @ rb
+ vzip.8 d4, d5
+ vbit q0, q8, q15
+ vbit q2, q9, q15
+
+ vstmia r0!, {d0,d1}
+ vstmia r0!, {d4,d5}
+ subs r2, r2, #1
+ bne 0b
+
+ bx lr
+
+
@ vim:filetype=armasm