cdrom: change pause timing again
[pcsx_rearmed.git] / frontend / cspace_neon.S
index 4cb3d4c..3a89fdb 100644 (file)
@@ -23,13 +23,25 @@ FUNCTION(bgr555_to_rgb565): @ dst, src, bytes
     pld         [r1]
     mov         r3, #0x07c0
     vdup.16     q15, r3
+    tst         r0, #8
+    beq         0f
+    @ align the dst
+    vld1.16     {d0}, [r1]!
+    sub         r2, r2, #8
+    vshl.u16    d0, d0, #1
+    vshl.u16    d1, d0, #10
+    vsri.u16    d1, d0, #11
+    vbit        d1, d0, d30
+    vst1.16     {d1}, [r0]!
+0:
     subs        r2, r2, #64
     blt         btr16_end64
 0:
     pld         [r1, #64*2]
     @ Pulls 15-bit BGR color values (which are actually 16 bits) into q0-q3.
     @ example:  q0 = 0111 1110 0101 0011
-    vldmia      r1!, {q0-q3}
+    vld1.16     {d0-d3}, [r1]!
+    vld1.16     {d4-d7}, [r1]!
     @ Shift BGR color 1 bit to the left, discarding MSB and preparing for vbit.
     @ MSB is used for transparency (not needed here, and can mess with green).
     @ example:  q0 = 1111 1100 1010 0110
@@ -102,7 +114,8 @@ FUNCTION(bgr555_to_rgb565_b): @ dst, src, bytes, int brightness2k // 0-0x0800
     vdup.16     q14, r3
 0:
     pld         [r1, #64*2]
-    vldmia      r1!, {q0-q3}
+    vld1.16     {d0-d3}, [r1]!
+    vld1.16     {d4-d7}, [r1]!
     vand.u16    q8,  q0, q14
     vand.u16    q9,  q1, q14
     vand.u16    q10, q2, q14
@@ -259,4 +272,4 @@ FUNCTION(rgb888_to_rgb565): @ dst, src, bytes
     bx          lr
 
 
-@ vim:filetype=armasm
+@ vim:filetype=armasm:expandtab