[compiler-rt] r323039 - [compiler-rt] Implement __clear_cache() on OpenBSD/mips64

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 22 07:10:20 PST 2018


Merged to 6.0 in r323120.

On Sat, Jan 20, 2018 at 3:16 PM, Kamil Rytarowski via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: kamil
> Date: Sat Jan 20 06:16:16 2018
> New Revision: 323039
>
> URL: http://llvm.org/viewvc/llvm-project?rev=323039&view=rev
> Log:
> [compiler-rt] Implement __clear_cache() on OpenBSD/mips64
>
> Summary:
> Make __clear_cache() invoke the platform's cache flush function
> on OpenBSD/mips64.
>
> Reviewers: krytarowski
>
> Reviewed By: krytarowski
>
> Subscribers: sdardis, dberris, arichardson, krytarowski, llvm-commits, #sanitizers
>
> Differential Revision: https://reviews.llvm.org/D42332
>
> Modified:
>     compiler-rt/trunk/lib/builtins/clear_cache.c
>
> Modified: compiler-rt/trunk/lib/builtins/clear_cache.c
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/clear_cache.c?rev=323039&r1=323038&r2=323039&view=diff
> ==============================================================================
> --- compiler-rt/trunk/lib/builtins/clear_cache.c (original)
> +++ compiler-rt/trunk/lib/builtins/clear_cache.c Sat Jan 20 06:16:16 2018
> @@ -33,6 +33,11 @@ uintptr_t GetCurrentProcess(void);
>    #include <machine/sysarch.h>
>  #endif
>
> +#if defined(__OpenBSD__) && defined(__mips__)
> +  #include <sys/types.h>
> +  #include <machine/sysarch.h>
> +#endif
> +
>  #if defined(__linux__) && defined(__mips__)
>    #include <sys/cachectl.h>
>    #include <sys/syscall.h>
> @@ -142,6 +147,8 @@ void __clear_cache(void *start, void *en
>      #else
>          syscall(__NR_cacheflush, start, (end_int - start_int), BCACHE);
>      #endif
> +#elif defined(__mips__) && defined(__OpenBSD__)
> +  cacheflush(start, (uintptr_t)end - (uintptr_t)start, BCACHE);
>  #elif defined(__aarch64__) && !defined(__APPLE__)
>    uint64_t xstart = (uint64_t)(uintptr_t) start;
>    uint64_t xend = (uint64_t)(uintptr_t) end;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list