diff options
Diffstat (limited to 'libpixelflinger')
-rw-r--r-- | libpixelflinger/Android.mk | 10 | ||||
-rw-r--r-- | libpixelflinger/codeflinger/CodeCache.cpp | 8 | ||||
-rw-r--r-- | libpixelflinger/scanline.cpp | 12 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/assembler/Android.mk | 7 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp | 2 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk | 6 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/disassembler/Android.mk | 4 | ||||
-rw-r--r-- | libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk | 6 | ||||
-rw-r--r-- | libpixelflinger/tests/codegen/Android.mk | 2 | ||||
-rw-r--r-- | libpixelflinger/tests/codegen/codegen.cpp | 8 | ||||
-rw-r--r-- | libpixelflinger/tests/gglmul/Android.mk | 2 |
11 files changed, 47 insertions, 20 deletions
diff --git a/libpixelflinger/Android.mk b/libpixelflinger/Android.mk index 484cf50..da9829d 100644 --- a/libpixelflinger/Android.mk +++ b/libpixelflinger/Android.mk @@ -44,11 +44,13 @@ PIXELFLINGER_SRC_FILES_arm64 := \ arch-arm64/col32cb16blend.S \ arch-arm64/t32cb16blend.S \ +ifndef ARCH_MIPS_REV6 PIXELFLINGER_SRC_FILES_mips := \ codeflinger/MIPSAssembler.cpp \ codeflinger/mips_disassem.c \ arch-mips/t32cb16blend.S \ +endif # # Shared library # @@ -67,6 +69,10 @@ ifneq ($(BUILD_TINY_ANDROID),true) LOCAL_SHARED_LIBRARIES += libhardware_legacy LOCAL_CFLAGS += -DWITH_LIB_HARDWARE endif +# t32cb16blend.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm += -no-integrated-as +# arch-arm64/col32cb16blend.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as include $(BUILD_SHARED_LIBRARY) # @@ -80,6 +86,10 @@ LOCAL_SRC_FILES_arm := $(PIXELFLINGER_SRC_FILES_arm) LOCAL_SRC_FILES_arm64 := $(PIXELFLINGER_SRC_FILES_arm64) LOCAL_SRC_FILES_mips := $(PIXELFLINGER_SRC_FILES_mips) LOCAL_CFLAGS := $(PIXELFLINGER_CFLAGS) +# t32cb16blend.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm += -no-integrated-as +# arch-arm64/col32cb16blend.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as include $(BUILD_STATIC_LIBRARY) diff --git a/libpixelflinger/codeflinger/CodeCache.cpp b/libpixelflinger/codeflinger/CodeCache.cpp index 7446da2..d770302 100644 --- a/libpixelflinger/codeflinger/CodeCache.cpp +++ b/libpixelflinger/codeflinger/CodeCache.cpp @@ -89,7 +89,7 @@ static mspace getMspace() gExecutableStore = mmap(NULL, kMaxCodeCacheCapacity, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0); - LOG_ALWAYS_FATAL_IF(gExecutableStore == NULL, + LOG_ALWAYS_FATAL_IF(gExecutableStore == MAP_FAILED, "Creating code cache, mmap failed with error " "'%s'", strerror(errno)); close(fd); @@ -201,9 +201,9 @@ int CodeCache::cache( const AssemblyKeyBase& keyBase, mCacheInUse += assemblySize; mWhen++; // synchronize caches... - const long base = long(assembly->base()); - const long curr = base + long(assembly->size()); - __builtin___clear_cache((void*)base, (void*)curr); + char* base = reinterpret_cast<char*>(assembly->base()); + char* curr = reinterpret_cast<char*>(base + assembly->size()); + __builtin___clear_cache(base, curr); } pthread_mutex_unlock(&mLock); diff --git a/libpixelflinger/scanline.cpp b/libpixelflinger/scanline.cpp index f84a28a..3d14531 100644 --- a/libpixelflinger/scanline.cpp +++ b/libpixelflinger/scanline.cpp @@ -39,7 +39,7 @@ #include "codeflinger/ARMAssembler.h" #elif defined(__aarch64__) #include "codeflinger/Arm64Assembler.h" -#elif defined(__mips__) +#elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 #include "codeflinger/MIPSAssembler.h" #endif //#include "codeflinger/ARMAssemblerOptimizer.h" @@ -59,7 +59,7 @@ # define ANDROID_CODEGEN ANDROID_CODEGEN_GENERATED #endif -#if defined(__arm__) || defined(__mips__) || defined(__aarch64__) +#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6) || defined(__aarch64__) # define ANDROID_ARM_CODEGEN 1 #else # define ANDROID_ARM_CODEGEN 0 @@ -73,7 +73,7 @@ */ #define DEBUG_NEEDS 0 -#ifdef __mips__ +#if defined( __mips__) && !defined(__LP64__) && __mips_isa_rev < 6 #define ASSEMBLY_SCRATCH_SIZE 4096 #elif defined(__aarch64__) #define ASSEMBLY_SCRATCH_SIZE 8192 @@ -134,7 +134,7 @@ extern "C" void scanline_col32cb16blend_arm(uint16_t *dst, uint32_t col, size_t #elif defined(__aarch64__) extern "C" void scanline_t32cb16blend_arm64(uint16_t*, uint32_t*, size_t); extern "C" void scanline_col32cb16blend_arm64(uint16_t *dst, uint32_t col, size_t ct); -#elif defined(__mips__) +#elif defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 extern "C" void scanline_t32cb16blend_mips(uint16_t*, uint32_t*, size_t); #endif @@ -286,7 +286,7 @@ static const needs_filter_t fill16noblend = { #if ANDROID_ARM_CODEGEN -#if defined(__mips__) +#if defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 static CodeCache gCodeCache(32 * 1024); #elif defined(__aarch64__) static CodeCache gCodeCache(48 * 1024); @@ -2175,7 +2175,7 @@ last_one: void scanline_t32cb16blend(context_t* c) { -#if ((ANDROID_CODEGEN >= ANDROID_CODEGEN_ASM) && (defined(__arm__) || defined(__mips__) || defined(__aarch64__))) +#if ((ANDROID_CODEGEN >= ANDROID_CODEGEN_ASM) && (defined(__arm__) || (defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6) || defined(__aarch64__))) int32_t x = c->iterators.xl; size_t ct = c->iterators.xr - x; int32_t y = c->iterators.y; diff --git a/libpixelflinger/tests/arch-arm64/assembler/Android.mk b/libpixelflinger/tests/arch-arm64/assembler/Android.mk index 36db49c..961f323 100644 --- a/libpixelflinger/tests/arch-arm64/assembler/Android.mk +++ b/libpixelflinger/tests/arch-arm64/assembler/Android.mk @@ -5,6 +5,9 @@ LOCAL_SRC_FILES:= \ arm64_assembler_test.cpp\ asm_test_jacket.S +# asm_test_jacket.S does not compile with Clang. +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as + LOCAL_SHARED_LIBRARIES := \ libcutils \ libpixelflinger @@ -16,4 +19,6 @@ LOCAL_MODULE:= test-pixelflinger-arm64-assembler-test LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +LOCAL_MULTILIB := 64 + +include $(BUILD_NATIVE_TEST) diff --git a/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp b/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp index 456be58..fd96f7e 100644 --- a/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp +++ b/libpixelflinger/tests/arch-arm64/assembler/arm64_assembler_test.cpp @@ -409,7 +409,7 @@ void flushcache() { const long base = long(instrMem); const long curr = base + long(instrMemSize); - __builtin___clear_cache((void*)base, (void*)curr); + __builtin___clear_cache((char*)base, (char*)curr); } void dataOpTest(dataOpTest_t test, ARMAssemblerInterface *a64asm, uint32_t Rd = 0, uint32_t Rn = 1, uint32_t Rm = 2, uint32_t Rs = 3) diff --git a/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk b/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk index ac890c7..5d69203 100644 --- a/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk +++ b/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk @@ -5,6 +5,8 @@ LOCAL_SRC_FILES:= \ col32cb16blend_test.c \ ../../../arch-arm64/col32cb16blend.S +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as + LOCAL_SHARED_LIBRARIES := LOCAL_C_INCLUDES := @@ -13,4 +15,6 @@ LOCAL_MODULE:= test-pixelflinger-arm64-col32cb16blend LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +LOCAL_MULTILIB := 64 + +include $(BUILD_NATIVE_TEST) diff --git a/libpixelflinger/tests/arch-arm64/disassembler/Android.mk b/libpixelflinger/tests/arch-arm64/disassembler/Android.mk index baf4070..8f62f09 100644 --- a/libpixelflinger/tests/arch-arm64/disassembler/Android.mk +++ b/libpixelflinger/tests/arch-arm64/disassembler/Android.mk @@ -14,4 +14,6 @@ LOCAL_MODULE:= test-pixelflinger-arm64-disassembler-test LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +LOCAL_MULTILIB := 64 + +include $(BUILD_NATIVE_TEST) diff --git a/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk b/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk index 1cce1bd..2c1379b 100644 --- a/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk +++ b/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk @@ -5,6 +5,8 @@ LOCAL_SRC_FILES:= \ t32cb16blend_test.c \ ../../../arch-arm64/t32cb16blend.S +LOCAL_CLANG_ASFLAGS_arm64 += -no-integrated-as + LOCAL_SHARED_LIBRARIES := LOCAL_C_INCLUDES := @@ -13,4 +15,6 @@ LOCAL_MODULE:= test-pixelflinger-arm64-t32cb16blend LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +LOCAL_MULTILIB := 64 + +include $(BUILD_NATIVE_TEST) diff --git a/libpixelflinger/tests/codegen/Android.mk b/libpixelflinger/tests/codegen/Android.mk index aa320fc..bc07015 100644 --- a/libpixelflinger/tests/codegen/Android.mk +++ b/libpixelflinger/tests/codegen/Android.mk @@ -15,4 +15,4 @@ LOCAL_MODULE:= test-opengl-codegen LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +include $(BUILD_NATIVE_TEST) diff --git a/libpixelflinger/tests/codegen/codegen.cpp b/libpixelflinger/tests/codegen/codegen.cpp index e9f6c61..148b6f4 100644 --- a/libpixelflinger/tests/codegen/codegen.cpp +++ b/libpixelflinger/tests/codegen/codegen.cpp @@ -9,16 +9,18 @@ #include "codeflinger/CodeCache.h" #include "codeflinger/GGLAssembler.h" #include "codeflinger/ARMAssembler.h" +#if defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 #include "codeflinger/MIPSAssembler.h" +#endif #include "codeflinger/Arm64Assembler.h" -#if defined(__arm__) || defined(__mips__) || defined(__aarch64__) +#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6) || defined(__aarch64__) # define ANDROID_ARM_CODEGEN 1 #else # define ANDROID_ARM_CODEGEN 0 #endif -#if defined (__mips__) +#if defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 #define ASSEMBLY_SCRATCH_SIZE 4096 #elif defined(__aarch64__) #define ASSEMBLY_SCRATCH_SIZE 8192 @@ -52,7 +54,7 @@ static void ggl_test_codegen(uint32_t n, uint32_t p, uint32_t t0, uint32_t t1) GGLAssembler assembler( new ARMAssembler(a) ); #endif -#if defined(__mips__) +#if defined(__mips__) && !defined(__LP64__) && __mips_isa_rev < 6 GGLAssembler assembler( new ArmToMipsAssembler(a) ); #endif diff --git a/libpixelflinger/tests/gglmul/Android.mk b/libpixelflinger/tests/gglmul/Android.mk index 64f88b7..f479fa1 100644 --- a/libpixelflinger/tests/gglmul/Android.mk +++ b/libpixelflinger/tests/gglmul/Android.mk @@ -13,4 +13,4 @@ LOCAL_MODULE:= test-pixelflinger-gglmul LOCAL_MODULE_TAGS := tests -include $(BUILD_EXECUTABLE) +include $(BUILD_NATIVE_TEST) |