diff options
author | Reiko Asakura | 2020-09-17 15:21:22 -0400 |
---|---|---|
committer | Reiko Asakura | 2020-09-17 15:21:22 -0400 |
commit | 2e3a7c2cd3c58a72c08318714bc9edb0d782cf2e (patch) | |
tree | e670a394fe34537041b0bde9b495f79c7dca881a /include/kernel | |
parent | Add SceIniFileProcessor (diff) | |
parent | Fix ksceKernelCpuUnrestrictedMemcpy alignment mistake. (#468) (diff) | |
download | vds-libraries-2e3a7c2cd3c58a72c08318714bc9edb0d782cf2e.tar.gz |
Merge vitasdk
Diffstat (limited to 'include/kernel')
-rw-r--r-- | include/kernel/kernel/cpu.h | 8 |
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; |