summaryrefslogtreecommitdiff
path: root/include/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'include/kernel')
-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;