summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrincess of Sleeping2020-09-16 22:35:40 +0900
committerGitHub2020-09-16 22:35:40 +0900
commit27853595ec2d56cc8a8bd083d102577b08fb999d (patch)
tree1858af04ad8b845d38a9a417d41833c02cad488f
parentAdd SceProcEvent (#466) (diff)
downloadvds-libraries-27853595ec2d56cc8a8bd083d102577b08fb999d.tar.gz
Fix ksceKernelCpuUnrestrictedMemcpy alignment mistake. (#468)
* Fix ksceKernelCpuUnrestrictedMemcpy alignment mistake. * Remove unnecessary if branches
-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 b3ad11e..2a579c7 100644
--- a/include/kernel/kernel/cpu.h
+++ b/include/kernel/kernel/cpu.h
@@ -94,7 +94,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;