diff options
Diffstat (limited to 'libpixelflinger')
21 files changed, 124 insertions, 124 deletions
diff --git a/libpixelflinger/Android.mk b/libpixelflinger/Android.mk index fe50cc6..484cf50 100644 --- a/libpixelflinger/Android.mk +++ b/libpixelflinger/Android.mk @@ -7,13 +7,13 @@ include $(CLEAR_VARS) include $(CLEAR_VARS) PIXELFLINGER_SRC_FILES:= \ - codeflinger/ARMAssemblerInterface.cpp \ - codeflinger/ARMAssemblerProxy.cpp \ - codeflinger/CodeCache.cpp \ - codeflinger/GGLAssembler.cpp \ - codeflinger/load_store.cpp \ - codeflinger/blending.cpp \ - codeflinger/texturing.cpp \ + codeflinger/ARMAssemblerInterface.cpp \ + codeflinger/ARMAssemblerProxy.cpp \ + codeflinger/CodeCache.cpp \ + codeflinger/GGLAssembler.cpp \ + codeflinger/load_store.cpp \ + codeflinger/blending.cpp \ + codeflinger/texturing.cpp \ codeflinger/tinyutils/SharedBuffer.cpp \ codeflinger/tinyutils/VectorImpl.cpp \ fixed.cpp.arm \ @@ -26,39 +26,28 @@ PIXELFLINGER_SRC_FILES:= \ raster.cpp \ buffer.cpp -ifeq ($(TARGET_ARCH),arm) -ifeq ($(TARGET_ARCH_VERSION),armv7-a) -PIXELFLINGER_SRC_FILES += col32cb16blend_neon.S -PIXELFLINGER_SRC_FILES += col32cb16blend.S -else -PIXELFLINGER_SRC_FILES += t32cb16blend.S -PIXELFLINGER_SRC_FILES += col32cb16blend.S -endif -endif +PIXELFLINGER_CFLAGS := -fstrict-aliasing -fomit-frame-pointer -ifeq ($(TARGET_ARCH),arm) -PIXELFLINGER_SRC_FILES += codeflinger/ARMAssembler.cpp -PIXELFLINGER_SRC_FILES += codeflinger/disassem.c -# special optimization flags for pixelflinger -PIXELFLINGER_CFLAGS += -fstrict-aliasing -fomit-frame-pointer -endif +PIXELFLINGER_SRC_FILES_arm := \ + codeflinger/ARMAssembler.cpp \ + codeflinger/disassem.c \ + col32cb16blend.S \ + t32cb16blend.S \ -ifeq ($(TARGET_ARCH),mips) -PIXELFLINGER_SRC_FILES += codeflinger/MIPSAssembler.cpp -PIXELFLINGER_SRC_FILES += codeflinger/mips_disassem.c -PIXELFLINGER_SRC_FILES += arch-mips/t32cb16blend.S -PIXELFLINGER_CFLAGS += -fstrict-aliasing -fomit-frame-pointer +ifeq ($(ARCH_ARM_HAVE_NEON),true) +PIXELFLINGER_SRC_FILES_arm += col32cb16blend_neon.S endif -LOCAL_SHARED_LIBRARIES := libcutils liblog +PIXELFLINGER_SRC_FILES_arm64 := \ + codeflinger/Arm64Assembler.cpp \ + codeflinger/Arm64Disassembler.cpp \ + arch-arm64/col32cb16blend.S \ + arch-arm64/t32cb16blend.S \ -ifeq ($(TARGET_ARCH),arm64) -PIXELFLINGER_SRC_FILES += arch-arm64/t32cb16blend.S -PIXELFLINGER_SRC_FILES += arch-arm64/col32cb16blend.S -PIXELFLINGER_SRC_FILES += codeflinger/Arm64Assembler.cpp -PIXELFLINGER_SRC_FILES += codeflinger/Arm64Disassembler.cpp -PIXELFLINGER_CFLAGS += -fstrict-aliasing -fomit-frame-pointer -endif +PIXELFLINGER_SRC_FILES_mips := \ + codeflinger/MIPSAssembler.cpp \ + codeflinger/mips_disassem.c \ + arch-mips/t32cb16blend.S \ # # Shared library @@ -66,7 +55,11 @@ endif LOCAL_MODULE:= libpixelflinger LOCAL_SRC_FILES := $(PIXELFLINGER_SRC_FILES) +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) +LOCAL_SHARED_LIBRARIES := libcutils liblog ifneq ($(BUILD_TINY_ANDROID),true) # Really this should go away entirely or at least not depend on @@ -83,6 +76,9 @@ include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libpixelflinger_static LOCAL_SRC_FILES := $(PIXELFLINGER_SRC_FILES) +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) include $(BUILD_STATIC_LIBRARY) diff --git a/libpixelflinger/buffer.cpp b/libpixelflinger/buffer.cpp index cbdab5a..dcb95c5 100644 --- a/libpixelflinger/buffer.cpp +++ b/libpixelflinger/buffer.cpp @@ -130,7 +130,7 @@ void read_pixel(const surface_t* s, context_t* c, } } -void readRGB565(const surface_t* s, context_t* c, +void readRGB565(const surface_t* s, context_t* /*c*/, uint32_t x, uint32_t y, pixel_t* pixel) { uint16_t v = *(reinterpret_cast<uint16_t*>(s->data) + (x + (s->stride * y))); @@ -144,7 +144,7 @@ void readRGB565(const surface_t* s, context_t* c, pixel->s[3] = 5; } -void readABGR8888(const surface_t* s, context_t* c, +void readABGR8888(const surface_t* s, context_t* /*c*/, uint32_t x, uint32_t y, pixel_t* pixel) { uint32_t v = *(reinterpret_cast<uint32_t*>(s->data) + (x + (s->stride * y))); diff --git a/libpixelflinger/codeflinger/Arm64Assembler.cpp b/libpixelflinger/codeflinger/Arm64Assembler.cpp index f37072a..bd11818 100644 --- a/libpixelflinger/codeflinger/Arm64Assembler.cpp +++ b/libpixelflinger/codeflinger/Arm64Assembler.cpp @@ -273,7 +273,7 @@ void ArmToArm64Assembler::B(int cc, const char* label) *mPC++ = (0x54 << 24) | cc; } -void ArmToArm64Assembler::BL(int cc, const char* label) +void ArmToArm64Assembler::BL(int /*cc*/, const char* /*label*/) { NOT_IMPLEMENTED(); //Not Required } @@ -289,7 +289,7 @@ void ArmToArm64Assembler::prolog() *mPC++ = A64_MOVZ_X(mZeroReg,0,0); } -void ArmToArm64Assembler::epilog(uint32_t touched) +void ArmToArm64Assembler::epilog(uint32_t /*touched*/) { // write epilog code static const int XLR = 30; @@ -530,23 +530,23 @@ void ArmToArm64Assembler::MUL(int cc, int s, int Rd, int Rm, int Rs) if(s != 0) { NOT_IMPLEMENTED(); return;} //Not required *mPC++ = A64_MADD_W(Rd, Rm, Rs, mZeroReg); } -void ArmToArm64Assembler::UMULL(int cc, int s, - int RdLo, int RdHi, int Rm, int Rs) +void ArmToArm64Assembler::UMULL(int /*cc*/, int /*s*/, + int /*RdLo*/, int /*RdHi*/, int /*Rm*/, int /*Rs*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::UMUAL(int cc, int s, - int RdLo, int RdHi, int Rm, int Rs) +void ArmToArm64Assembler::UMUAL(int /*cc*/, int /*s*/, + int /*RdLo*/, int /*RdHi*/, int /*Rm*/, int /*Rs*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::SMULL(int cc, int s, - int RdLo, int RdHi, int Rm, int Rs) +void ArmToArm64Assembler::SMULL(int /*cc*/, int /*s*/, + int /*RdLo*/, int /*RdHi*/, int /*Rm*/, int /*Rs*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::SMUAL(int cc, int s, - int RdLo, int RdHi, int Rm, int Rs) +void ArmToArm64Assembler::SMUAL(int /*cc*/, int /*s*/, + int /*RdLo*/, int /*RdHi*/, int /*Rm*/, int /*Rs*/) { NOT_IMPLEMENTED(); //Not required } @@ -554,15 +554,15 @@ void ArmToArm64Assembler::SMUAL(int cc, int s, // ---------------------------------------------------------------------------- // branches relative to PC... // ---------------------------------------------------------------------------- -void ArmToArm64Assembler::B(int cc, uint32_t* pc){ +void ArmToArm64Assembler::B(int /*cc*/, uint32_t* /*pc*/){ NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::BL(int cc, uint32_t* pc){ +void ArmToArm64Assembler::BL(int /*cc*/, uint32_t* /*pc*/){ NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::BX(int cc, int Rn){ +void ArmToArm64Assembler::BX(int /*cc*/, int /*Rn*/){ NOT_IMPLEMENTED(); //Not required } @@ -661,11 +661,11 @@ void ArmToArm64Assembler::LDRH(int cc, int Rd, int Rn, uint32_t op_type) { return dataTransfer(opLDRH, cc, Rd, Rn, op_type); } -void ArmToArm64Assembler::LDRSB(int cc, int Rd, int Rn, uint32_t offset) +void ArmToArm64Assembler::LDRSB(int /*cc*/, int /*Rd*/, int /*Rn*/, uint32_t /*offset*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::LDRSH(int cc, int Rd, int Rn, uint32_t offset) +void ArmToArm64Assembler::LDRSH(int /*cc*/, int /*Rd*/, int /*Rn*/, uint32_t /*offset*/) { NOT_IMPLEMENTED(); //Not required } @@ -723,15 +723,15 @@ void ArmToArm64Assembler::STM(int cc, int dir, // ---------------------------------------------------------------------------- // special... // ---------------------------------------------------------------------------- -void ArmToArm64Assembler::SWP(int cc, int Rn, int Rd, int Rm) +void ArmToArm64Assembler::SWP(int /*cc*/, int /*Rn*/, int /*Rd*/, int /*Rm*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::SWPB(int cc, int Rn, int Rd, int Rm) +void ArmToArm64Assembler::SWPB(int /*cc*/, int /*Rn*/, int /*Rd*/, int /*Rm*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::SWI(int cc, uint32_t comment) +void ArmToArm64Assembler::SWI(int /*cc*/, uint32_t /*comment*/) { NOT_IMPLEMENTED(); //Not required } @@ -739,31 +739,31 @@ void ArmToArm64Assembler::SWI(int cc, uint32_t comment) // ---------------------------------------------------------------------------- // DSP instructions... // ---------------------------------------------------------------------------- -void ArmToArm64Assembler::PLD(int Rn, uint32_t offset) { +void ArmToArm64Assembler::PLD(int /*Rn*/, uint32_t /*offset*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::CLZ(int cc, int Rd, int Rm) +void ArmToArm64Assembler::CLZ(int /*cc*/, int /*Rd*/, int /*Rm*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::QADD(int cc, int Rd, int Rm, int Rn) +void ArmToArm64Assembler::QADD(int /*cc*/, int /*Rd*/, int /*Rm*/, int /*Rn*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::QDADD(int cc, int Rd, int Rm, int Rn) +void ArmToArm64Assembler::QDADD(int /*cc*/, int /*Rd*/, int /*Rm*/, int /*Rn*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::QSUB(int cc, int Rd, int Rm, int Rn) +void ArmToArm64Assembler::QSUB(int /*cc*/, int /*Rd*/, int /*Rm*/, int /*Rn*/) { NOT_IMPLEMENTED(); //Not required } -void ArmToArm64Assembler::QDSUB(int cc, int Rd, int Rm, int Rn) +void ArmToArm64Assembler::QDSUB(int /*cc*/, int /*Rd*/, int /*Rm*/, int /*Rn*/) { NOT_IMPLEMENTED(); //Not required } @@ -817,15 +817,15 @@ void ArmToArm64Assembler::SMLA(int cc, int xy, int Rd, int Rm, int Rs, int Rn) *mPC++ = A64_MADD_W(Rd, mTmpReg1, mTmpReg2, Rn); } -void ArmToArm64Assembler::SMLAL(int cc, int xy, - int RdHi, int RdLo, int Rs, int Rm) +void ArmToArm64Assembler::SMLAL(int /*cc*/, int /*xy*/, + int /*RdHi*/, int /*RdLo*/, int /*Rs*/, int /*Rm*/) { NOT_IMPLEMENTED(); //Not required return; } -void ArmToArm64Assembler::SMLAW(int cc, int y, - int Rd, int Rm, int Rs, int Rn) +void ArmToArm64Assembler::SMLAW(int /*cc*/, int /*y*/, + int /*Rd*/, int /*Rm*/, int /*Rs*/, int /*Rn*/) { NOT_IMPLEMENTED(); //Not required return; @@ -890,13 +890,13 @@ uint32_t ArmToArm64Assembler::reg_imm(int Rm, int type, uint32_t shift) return OPERAND_REG_IMM; } -uint32_t ArmToArm64Assembler::reg_rrx(int Rm) +uint32_t ArmToArm64Assembler::reg_rrx(int /*Rm*/) { NOT_IMPLEMENTED(); return OPERAND_UNSUPPORTED; } -uint32_t ArmToArm64Assembler::reg_reg(int Rm, int type, int Rs) +uint32_t ArmToArm64Assembler::reg_reg(int /*Rm*/, int /*type*/, int /*Rs*/) { NOT_IMPLEMENTED(); //Not required return OPERAND_UNSUPPORTED; @@ -937,7 +937,7 @@ uint32_t ArmToArm64Assembler::reg_scale_pre(int Rm, int type, } } -uint32_t ArmToArm64Assembler::reg_scale_post(int Rm, int type, uint32_t shift) +uint32_t ArmToArm64Assembler::reg_scale_post(int /*Rm*/, int /*type*/, uint32_t /*shift*/) { NOT_IMPLEMENTED(); //Not required return OPERAND_UNSUPPORTED; @@ -975,7 +975,7 @@ uint32_t ArmToArm64Assembler::reg_pre(int Rm, int W) } } -uint32_t ArmToArm64Assembler::reg_post(int Rm) +uint32_t ArmToArm64Assembler::reg_post(int /*Rm*/) { NOT_IMPLEMENTED(); //Not required return OPERAND_UNSUPPORTED; diff --git a/libpixelflinger/codeflinger/CodeCache.cpp b/libpixelflinger/codeflinger/CodeCache.cpp index 4fe30d9..cfd2b37 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,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 + void* base = assembly->base(); + void* curr = (uint8_t*)base + assembly->size(); + __builtin___clear_cache(base, curr); } pthread_mutex_unlock(&mLock); diff --git a/libpixelflinger/codeflinger/GGLAssembler.cpp b/libpixelflinger/codeflinger/GGLAssembler.cpp index 2422d7b..325caba 100644 --- a/libpixelflinger/codeflinger/GGLAssembler.cpp +++ b/libpixelflinger/codeflinger/GGLAssembler.cpp @@ -694,7 +694,7 @@ void GGLAssembler::build_coverage_application(component_t& fragment, // --------------------------------------------------------------------------- void GGLAssembler::build_alpha_test(component_t& fragment, - const fragment_parts_t& parts) + const fragment_parts_t& /*parts*/) { if (mAlphaTest != GGL_ALWAYS) { comment("Alpha Test"); @@ -796,7 +796,7 @@ void GGLAssembler::build_iterate_z(const fragment_parts_t& parts) } } -void GGLAssembler::build_iterate_f(const fragment_parts_t& parts) +void GGLAssembler::build_iterate_f(const fragment_parts_t& /*parts*/) { const needs_t& needs = mBuilderContext.needs; if (GGL_READ_NEEDS(P_FOG, needs.p)) { diff --git a/libpixelflinger/codeflinger/disassem.c b/libpixelflinger/codeflinger/disassem.c index aeb8034..39dd614 100644 --- a/libpixelflinger/codeflinger/disassem.c +++ b/libpixelflinger/codeflinger/disassem.c @@ -301,19 +301,14 @@ static u_int disassemble_readword(u_int address); static void disassemble_printaddr(u_int address); u_int -disasm(const disasm_interface_t *di, u_int loc, int altfmt) +disasm(const disasm_interface_t *di, u_int loc, int __unused altfmt) { const struct arm32_insn *i_ptr = &arm32_i[0]; - - u_int insn; - int matchp; + u_int insn = di->di_readword(loc); + int matchp = 0; int branch; char* f_ptr; - int fmt; - - fmt = 0; - matchp = 0; - insn = di->di_readword(loc); + int fmt = 0; /* di->di_printf("loc=%08x insn=%08x : ", loc, insn);*/ @@ -670,7 +665,7 @@ disasm_insn_ldrhstrh(const disasm_interface_t *di, u_int insn, u_int loc) } static void -disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn, u_int loc) +disasm_insn_ldcstc(const disasm_interface_t *di, u_int insn, u_int __unused loc) { if (((insn >> 8) & 0xf) == 1) di->di_printf("f%d, ", (insn >> 12) & 0x07); diff --git a/libpixelflinger/codeflinger/disassem.h b/libpixelflinger/codeflinger/disassem.h index 02747cd..c7c60b6 100644 --- a/libpixelflinger/codeflinger/disassem.h +++ b/libpixelflinger/codeflinger/disassem.h @@ -49,8 +49,8 @@ extern "C" { typedef struct { u_int (*di_readword)(u_int); - void (*di_printaddr)(u_int); - void (*di_printf)(const char *, ...); + void (*di_printaddr)(u_int); + int (*di_printf)(const char *, ...); } disasm_interface_t; /* Prototypes for callable functions */ diff --git a/libpixelflinger/codeflinger/texturing.cpp b/libpixelflinger/codeflinger/texturing.cpp index b2cfbb3..81950bf 100644 --- a/libpixelflinger/codeflinger/texturing.cpp +++ b/libpixelflinger/codeflinger/texturing.cpp @@ -694,7 +694,7 @@ void GGLAssembler::build_iterate_texture_coordinates( } void GGLAssembler::filter8( - const fragment_parts_t& parts, + const fragment_parts_t& /*parts*/, pixel_t& texel, const texture_unit_t& tmu, int U, int V, pointer_t& txPtr, int FRAC_BITS) @@ -761,7 +761,7 @@ void GGLAssembler::filter8( } void GGLAssembler::filter16( - const fragment_parts_t& parts, + const fragment_parts_t& /*parts*/, pixel_t& texel, const texture_unit_t& tmu, int U, int V, pointer_t& txPtr, int FRAC_BITS) @@ -879,10 +879,10 @@ void GGLAssembler::filter16( } void GGLAssembler::filter24( - const fragment_parts_t& parts, - pixel_t& texel, const texture_unit_t& tmu, - int U, int V, pointer_t& txPtr, - int FRAC_BITS) + const fragment_parts_t& /*parts*/, + pixel_t& texel, const texture_unit_t& /*tmu*/, + int /*U*/, int /*V*/, pointer_t& txPtr, + int /*FRAC_BITS*/) { // not supported yet (currently disabled) load(txPtr, texel, 0); @@ -989,8 +989,8 @@ void GGLAssembler::filter32( } #else void GGLAssembler::filter32( - const fragment_parts_t& parts, - pixel_t& texel, const texture_unit_t& tmu, + const fragment_parts_t& /*parts*/, + pixel_t& texel, const texture_unit_t& /*tmu*/, int U, int V, pointer_t& txPtr, int FRAC_BITS) { diff --git a/libpixelflinger/picker.cpp b/libpixelflinger/picker.cpp index 030ef19..aa55229 100644 --- a/libpixelflinger/picker.cpp +++ b/libpixelflinger/picker.cpp @@ -26,7 +26,7 @@ namespace android { // ---------------------------------------------------------------------------- -void ggl_init_picker(context_t* c) +void ggl_init_picker(context_t* /*c*/) { } diff --git a/libpixelflinger/pixelflinger.cpp b/libpixelflinger/pixelflinger.cpp index 84e584e..ea5bc8e 100644 --- a/libpixelflinger/pixelflinger.cpp +++ b/libpixelflinger/pixelflinger.cpp @@ -662,7 +662,7 @@ void ggl_enable_dither(context_t* c, int enable) } } -void ggl_enable_stencil_test(context_t* c, int enable) +void ggl_enable_stencil_test(context_t* /*c*/, int /*enable*/) { } diff --git a/libpixelflinger/raster.cpp b/libpixelflinger/raster.cpp index 32b2a97..26d8e45 100644 --- a/libpixelflinger/raster.cpp +++ b/libpixelflinger/raster.cpp @@ -51,7 +51,7 @@ void ggl_rasterPos2i(void* con, GGLint x, GGLint y) } void ggl_copyPixels(void* con, GGLint xs, GGLint ys, - GGLsizei width, GGLsizei height, GGLenum type) + GGLsizei width, GGLsizei height, GGLenum /*type*/) { GGL_CONTEXT(c, con); diff --git a/libpixelflinger/scanline.cpp b/libpixelflinger/scanline.cpp index aa23ca6..26b9a3e 100644 --- a/libpixelflinger/scanline.cpp +++ b/libpixelflinger/scanline.cpp @@ -26,6 +26,10 @@ #include <cutils/memory.h> #include <cutils/log.h> +#ifdef __arm__ +#include <machine/cpu-features.h> +#endif + #include "buffer.h" #include "scanline.h" @@ -35,7 +39,7 @@ #include "codeflinger/ARMAssembler.h" #elif defined(__aarch64__) #include "codeflinger/Arm64Assembler.h" -#elif defined(__mips__) +#elif defined(__mips__) && !defined(__LP64__) #include "codeflinger/MIPSAssembler.h" #endif //#include "codeflinger/ARMAssemblerOptimizer.h" @@ -55,7 +59,7 @@ # define ANDROID_CODEGEN ANDROID_CODEGEN_GENERATED #endif -#if defined(__arm__) || defined(__mips__) || defined(__aarch64__) +#if defined(__arm__) || (defined(__mips__) && !defined(__LP64__)) || defined(__aarch64__) # define ANDROID_ARM_CODEGEN 1 #else # define ANDROID_ARM_CODEGEN 0 @@ -69,7 +73,7 @@ */ #define DEBUG_NEEDS 0 -#ifdef __mips__ +#if defined( __mips__) && !defined(__LP64__) #define ASSEMBLY_SCRATCH_SIZE 4096 #elif defined(__aarch64__) #define ASSEMBLY_SCRATCH_SIZE 8192 @@ -130,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__) extern "C" void scanline_t32cb16blend_mips(uint16_t*, uint32_t*, size_t); #endif @@ -408,10 +412,10 @@ static void pick_scanline(context_t* c) GGLAssembler assembler( new ArmToArm64Assembler(a) ); #endif // generate the scanline code for the given needs - int err = assembler.scanline(c->state.needs, c); + bool err = assembler.scanline(c->state.needs, c) != 0; if (ggl_likely(!err)) { // finally, cache this assembly - err = gCodeCache.cache(a->key(), a); + err = gCodeCache.cache(a->key(), a) < 0; } if (ggl_unlikely(err)) { ALOGE("error generating or caching assembly. Reverting to NOP."); @@ -534,7 +538,7 @@ static inline int blendfactor(uint32_t x, uint32_t size, uint32_t def = 0) return x; } -void blend_factor(context_t* c, pixel_t* r, +void blend_factor(context_t* /*c*/, pixel_t* r, uint32_t factor, const pixel_t* src, const pixel_t* dst) { switch (factor) { @@ -1161,7 +1165,7 @@ protected: * blender.blend(<32-bit-src-pixel-value>,<ptr-to-16-bit-dest-pixel>) */ struct blender_32to16 { - blender_32to16(context_t* c) { } + blender_32to16(context_t* /*c*/) { } void write(uint32_t s, uint16_t* dst) { if (s == 0) return; @@ -1218,7 +1222,7 @@ struct blender_32to16 { * where dstFactor=srcA*(1-srcA) srcFactor=srcA */ struct blender_32to16_srcA { - blender_32to16_srcA(const context_t* c) { } + blender_32to16_srcA(const context_t* /*c*/) { } void write(uint32_t s, uint16_t* dst) { if (!s) { return; @@ -2171,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__)) || defined(__aarch64__))) int32_t x = c->iterators.xl; size_t ct = c->iterators.xr - x; int32_t y = c->iterators.y; @@ -2317,7 +2321,7 @@ void scanline_set(context_t* c) memset(dst, 0xFF, size); } -void scanline_noop(context_t* c) +void scanline_noop(context_t* /*c*/) { } diff --git a/libpixelflinger/tests/arch-arm64/assembler/Android.mk b/libpixelflinger/tests/arch-arm64/assembler/Android.mk index 36db49c..eca36ef 100644 --- a/libpixelflinger/tests/arch-arm64/assembler/Android.mk +++ b/libpixelflinger/tests/arch-arm64/assembler/Android.mk @@ -16,4 +16,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 84381d5..456be58 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) diff --git a/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk b/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk index ac890c7..3368eb0 100644 --- a/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk +++ b/libpixelflinger/tests/arch-arm64/col32cb16blend/Android.mk @@ -13,4 +13,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..8e5ec5e 100644 --- a/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk +++ b/libpixelflinger/tests/arch-arm64/t32cb16blend/Android.mk @@ -13,4 +13,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..46c1ccc 100644 --- a/libpixelflinger/tests/codegen/codegen.cpp +++ b/libpixelflinger/tests/codegen/codegen.cpp @@ -52,7 +52,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__) 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) diff --git a/libpixelflinger/tests/gglmul/gglmul_test.cpp b/libpixelflinger/tests/gglmul/gglmul_test.cpp index 073368e..5d460d6 100644 --- a/libpixelflinger/tests/gglmul/gglmul_test.cpp +++ b/libpixelflinger/tests/gglmul/gglmul_test.cpp @@ -28,6 +28,7 @@ #include <stdio.h> #include <stdint.h> +#include <inttypes.h> #include "private/pixelflinger/ggl_fixed.h" @@ -260,12 +261,12 @@ void gglMulii_test() if(actual == expected) printf(" Passed\n"); else - printf(" Failed Actual(%ld) Expected(%ld)\n", + printf(" Failed Actual(%" PRId64 ") Expected(%" PRId64 ")\n", actual, expected); } } -int main(int argc, char** argv) +int main(int /*argc*/, char** /*argv*/) { gglClampx_test(); gglClz_test(); |