diff options
author | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2015-02-10 23:36:19 +0000 |
---|---|---|
committer | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2015-02-10 23:36:19 +0000 |
commit | a2ed3c3389822fb0879a385dcc2682ece8544ccf (patch) | |
tree | d68417a026b154287a04f8b6f5978837b27c43b4 | |
parent | 13c7a45cf38f63e2c67560c945ca26d995bea740 (diff) |
[mips] Add __clear_cache() definition for non-Android systems
Make sure clear_cache() builtin has an appropriate definition for Linux.
Call syscall(NR_cacheflush, ...).
Differential Revision: http://reviews.llvm.org/D7205
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@228767 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/builtins/clear_cache.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/builtins/clear_cache.c b/lib/builtins/clear_cache.c index 61b1e9bbb..8dc0fb1c5 100644 --- a/lib/builtins/clear_cache.c +++ b/lib/builtins/clear_cache.c @@ -22,10 +22,10 @@ #include <machine/sysarch.h> #endif -#if defined(__ANDROID__) && defined(__mips__) +#if defined(__mips__) #include <sys/cachectl.h> #include <sys/syscall.h> - #ifdef __LP64__ + #if defined(__ANDROID__) && defined(__LP64__) /* * clear_mips_cache - Invalidates instruction cache for Mips. */ @@ -109,10 +109,10 @@ void __clear_cache(void *start, void *end) { #else compilerrt_abort(); #endif -#elif defined(__ANDROID__) && defined(__mips__) +#elif defined(__mips__) const uintptr_t start_int = (uintptr_t) start; const uintptr_t end_int = (uintptr_t) end; - #ifdef __LP64__ + #if defined(__ANDROID__) && defined(__LP64__) // Call synci implementation for short address range. const uintptr_t address_range_limit = 256; if ((end_int - start_int) <= address_range_limit) { |