X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fcspace_neon.s;h=b458f06a760fea5355d98e3b9b76fca3dddf8263;hp=d13192303c079d58f76397b0a674325f185fccf8;hb=a48745850385e49bf1ca9f8c4e98d925032a8a06;hpb=a80ae4a0353fce94df700ec84222d3c56c3d813a diff --git a/frontend/cspace_neon.s b/frontend/cspace_neon.s index d1319230..b458f06a 100644 --- a/frontend/cspace_neon.s +++ b/frontend/cspace_neon.s @@ -13,11 +13,13 @@ .global bgr555_to_rgb565 bgr555_to_rgb565: + pld [r1] mov r3, #0x07c0 vdup.16 q15, r3 subs r2, r2, #64 blt btr16_end64 0: + pld [r1, #64*2] vldmia r1!, {q0-q3} vshl.u16 q4, q0, #11 vshl.u16 q5, q1, #11 @@ -74,12 +76,14 @@ btr16_end16: .global bgr888_to_rgb888 bgr888_to_rgb888: + pld [r1] @ r2 /= 48 mov r2, r2, lsr #4 movw r3, #0x5556 movt r3, #0x5555 umull r12,r2, r3, r2 0: + pld [r1, #48*3] vld3.8 {d0-d2}, [r1, :64]! vld3.8 {d3-d5}, [r1, :64]! vswp d0, d2 @@ -94,6 +98,7 @@ bgr888_to_rgb888: .global bgr888_to_rgb565 bgr888_to_rgb565: + pld [r1] @ r2 /= 48 mov r2, r2, lsr #4 movw r3, #0x5556 @@ -103,6 +108,7 @@ bgr888_to_rgb565: mov r3, #0x07e0 vdup.16 q15, r3 0: + pld [r1, #48*3] vld3.8 {d1-d3}, [r1, :64]! vld3.8 {d5-d7}, [r1, :64]! @@ -123,4 +129,37 @@ bgr888_to_rgb565: bx lr +.global rgb888_to_rgb565 +rgb888_to_rgb565: + pld [r1] + @ 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: + pld [r1, #48*3] + 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 d2, d1, #3 @ b + vshr.u8 d6, d5, #3 + vzip.8 d2, d3 @ rb + vzip.8 d6, d7 + vbit q1, q8, q15 + vbit q3, q9, q15 + + vstmia r0!, {d2,d3} + vstmia r0!, {d6,d7} + subs r2, r2, #1 + bne 0b + + bx lr + + @ vim:filetype=armasm