Module Name: src Committed By: joerg Date: Fri Jun 16 21:22:14 UTC 2017
Modified Files: src/lib/libc/compiler_rt: Makefile.inc src/sys/external/bsd/compiler_rt/dist/lib/builtins: clear_cache.c Log Message: Implement __clear_cache using __syncicache on PPC To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/lib/libc/compiler_rt/Makefile.inc cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/compiler_rt/Makefile.inc diff -u src/lib/libc/compiler_rt/Makefile.inc:1.33 src/lib/libc/compiler_rt/Makefile.inc:1.34 --- src/lib/libc/compiler_rt/Makefile.inc:1.33 Fri May 26 22:56:50 2017 +++ src/lib/libc/compiler_rt/Makefile.inc Fri Jun 16 21:22:14 2017 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.33 2017/05/26 22:56:50 joerg Exp $ +# $NetBSD: Makefile.inc,v 1.34 2017/06/16 21:22:14 joerg Exp $ COMPILER_RT_SRCDIR= ${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist @@ -242,6 +242,11 @@ GENERIC_SRCS+= \ clear_cache.c .endif +.if ${LIBC_MACHINE_ARCH} == "powerpc" || ${LIBC_MACHINE_ARCH} == "powerpc64" +GENERIC_SRCS+= \ + clear_cache.c +.endif + .if ${LIBC_MACHINE_ARCH} == "sparc" || ${LIBC_MACHINE_ARCH} == "sparc64" GENERIC_SRCS+= \ clear_cache.c Index: src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c diff -u src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.2 src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.3 --- src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c:1.2 Wed May 24 21:45:40 2017 +++ src/sys/external/bsd/compiler_rt/dist/lib/builtins/clear_cache.c Fri Jun 16 21:22:14 2017 @@ -23,6 +23,10 @@ #include <machine/sysarch.h> #endif +#if defined(__NetBSD__) && defined(__ppc__) + #include <machine/cpu.h> +#endif + #if defined(__mips__) #include <sys/cachectl.h> #include <sys/syscall.h> @@ -154,6 +158,8 @@ void __clear_cache(void *start, void *en for (; xstart < xend; xstart += 4) { __asm __volatile("flush %0" :: "r" (xstart)); } +#elif defined(__NetBSD__) && defined(__ppc__) + __syncicache(start, (uintptr_t)end - (uintptr_t)start); #else #if __APPLE__ /* On Darwin, sys_icache_invalidate() provides this functionality */