gpu_neon: enforce alignment required for asm
authornotaz <notasas@gmail.com>
Mon, 13 Nov 2023 19:04:37 +0000 (21:04 +0200)
committernotaz <notasas@gmail.com>
Mon, 13 Nov 2023 23:38:50 +0000 (01:38 +0200)
libretro/pcsx_rearmed#798

plugins/gpu_neon/psx_gpu/psx_gpu_arm_neon.S
plugins/gpu_neon/psx_gpu_if.c

index f0ba39f..ffbea04 100644 (file)
@@ -6129,6 +6129,7 @@ function(scale2x_tiles8)
   mov r14, r2
 
 0:
+  pld [r1, #1024*2]
   vld1.u16 { q0 }, [r1, :128]!
   vld1.u16 { q2 }, [r1, :128]!
   vmov q1, q0
index ea98ade..a1476f4 100644 (file)
@@ -143,6 +143,9 @@ sync_enhancement_buffers(int x, int y, int w, int h)
     x2 = min(right, s->x + s_w);
     y1 = max(y, s->y);
     y2 = min(bottom, s->y + s_h);
+    // 16-byte align for the asm version
+    x2 += x1 & 7;
+    x1 &= ~7;
     scale2x_tiles8(dst + y1 * 1024*2 + x1 * 2,
         src + y1 * 1024 + x1, (x2 - x1 + 7) / 8u, y2 - y1);
   }