forked from OSchip/llvm-project
[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 llvm-svn: 228767
This commit is contained in:
parent
eb94727098
commit
08fc9e9158
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue