summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-02-12 14:20:58 -0800
committerElliott Hughes <enh@google.com>2014-02-12 14:20:58 -0800
commita0d97af039ae8dbbc5997da23d73ced3ff25a101 (patch)
tree961ef75648cd5c5679c2300ffe645c712ba4b6c4
parent73e52b41113996ee997a2debc902de5591071af9 (diff)
downloadandroid_dalvik-a0d97af039ae8dbbc5997da23d73ced3ff25a101.tar.gz
android_dalvik-a0d97af039ae8dbbc5997da23d73ced3ff25a101.tar.bz2
android_dalvik-a0d97af039ae8dbbc5997da23d73ced3ff25a101.zip
Move dalvik off cacheflush so we can deprecate it.
Bug: 12965705 Change-Id: I805428e3103ff578d048ecbbc6ae30c0ead19ef9
-rw-r--r--vm/compiler/Compiler.cpp5
-rw-r--r--vm/compiler/CompilerUtility.h2
-rw-r--r--vm/compiler/Utility.cpp4
-rw-r--r--vm/compiler/codegen/arm/ArchUtility.cpp6
-rw-r--r--vm/compiler/codegen/arm/Assemble.cpp10
-rw-r--r--vm/compiler/codegen/mips/ArchUtility.cpp6
-rw-r--r--vm/compiler/codegen/mips/Assemble.cpp10
-rw-r--r--vm/compiler/codegen/x86/CodegenInterface.cpp4
8 files changed, 17 insertions, 30 deletions
diff --git a/vm/compiler/Compiler.cpp b/vm/compiler/Compiler.cpp
index 04d645668..1ebc2d128 100644
--- a/vm/compiler/Compiler.cpp
+++ b/vm/compiler/Compiler.cpp
@@ -212,7 +212,7 @@ bool dvmCompilerSetupCodeCache(void)
/* Only flush the part in the code cache that is being used now */
dvmCompilerCacheFlush((intptr_t) gDvmJit.codeCache,
- (intptr_t) gDvmJit.codeCache + templateSize, 0);
+ (intptr_t) gDvmJit.codeCache + templateSize);
#else
gDvmJit.codeCacheByteUsed = 0;
stream = (char*)gDvmJit.codeCache + gDvmJit.codeCacheByteUsed;
@@ -332,8 +332,7 @@ static void resetCodeCache(void)
gDvmJit.codeCacheByteUsed - gDvmJit.templateSize);
dvmCompilerCacheFlush((intptr_t) gDvmJit.codeCache,
- (intptr_t) gDvmJit.codeCache +
- gDvmJit.codeCacheByteUsed, 0);
+ (intptr_t) gDvmJit.codeCache + gDvmJit.codeCacheByteUsed);
PROTECT_CODE_CACHE(gDvmJit.codeCache, gDvmJit.codeCacheByteUsed);
diff --git a/vm/compiler/CompilerUtility.h b/vm/compiler/CompilerUtility.h
index faca03dd1..a06192dd2 100644
--- a/vm/compiler/CompilerUtility.h
+++ b/vm/compiler/CompilerUtility.h
@@ -73,7 +73,7 @@ void dvmDumpResourceMask(struct LIR *lir, u8 mask, const char *prefix);
void dvmDumpBlockBitVector(const GrowableList *blocks, char *msg,
const BitVector *bv, int length);
void dvmGetBlockName(struct BasicBlock *bb, char *name);
-void dvmCompilerCacheFlush(long start, long end, long flags);
+void dvmCompilerCacheFlush(uintptr_t start, uintptr_t end);
void dvmCompilerCacheClear(char *start, size_t size);
diff --git a/vm/compiler/Utility.cpp b/vm/compiler/Utility.cpp
index 2fe94d2e8..eaa562b41 100644
--- a/vm/compiler/Utility.cpp
+++ b/vm/compiler/Utility.cpp
@@ -407,3 +407,7 @@ void dvmGetBlockName(BasicBlock *bb, char *name)
break;
}
}
+
+void dvmCompilerCacheFlush(uintptr_t start, uintptr_t end) {
+ __builtin___clear_cache(reinterpret_cast<void*>(start), reinterpret_cast<void*>(end));
+}
diff --git a/vm/compiler/codegen/arm/ArchUtility.cpp b/vm/compiler/codegen/arm/ArchUtility.cpp
index 9f87b7ff4..b5e739f49 100644
--- a/vm/compiler/codegen/arm/ArchUtility.cpp
+++ b/vm/compiler/codegen/arm/ArchUtility.cpp
@@ -420,12 +420,6 @@ void dvmCompilerCodegenDump(CompilationUnit *cUnit)
}
}
-/* Target-specific cache flushing */
-void dvmCompilerCacheFlush(long start, long end, long flags)
-{
- cacheflush(start, end, flags);
-}
-
/* Target-specific cache clearing */
void dvmCompilerCacheClear(char *start, size_t size)
{
diff --git a/vm/compiler/codegen/arm/Assemble.cpp b/vm/compiler/codegen/arm/Assemble.cpp
index 5f2de72d6..7ed2d47d5 100644
--- a/vm/compiler/codegen/arm/Assemble.cpp
+++ b/vm/compiler/codegen/arm/Assemble.cpp
@@ -1562,7 +1562,7 @@ void dvmCompilerAssembleLIR(CompilationUnit *cUnit, JitTranslationInfo *info)
/* Flush dcache and invalidate the icache to maintain coherence */
dvmCompilerCacheFlush((long)cUnit->baseAddr,
- (long)((char *) cUnit->baseAddr + offset), 0);
+ (long)((char *) cUnit->baseAddr + offset));
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(cUnit->baseAddr, offset);
@@ -1662,7 +1662,7 @@ void* dvmJitChain(void* tgtAddr, u4* branchAddr)
UNPROTECT_CODE_CACHE(branchAddr, sizeof(*branchAddr));
*branchAddr = newInst;
- dvmCompilerCacheFlush((long)branchAddr, (long)branchAddr + 4, 0);
+ dvmCompilerCacheFlush((long)branchAddr, (long)branchAddr + 4);
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(branchAddr, sizeof(*branchAddr));
@@ -1702,7 +1702,7 @@ static void inlineCachePatchEnqueue(PredictedChainingCell *cellAddr,
*/
android_atomic_release_store((int32_t)newContent->clazz,
(volatile int32_t *)(void *)&cellAddr->clazz);
- dvmCompilerCacheFlush((intptr_t) cellAddr, (intptr_t) (cellAddr+1), 0);
+ dvmCompilerCacheFlush((intptr_t) cellAddr, (intptr_t) (cellAddr+1));
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(cellAddr, sizeof(*cellAddr));
@@ -1902,7 +1902,7 @@ void dvmCompilerPatchInlineCache(void)
}
/* Then synchronize the I/D cache */
- dvmCompilerCacheFlush((long) minAddr, (long) (maxAddr+1), 0);
+ dvmCompilerCacheFlush((long) minAddr, (long) (maxAddr+1));
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(gDvmJit.codeCache, gDvmJit.codeCacheByteUsed);
@@ -2010,7 +2010,7 @@ void dvmJitUnchainAll()
highAddress = lastAddress;
}
}
- dvmCompilerCacheFlush((long)lowAddress, (long)highAddress, 0);
+ dvmCompilerCacheFlush((long)lowAddress, (long)highAddress);
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(gDvmJit.codeCache, gDvmJit.codeCacheByteUsed);
diff --git a/vm/compiler/codegen/mips/ArchUtility.cpp b/vm/compiler/codegen/mips/ArchUtility.cpp
index 47c4c6de1..0b10cdaa0 100644
--- a/vm/compiler/codegen/mips/ArchUtility.cpp
+++ b/vm/compiler/codegen/mips/ArchUtility.cpp
@@ -369,12 +369,6 @@ void dvmCompilerCodegenDump(CompilationUnit *cUnit)
}
}
-/* Target-specific cache flushing */
-void dvmCompilerCacheFlush(long start, long end, long flags)
-{
- cacheflush(start, end, flags);
-}
-
/* Target-specific cache clearing */
void dvmCompilerCacheClear(char *start, size_t size)
{
diff --git a/vm/compiler/codegen/mips/Assemble.cpp b/vm/compiler/codegen/mips/Assemble.cpp
index 36a301c9a..76aa60657 100644
--- a/vm/compiler/codegen/mips/Assemble.cpp
+++ b/vm/compiler/codegen/mips/Assemble.cpp
@@ -913,7 +913,7 @@ void dvmCompilerAssembleLIR(CompilationUnit *cUnit, JitTranslationInfo *info)
/* Flush dcache and invalidate the icache to maintain coherence */
dvmCompilerCacheFlush((long)cUnit->baseAddr,
- (long)((char *) cUnit->baseAddr + offset), 0);
+ (long)((char *) cUnit->baseAddr + offset));
UPDATE_CODE_CACHE_PATCHES();
@@ -974,7 +974,7 @@ void* dvmJitChain(void* tgtAddr, u4* branchAddr)
UNPROTECT_CODE_CACHE(branchAddr, sizeof(*branchAddr));
*branchAddr = newInst;
- dvmCompilerCacheFlush((long)branchAddr, (long)branchAddr + 4, 0);
+ dvmCompilerCacheFlush((long)branchAddr, (long)branchAddr + 4);
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(branchAddr, sizeof(*branchAddr));
@@ -1015,7 +1015,7 @@ static void inlineCachePatchEnqueue(PredictedChainingCell *cellAddr,
*/
android_atomic_release_store((int32_t)newContent->clazz,
(volatile int32_t *)(void*) &cellAddr->clazz);
- dvmCompilerCacheFlush((long) cellAddr, (long) (cellAddr+1), 0);
+ dvmCompilerCacheFlush((long) cellAddr, (long) (cellAddr+1));
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(cellAddr, sizeof(*cellAddr));
@@ -1226,7 +1226,7 @@ void dvmCompilerPatchInlineCache(void)
}
/* Then synchronize the I/D cache */
- dvmCompilerCacheFlush((long) minAddr, (long) (maxAddr+1), 0);
+ dvmCompilerCacheFlush((long) minAddr, (long) (maxAddr+1));
UPDATE_CODE_CACHE_PATCHES();
PROTECT_CODE_CACHE(gDvmJit.codeCache, gDvmJit.codeCacheByteUsed);
@@ -1353,7 +1353,7 @@ void dvmJitUnchainAll()
}
if (lowAddress && highAddress)
- dvmCompilerCacheFlush((long)lowAddress, (long)highAddress, 0);
+ dvmCompilerCacheFlush((long)lowAddress, (long)highAddress);
UPDATE_CODE_CACHE_PATCHES();
diff --git a/vm/compiler/codegen/x86/CodegenInterface.cpp b/vm/compiler/codegen/x86/CodegenInterface.cpp
index 337bd61ae..6ec5f9d12 100644
--- a/vm/compiler/codegen/x86/CodegenInterface.cpp
+++ b/vm/compiler/codegen/x86/CodegenInterface.cpp
@@ -1538,8 +1538,4 @@ bool dvmCompilerDoWork(CompilerWorkOrder *work)
return isCompile;
}
-void dvmCompilerCacheFlush(long start, long end, long flags) {
- /* cacheflush is needed for ARM, but not for IA32 (coherent icache) */
-}
-
//#endif