Revision: 10518
Author:   [email protected]
Date:     Thu Jan 26 08:54:44 2012
Log:      MIPS: Added Android-specific version of cacheflush call.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9234059
Patch from Daniel Kalmar <[email protected]>.
http://code.google.com/p/v8/source/detail?r=10518

Modified:
 /branches/bleeding_edge/src/mips/cpu-mips.cc

=======================================
--- /branches/bleeding_edge/src/mips/cpu-mips.cc        Fri Jan 13 05:09:52 2012
+++ /branches/bleeding_edge/src/mips/cpu-mips.cc        Thu Jan 26 08:54:44 2012
@@ -1,4 +1,4 @@
-// Copyright 2011 the V8 project authors. All rights reserved.
+// Copyright 2012 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -64,15 +64,19 @@
   }

 #if !defined (USE_SIMULATOR)
+#if defined(ANDROID)
+  // Bionic cacheflush can typically run in userland, avoiding kernel call.
+  char *end = reinterpret_cast<char *>(start) + size;
+  cacheflush(
+    reinterpret_cast<intptr_t>(start), reinterpret_cast<intptr_t>(end), 0);
+#else  // ANDROID
   int res;
-
   // See http://www.linux-mips.org/wiki/Cacheflush_Syscall.
   res = syscall(__NR_cacheflush, start, size, ICACHE);
-
   if (res) {
     V8_Fatal(__FILE__, __LINE__, "Failed to flush the instruction cache");
   }
-
+#endif  // ANDROID
 #else  // USE_SIMULATOR.
   // Not generating mips instructions for C-code. This means that we are
   // building a mips emulator based target.  We should notify the simulator

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to