Commit graph

107 commits

Author SHA1 Message Date
Josh Gao
70bde21ae4 Use dlmalloc from external/dlmalloc instead of bionic/.
Bug: http://b/17207577
Change-Id: Ib9b4cd417091b765402ad217ae0b5a10e3ffbc23
2016-01-22 11:04:35 -08:00
Ljubomir Papuga
e0c9f2bc5a libpixelflinger: MIPS64 assembler test bug fix
Change-Id: I47f77790baabea85ee318976a2c44ab1c0c0b9cb
2015-12-15 15:23:01 +01:00
Chih-Hung Hsieh
2858ba18e7 Add explicit cast to shut off clang warnings.
* The literals are signed negative int and got warnings about
  .... cannot be narrowed to type uint64_t [-Wc++11-narrowing]

Change-Id: I88c2fc328dfe5c7e2f9ade32bcba273e4a74a84c
2015-11-23 09:07:16 -08:00
Chih-Hung Hsieh
caa8810c64 Add explicit cast to shut off clang warnings.
* The literals are signed int type and got warnings about
  .... cannot be narrowed to type int16_t [-Wc++11-narrowing]

Change-Id: I156d8e456c70840953aebb24739f94256248b810
2015-11-20 10:21:55 -08:00
Ljubomir Papuga
4edb4584a6 libpixelflinger: MIPS64r6 bug fix
This commit fixes MIPS64r6 bootanimation crash.

Change-Id: If7ca817ee2beaf92bb8052602cc759bb4a609419
2015-11-10 14:24:11 +01:00
Elliott Hughes
606d4aecfb Revert "Revert "Add MIPS64r6 support for libpixelflinger""
This reverts commit 7fd121788a.

Change-Id: Ic1204a8407c235b07c643764d5f2800631fecd72
2015-11-06 16:02:25 +01:00
Elliott Hughes
c77c1a3f0a Merge "Revert "Add MIPS64r6 support for libpixelflinger"" 2015-11-05 18:55:12 +00:00
Elliott Hughes
7fd121788a Revert "Add MIPS64r6 support for libpixelflinger"
This reverts commit ab5265ebe6.

This broke the mips64 build (which, stupidly, I hadn't tested):

  system/core/libpixelflinger/codeflinger/MIPS64Assembler.h:24:35: fatal error: tinyutils/KeyedVector.h: No such file or directory
   #include "tinyutils/KeyedVector.h"

Change-Id: I4fa1c04e196592fd1ef893a83c75261a55d32290
2015-11-05 18:54:11 +00:00
Elliott Hughes
251f8b69fb Merge "Add MIPS64r6 support for libpixelflinger" 2015-11-05 18:03:18 +00:00
Ljubomir Papuga
ab5265ebe6 Add MIPS64r6 support for libpixelflinger
Added ARMtoMips64Assembler class that translates ARM instructions to MIPS64r6
instructions.
Added MIPS64r6 assembly implementations for col32cb16_blend and t32cb16_blend
functions.
Added MIPS32r2 assembly implementation for col32cb16_blend function.
Added tests for MIPS64r6 (assembler, disassembler and assembly implementation
functions).
Added MIPS32 tests for assembly implementation functions.
Minor bug fixes for MIPS32r2 branch.

Change-Id: I69e49622117be5b8167628e9702db6aafb1849d7
2015-10-29 17:22:17 +01:00
Elliott Hughes
998bd12c3f Merge "Fix some compiler warnings in libpixelflinger."
am: 5643f80947

* commit '5643f8094753e4672cb64ff9b4a7b307d43a80ac':
  Fix some compiler warnings in libpixelflinger.
2015-10-22 22:15:31 +00:00
Elliott Hughes
cd6b53fd83 Fix some compiler warnings in libpixelflinger.
class/struct mismatch and use of 'register'.

Change-Id: I6cfe0f7fdc214c3a009eb01251f5ea9a8fdb895d
2015-10-21 18:52:17 -07:00
Narayan Kamath
51e740f802 resolved conflicts for 32d86587 to mnc-dr-dev-plus-aosp
Change-Id: I381133e7dd93f908bd3d2b42e8af83d954e428af
2015-09-08 13:59:49 +01:00
Narayan Kamath
c609c31fb5 libutils: Fix integer overflows in VectorImpl.
Use external/safe-iop to check for overflows on arithmetic
operations.

Also remove an unnecessary copy of Vector/SharedBuffer from
codeflinger and use the copy from libutils instead.

Note that some of the unit tests are somewhat useless due to
test-runner limitations : gtest's ability to filter on abort message
doesn't work when combined with messages formatted by android's logging
system.

bug: 22953624

Change-Id: I46b1ae8ca1f3a010be13aca36a091e76a97a7b70
2015-09-02 12:37:49 +01:00
Chih-Hung Hsieh
7244cf2aa5 To compile with llvm integrated assembler.
* Explicitly specify default .align 0.
* Use standard ldmfdlo instruction.
* Before and after gas outputs are identical,
  with align 0 sections.
* Objdump showed .text/.data/.bss section alignment
  attributes are 2^0 from gas and 2^2 from llvm
  assembler. These .S files might be working when
  compiled by gas, but llvm assembler's output should
  be more correct or conservative.

Change-Id: I4e578dbc8155c0d06d1bbc1c33ec4cc851a18479
2015-08-21 15:58:26 -07:00
Greg Hackmann
38eb58d2a8 pixelflinger: make self-contained
pixelflinger should not be used for new projects and should be moved out
of system/core at some point.  As the first step, move all its headers
under system/core/libpixelflinger/include and update its Android.mk
files so they're not referring to the absolute system/core path anymore.

Change-Id: Idead273ab2c0450409d770f5402c4dba916192a9
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-19 12:34:35 -07:00
Greg Hackmann
92564d6e58 Merge "pixelflinger: don't build static library" 2015-03-17 16:43:21 +00:00
Paul Eastham
cc255b4873 Revert "pixelflinger: make self-contained"
This reverts commit 56350fe387.

Change-Id: I4cda5773f39abd3b24df65d7bd9daaef92314b52
2015-03-16 19:01:38 +00:00
Greg Hackmann
593b592e93 pixelflinger: don't build static library
libagl is now the only remaining pixelflinger client in the Android
tree, and it links with pixelflinger dynamically.

Change-Id: Ic5f8af57a88ceaeb25bf890cd6be8bc5a893fc10
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-12 13:07:59 -07:00
Greg Hackmann
56350fe387 pixelflinger: make self-contained
pixelflinger should not be used for new projects and should be moved out
of system/core at some point.  As the first step, move all its headers
under system/core/libpixelflinger/include and update its Android.mk
files so they're not referring to the absolute system/core path anymore.

Change-Id: I7acc3ef5b2e21d8ba6fe939ea8d3ec4c41959591
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-12 13:02:38 -07:00
Elliott Hughes
110dd4b24b Remove obsolete BUILD_TINY_ANDROID.
Change-Id: I876bce99efb40cd791256535d8d6c0d046b7aeae
2015-01-24 22:39:10 -08:00
Elliott Hughes
76f0a84f6a Linux always has POSIX clocks available.
pixelflinger doesn't have to run on the Mac, but the Condition
code might.

Change-Id: Ib4e9b4daa6e848ffd5742959427b172d45f08e3c
2015-01-09 16:17:46 -08:00
Elliott Hughes
d05f1d51ad Remove dead code.
Intel accidentally made this dead code in 2010 with commit
2bef93cc20, and no one's ever noticed.

Since no one noticing for so long implies that it doesn't matter,
let's just kill the supposedly optimized code.

Change-Id: Id5b37056cb8884c20bfe2db362e19b46f02e337d
2014-12-03 19:35:16 -08:00
Elliott Hughes
053ca3fc42 libpixelflinger should #define __ARM_HAVE_NEON.
Bug: 18556103
Change-Id: Ife07cf63948f1c248bcde5685cdb6d89c373d988
2014-12-03 17:15:14 -08:00
Dan Albert
fd1c060eaa Fix build.
More UD literals that weren't caught by hammerhead...

Change-Id: I6b0abdeef41d1f40c2fe86843b5149925ff6356e
2014-11-28 12:30:46 -08:00
Chih-Hung Hsieh
dc61d77872 Fix type cast error, should be char* not void*.
BUG: 18106835
Change-Id: Ic0051d5035e5684de0091cd3528d65e1b1e57161
2014-10-23 15:25:28 -07:00
Chih-Hung Hsieh
60c57dad4e Add -no-integrated-as at local level.
Later we will enable integrated-as as default at the global level.

BUG: 17820427
Change-Id: I1beed3e75d074d970fa9112ec1c0f0df3d43947a
2014-10-06 13:33:25 -07:00
Dan Albert
949aa23898 Fix some clang compilation issues.
Use expected inline behavior with clang.

GCC defaults to -std=gnu90, giving C89 inline semantics with GNU
extensions. Clang defaults to C99. Explicitly use gnu90.

Mark an unused parameter as __unused.

Fix some incorrect casts.

Change-Id: I05b95585d5e3688eda71769b63b6b8a9237bcaf4
2014-09-11 17:17:32 +00:00
Duane Sand
734f50c2fe [MIPSR6] Skip pixelflinger, memset assembler code on mips32r6
Temporarily use generic C-coded libpixelflinger & memset on mips32r6.

Change-Id: I629b11ba955eaba323cba1df96c39f75f4d24d62
2014-07-31 16:21:16 -07:00
Narayan Kamath
992031c876 Build pixelflinger tests as native tests, not executables.
This has the side effect of building tests for both 32
and 64 bit, where required.

Change-Id: I674800d34b4fa7cc5d34573c96b754ac85777970
2014-06-26 13:22:44 +01:00
Ashok Bhat
410ae2fe8e pixelflinger: Use pointer arithmetic to determine cache flush parameters
CodeCache casts base address to long and then adds size (of type
ssize_t) to get end address. This can cause sign-extension problems.
This patch instead uses simple pointer arithmetic.

Change-Id: Ib71d515a6fd6a7f4762cf974d6cf4eba9a601fa8
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-06-19 12:29:19 +01:00
Duane Sand
f1d63bdf00 [MIPS64] Use generic cpu-independent libpixelflinger for mips64
For now, use generic C code instead of generated mips instructions,
in the same manner as used on x86 and x86_64 targets.

Change-Id: If3607484e0a446a755c62c030b3069d46ab5beb2
2014-06-03 16:53:12 -07:00
Hurri Lu
473a729937 Judge mmap failed by MAP_FAILED instead of NULL
Change-Id: I74422cfdba341fcd1a6235044700cf3986e853d0
Signed-off-by: Hurri Lu <jlu32@marvell.com>
2014-05-22 12:51:39 +08:00
Sasha Levitskiy
cdc1cfb3e5 Cleanup: warning fixit.
bootable/recovery has a dependent commit: I9adb470b04e4301989d128c9c3097b21b4dea431

Change-Id: Icf23e659265d71d5226d527c2b40cfbc132320ee
Signed-off-by: Sasha Levitskiy <sanek@google.com>
2014-04-11 16:15:46 -07:00
Kévin PETIT
d82b2a3eb4 Fix the build for NEON in libpixelflinger
ARCH_ARM_HAVE_NEON is only ever defined to true, so test for that.
For the NEON function to be used, the file has to include
machine/cpu-features.h so that __ARM_HAVE_NEON is defined.

Change-Id: I0db196b39c493092415859e009531fcff6fc1e8b
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-03-06 15:53:27 +00:00
Kévin PETIT
c2659e72d7 Fix the handling of CodeCache return codes in pixelflinger
The error condition was not correctly detected: an error was
reported by checking that the index returned by CodeCache::cache
was non-zero. This did not work because this function can return
a positive value on success.

Change-Id: I1f90125ee62ab277b80da4dfb341733cd6e8e86a
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-02-26 11:39:13 +00:00
Ashok Bhat
3078b13b98 Fix compiler warnings in libpixelflinger
Change-Id: I6a5708ae6bc934b196d59d81a6cd550b05ed704f
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 14:21:55 -08:00
Colin Cross
f88fb1fade pixelflinger: support multilib builds
Use the LOCAL_*_arch variables to support building for 32-bit and
64-bit at the same time.

Change-Id: Ibef8044e8b6500a6aa111320eb35bcdaf51ad064
2014-02-11 13:36:14 -08:00
Colin Cross
32ea4a895c 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
2014-02-11 13:32:44 -08:00
Elliott Hughes
81eb357b58 Use <stdint.h> for INT32_MIN and INT32_MAX.
Bug: 12708004
Change-Id: I99f222b2db1d128abf6ffbf7173a5aaff48f8e85
2014-01-24 16:08:03 -08:00
Colin Cross
d4146e6091 system/core: rename aarch64 target to arm64
Rename aarch64 build targets to arm64.  The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
2014-01-23 18:01:14 -08:00
Ashok Bhat
658f89dc5c Pixelflinger: Add AArch64 support to pixelflinger JIT.
See the comment-block at the top of Aarch64Assembler.cpp
for overview on how AArch64 support has been implemented

In addition, this commit contains
[x] AArch64 inline asm versions of gglmul series of
    functions and a new unit test bench to test the
    functions

[x] Assembly implementations of scanline_col32cb16blend
    and scanline_t32cb16blend for AArch64, with unit
    test bench

Change-Id: I915cded9e1d39d9a2a70bf8a0394b8a0064d1eb4
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2013-12-12 17:30:13 +00:00
Ashok Bhat
bfc6dc4ca8 Pixelflinger: Support for handling 64-bit addresses in GGL Assembler
GGLAssembler assumes addresses to be 32-bit and uses ARM 32-bit
instructions to load/store/manipulate addresses. To support, 64-bit
architectures, following changes has been done

1. ARMAssemblerInterface has been extended to support four new
   operations ADDR_LDR, ADDR_STR, ADDR_SUB, ADDR_ADD. Base class
   implements these virtual functions to use 32bit  equivalent
   function. This avoids existing 32-bit Assembler backend
   implementations like ARMAssembler and MIPSAssembler  from
   mapping the new functions to existing equivalent routines.
   This also allows 64-bit Architectures like AArch64 to override
   the function in their assembler backend implementations.

2. GGLAssembler code (spread over GGLAssembler.cpp, GGLAssembler.h
   and texturing.cpp) has been changed to use the new operations
   for address operations.

Change-Id: I3d7eace4691e3e47cef737d97ac67ce6ef4fb18d
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2013-12-12 17:30:13 +00:00
Ashok Bhat
d10afb1748 Pixelflinger: Fix issue of pointers being stored in ints
Pixelflinger's code makes assumptions, at certain places,
that pointers can be stored as ints. This patch makes use
of uintptr_t wherever pointers are stored as int or cast
to int.

Change-Id: Ie76f425cbc82ac038a747f77a95bd31774f4a8e8
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2013-12-12 17:30:13 +00:00
synergy dev
cd2fe3b49b libpixelflinger: do not use anonymous structs
Avoiding the use of gnu extensions improves code portability

Change-Id: Ie9e94e3ce030f52a22997f8a48de1e6c1c549894
2013-11-25 18:54:56 +00:00
Ying Wang
083b5ccba3 Add liblog
Bug: 8580410
Change-Id: Iab3a9b4307f207c14a04a922cc7350c54e60e9ad
2013-04-09 22:03:45 -07:00
Mathias Agopian
9857d99eec move tinyutils into its own namespace
I was fed-up with the constant conflicts in Eclipse
with the "libutils" version.

Also fix a few copyright notices.

Change-Id: I8ffcb845af4b5d0d178f5565f64dfcfbfa27fcd6
2013-04-01 16:50:43 -07:00
Ian Rogers
04b5ac36a5 Remove unnecessary compiler pragma.
With dlmalloc 2.8.6 the compiler pragmas to suppress warnings are not
necessary.
Also fix compiler warning about redefinition of LOG_TAG.

Depends upon: https://android-review.googlesource.com/42351

Change-Id: I50f70be31f4bd994b09083e722759464476c70b3
2012-08-29 18:13:14 -07:00
Jean-Baptiste Queru
c3c5358b94 Merge "Add MIPS support to pixelflinger." 2012-08-27 14:22:22 -07:00
Ian Rogers
2d13791ce7 Upgrade to dlmalloc 2.8.5.
Remove mspace functionality from cutils.
Directly declare mspace from dlmalloc in code flinger's code cache, and
manage without using morecore.

Depends upon: https://android-review.googlesource.com/41717

Change-Id: If927254febd4414212c690f16509ef2ee1b44b44
2012-08-20 15:30:35 -07:00