From d6250fd58cd34538244f4b249d4b8afb23f6dcc6 Mon Sep 17 00:00:00 2001 From: Ash Logan Date: Tue, 7 Jun 2022 01:07:01 +1000 Subject: [PATCH] (WiiU) Implement __clear_cache This seems to maybe be a libgcc builtin and even explicit calls to it are removed.. so we have a Makefile workaround! --- wiiu/system/missing_libc_functions.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wiiu/system/missing_libc_functions.c b/wiiu/system/missing_libc_functions.c index 060785d63f..ed66918984 100644 --- a/wiiu/system/missing_libc_functions.c +++ b/wiiu/system/missing_libc_functions.c @@ -142,6 +142,15 @@ long sysconf(int name) { } } +/** + * Intended to replace libgcc's __clear_cache builtin. + * For cores that need it, add -D__clear_cache=wiiu_clear_cache to CFLAGS. + */ +void wiiu_clear_cache (char *beg, char *end) { + DCFlushRange(beg, (uint32_t)(end - beg)); + ICInvalidateRange(beg, (uint32_t)(end - beg)); +} + /** * Implementation of getifaddrs() and freeifaddrs() for WiiU. */