From 7d34210fc73a100f7e04efc9af3c69636302dc86 Mon Sep 17 00:00:00 2001 From: Princess of Sleeping Date: Tue, 11 Aug 2020 12:46:29 +0900 Subject: Refactor ksceKernelCpuUnrestrictedMemcpy apply memcpy and volatile --- include/kernel/kernel/cpu.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'include/kernel') diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h index e60292c..b3ad11e 100644 --- a/include/kernel/kernel/cpu.h +++ b/include/kernel/kernel/cpu.h @@ -2,6 +2,7 @@ #define _PSP2_KERNEL_CPU_H_ #include +#include #ifdef __cplusplus extern "C" { @@ -89,15 +90,13 @@ static inline int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, Sce { int prev_dacr; - asm ("mrc p15, 0, %0, c3, c0, 0" : "=r" (prev_dacr)); - asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000)); + asm volatile("mrc p15, 0, %0, c3, c0, 0" : "=r" (prev_dacr)); + asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (0xFFFF0000)); - for (size_t i=0; i < len; i++) { - ((char *) dst)[i] = ((char *) src)[i]; - } + memcpy(dst, src, len); sceKernelCpuDcacheWritebackRange((void *)((uintptr_t)dst & ~0x1F), (len + 0x1F) & ~0x1F); - asm ("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr)); + asm volatile("mcr p15, 0, %0, c3, c0, 0" :: "r" (prev_dacr)); return 0; } -- cgit v1.2.3