summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorReiko Asakura2020-09-17 15:21:22 -0400
committerReiko Asakura2020-09-17 15:21:22 -0400
commit2e3a7c2cd3c58a72c08318714bc9edb0d782cf2e (patch)
treee670a394fe34537041b0bde9b495f79c7dca881a /include
parentAdd SceIniFileProcessor (diff)
parentFix ksceKernelCpuUnrestrictedMemcpy alignment mistake. (#468) (diff)
downloadvds-libraries-2e3a7c2cd3c58a72c08318714bc9edb0d782cf2e.tar.gz
Merge vitasdk
Diffstat (limited to 'include')
-rw-r--r--include/kernel/kernel/cpu.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h
index b53cb10..356383a 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -95,7 +95,13 @@ static inline int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, Sce
asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000));
memcpy(dst, src, len);
- sceKernelCpuDcacheWritebackRange((void *)((uintptr_t)dst & ~0x1F), (len + 0x1F) & ~0x1F);
+
+ len += (SceSize)(((uintptr_t)dst) & 0x1F);
+
+ dst = (void *)(((uintptr_t)dst) & ~0x1F);
+ len = (len + 0x1F) & ~0x1F;
+
+ sceKernelCpuDcacheWritebackRange(dst, len);
asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr));
return 0;