aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Support/Unix/Memory.inc
diff options
context:
space:
mode:
authorkeunyoung <keunyoung@google.com>2013-03-07 12:50:38 -0800
committerStephen Hines <srhines@google.com>2013-03-07 16:08:20 -0800
commitf81e00be9486cb813cdabb73d533d0d5115c6d0f (patch)
tree7772572122ffc8776ef7a85b2df0fb3c643c0fce /lib/Support/Unix/Memory.inc
parentd2ba544d44789c76cad3c03b3289ae9e3cfe3f8e (diff)
downloadexternal_llvm-f81e00be9486cb813cdabb73d533d0d5115c6d0f.zip
external_llvm-f81e00be9486cb813cdabb73d533d0d5115c6d0f.tar.gz
external_llvm-f81e00be9486cb813cdabb73d533d0d5115c6d0f.tar.bz2
Android uses cacheflush(long, long, long) for MIPS.
Change-Id: Ia2902dd3521ff310e2261c8f627c95b3e7c9fdad
Diffstat (limited to 'lib/Support/Unix/Memory.inc')
-rw-r--r--lib/Support/Unix/Memory.inc5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Support/Unix/Memory.inc b/lib/Support/Unix/Memory.inc
index e00394e..2686ba6 100644
--- a/lib/Support/Unix/Memory.inc
+++ b/lib/Support/Unix/Memory.inc
@@ -331,8 +331,13 @@ void Memory::InvalidateInstructionCache(const void *Addr,
const char *End = Start + Len;
__clear_cache(const_cast<char *>(Start), const_cast<char *>(End));
# elif defined(__mips__)
+# if defined(ANDROID)
+ // Android uses cacheflush(long, long, long) instead.
+ cacheflush(reinterpret_cast<long>(Addr), Len, BCACHE);
+# else
const char *Start = static_cast<const char *>(Addr);
cacheflush(const_cast<char *>(Start), Len, BCACHE);
+# endif
# endif
#endif // end apple