diff options
author | Colin Cross <ccross@android.com> | 2014-02-11 13:31:48 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2014-02-11 13:32:44 -0800 |
commit | 32ea4a895c4c914f0347dd1e943bca0f474a9050 (patch) | |
tree | a7bb56d6739b7393024d7daa22d5cda4c369297f | |
parent | 85516e9d019a7f5af0e394ea767185c12ffbcd42 (diff) | |
download | core-32ea4a895c4c914f0347dd1e943bca0f474a9050.tar.gz core-32ea4a895c4c914f0347dd1e943bca0f474a9050.tar.bz2 core-32ea4a895c4c914f0347dd1e943bca0f474a9050.zip |
pixelflinger: use __builtin___clear_cache instead of cacheflush
cacheflush doesn't exist on LP64 any more, and gcc's
__builtin___clear_cache is better in every way. Use it instead.
Change-Id: Ibbf6facbdefc15b6dda51d014e1c44fb7aa2b17d
-rw-r--r-- | libpixelflinger/codeflinger/CodeCache.cpp | 6 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp | 4 |
2 files changed, 3 insertions, 7 deletions
diff --git a/libpixelflinger/codeflinger/CodeCache.cpp b/libpixelflinger/codeflinger/CodeCache.cpp index 4fe30d91e..7446da286 100644 --- a/libpixelflinger/codeflinger/CodeCache.cpp +++ b/libpixelflinger/codeflinger/CodeCache.cpp @@ -201,13 +201,9 @@ int CodeCache::cache( const AssemblyKeyBase& keyBase, mCacheInUse += assemblySize; mWhen++; // synchronize caches... -#if defined(__arm__) || defined(__mips__) || defined(__aarch64__) const long base = long(assembly->base()); const long curr = base + long(assembly->size()); - err = cacheflush(base, curr, 0); - ALOGE_IF(err, "cacheflush error %s\n", - strerror(errno)); -#endif + __builtin___clear_cache((void*)base, (void*)curr); } pthread_mutex_unlock(&mLock); diff --git a/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp b/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp index 84381d585..456be58a0 100644 --- a/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp +++ b/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp @@ -405,11 +405,11 @@ dataTransferTest_t dataTransferTests [] = }; -int flushcache() +void flushcache() { const long base = long(instrMem); const long curr = base + long(instrMemSize); - return cacheflush(base, curr, 0); + __builtin___clear_cache((void*)base, (void*)curr); } void dataOpTest(dataOpTest_t test, ARMAssemblerInterface *a64asm, uint32_t Rd = 0, uint32_t Rn = 1, uint32_t Rm = 2, uint32_t Rs = 3) |