[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:
Petar Jovanovic 2015-02-10 23:36:19 +00:00
parent eb94727098
commit 08fc9e9158
1 changed files with 4 additions and 4 deletions

View File

@ -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) {