summaryrefslogtreecommitdiffstats
path: root/libc/arch-arm
Commit message (Collapse)AuthorAgeFilesLines
* Merge changes I738be460,I46d5ba55 into froyoQ8650BSDCANLYA5015Linux Build Service Account2010-07-011-1/+12
|\ | | | | | | | | | | * changes: bionic: remove V5 instruction for V6 targets bionic: Change cache line size to 32
| * bionic: remove V5 instruction for V6 targetsBrian Steuer2010-06-291-0/+11
| | | | | | | | | | Instructions in memcpy that are only needed for ARMV5 targets are now conditionally compiled for those targets.
| * bionic: Change cache line size to 32Brian Steuer2010-06-291-1/+1
| | | | | | | | | | Setting the cache line size to 32 for cache readahead purposes improves performance for most memcpy sizes.
* | libc: Add cpu-features.h dependency to atomics_arm.SM76XXTSNCJNLYA6010David Ng2010-06-291-0/+1
|/ | | | Change-Id: I8ad89bb00b3a03c94f8601d0703b16ef5c08909f
* Use private futexes for pthread_mutex_t.David 'Digit' Turner2010-03-181-5/+32
| | | | | | | | | | This does not change the implementation of conditional variables since we're waiting for other system components to properly use pthread_condattr_init/setpshared before that. Also remove an obsolete x86 source file. Change-Id: Ia3e3fbac35b87a534fb04d4381c3c66b975bc8f7
* Revert "bionic: pthread: use private futexes by default for mutexes and ↵Fabrice Di Meglio2010-03-111-48/+0
| | | | | | condvars" This reverts commit ba9c6f0989ae94778ba2b9f597adc827c9dc81e8.
* bionic: pthread: use private futexes by default for mutexes and condvarsDavid 'Digit' Turner2010-03-111-0/+48
| | | | | | | | | | Private futexes are a recent kernel addition: faster futexes that cannot be shared between processes. This patch uses them by default, unless the PROCESS_SHARED attribute flag is used when creating a mutex and/or conditional variable. Also introduces pthread_condattr_init/destroy/setpshared/getpshared. Change-Id: I3a0e2116f467072b046524cb5babc00e41057a53
* Only use NEON memcpy if __ARM_NEON__ is definedColin Cross2010-03-091-1/+1
| | | | Change-Id: I32e6b9385d46efeec15dee8e395a82eef24ba3ea
* bonic: libc: cpuacct support for setuid functionsMike Chan2010-03-024-12/+12
| | | | | | | | | Any of the setuid functions now updates /acct/uid/ with its own tid before changing users. This is so we can properly account for cpu time per uid. Change-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4 Signed-off-by: Mike Chan <mike@android.com>
* add sigaltstack syscallAndrei Popescu2010-03-022-0/+20
|
* bionic: syscalls: Add ioprio_set/ioprio_get syscall wrappersSan Mehat2010-02-233-0/+40
| | | | Signed-off-by: San Mehat <san@google.com>
* Implement clone() C library function properly.David 'Digit' Turner2010-01-253-34/+90
| | | | | | | Only provide an implementation for ARM at the moment, since it requires specific assembly fragments (the standard syscall stubs cannot be used because the child returns in a different stack).
* Add missing symbol type directives.Doug Kwan2009-12-033-0/+8
|
* am 3ba822cc: am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 ↵Mathias Agopian2009-10-291-25/+16
|\ | | | | | | | | | | | | | | | | MiB/s (17% improvment) Merge commit '3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a' into eclair-mr2-plus-aosp * commit '3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a': Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)
| * Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)Mathias Agopian2009-10-281-25/+16
| | | | | | | | | | use 64 bytes cache lines, reduce the main loop to 64-bytes instead of 128 bytes and adjust the prefetch distance to the optimal value.
* | am 76ef331c: am 7e7d6c48: use local symbols in memset so it doesn\'t screw ↵Mathias Agopian2009-10-191-2/+2
|\ \ | |/ | | | | | | | | | | | | | | up profiling Merge commit '76ef331cd6967ca8f5af779d25c8b634f8cdd2b6' into eclair-mr2-plus-aosp * commit '76ef331cd6967ca8f5af779d25c8b634f8cdd2b6': use local symbols in memset so it doesn't screw up profiling
| * use local symbols in memset so it doesn't screw up profilingMathias Agopian2009-10-191-2/+2
| |
* | am fdc5c1f5: Re-enable ARMv7 memcpy implementation.David 'Digit' Turner2009-10-071-15/+1
|\ \ | |/ | | | | | | | | | | Merge commit 'fdc5c1f56f9d21034badb8e4b092c47098f19613' into eclair-plus-aosp * commit 'fdc5c1f56f9d21034badb8e4b092c47098f19613': Re-enable ARMv7 memcpy implementation.
| * Re-enable ARMv7 memcpy implementation.David 'Digit' Turner2009-10-051-15/+1
| | | | | | | | | | | | Do not submit this patch before the one that modifies the Android emulator to work-around a weird ARMv7 emulation issue. This is done to temporarily re-allow the -user builds needed for QA.
* | am 1e40783d: Fix armv7-user builds by disabling the ARMv7-optimized memcpy.David 'Digit' Turner2009-10-071-1/+15
|\ \ | |/ | | | | | | | | | | Merge commit '1e40783d9ad29c88a4d547774e05080fc4327a2e' into eclair-plus-aosp * commit '1e40783d9ad29c88a4d547774e05080fc4327a2e': Fix armv7-user builds by disabling the ARMv7-optimized memcpy.
| * Fix armv7-user builds by disabling the ARMv7-optimized memcpy.David 'Digit' Turner2009-10-021-1/+15
| | | | | | | | | | | | | | This is required to work-around some corny bugs in ARMv7 emulation. The emulation itself is required to run the dex pre-optimization pass for -user builds.
* | am 7a9e06fa: Merge change I2a7ad975 into eclairDavid 'Digit' Turner2009-09-291-0/+152
|\ \ | |/ | | | | | | | | | | Merge commit '7a9e06fa7e4e533074cde314f25dff3024f34a5d' into eclair-plus-aosp * commit '7a9e06fa7e4e533074cde314f25dff3024f34a5d': Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
| * Merge change I2a7ad975 into eclairAndroid (Google) Code Review2009-09-291-0/+152
| |\ | | | | | | | | | | | | * changes: Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.
| | * Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.David 'Digit' Turner2009-09-291-0/+152
| | | | | | | | | | | | | | | For a detailed description of the problem and why this fix is needed, plrease read the comments in libgcc_compat.c
* | | am ee223d02: NEON optimized memcpy.Mathias Agopian2009-09-291-21/+153
|\ \ \ | |/ / | | | | | | | | | | | | | | | Merge commit 'ee223d02d96815c989b62043ff1237b1cd4e14b0' into eclair-plus-aosp * commit 'ee223d02d96815c989b62043ff1237b1cd4e14b0': NEON optimized memcpy.
| * | NEON optimized memcpy.Mathias Agopian2009-09-281-21/+153
| |/ | | | | | | | | 372 MB/s for large transfers, 440 MB/s for smaller ones down to 1KB. 130 MB/s for very small transfers ( < 32 bytes ) Performance is similar with non-congruent buffers.
* | am f355096a: Remove NEON optimizations for memcpyDavid 'Digit' Turner2009-09-271-107/+0
|\ \ | |/ | | | | | | | | | | Merge commit 'f355096a64b74c8e869527de55f7e908873e3128' into eclair-plus-aosp * commit 'f355096a64b74c8e869527de55f7e908873e3128': Remove NEON optimizations for memcpy
| * Remove NEON optimizations for memcpyDavid 'Digit' Turner2009-09-271-107/+0
| |
| * Fix TLS access for ARMv6 and beyond.David 'Digit' Turner2009-09-221-1/+0
| | | | | | | | | | | | | | | | | | | | For performance reasons, we don't call the kernel helper. Instead, we directly access the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded address populated by the kernel on each task switch. NOTE: Since we don't call the kernel helper, this must precisely match your kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER variable to 'true' in your board configuration file.
* | am bd192b47: Add stack unwinding directives to assembly leaf functions.Ben Cheng2009-09-154-0/+17
|\ \ | |/ | | | | | | | | | | Merge commit 'bd192b470b69e00e9313680b70c5572a609e535d' into eclair-plus-aosp * commit 'bd192b470b69e00e9313680b70c5572a609e535d': Add stack unwinding directives to assembly leaf functions.
| * Add stack unwinding directives to assembly leaf functions.Ben Cheng2009-09-154-0/+17
| | | | | | | | So that the real culprit of native crashes can surface in the stack trace.
* | merge from open-source masterJean-Baptiste Queru2009-09-152-0/+17
|\ \ | |/ |/|
| * ARM architecture reference manuals for ARMv6 & ARMv7 state that the use of ↵vinay harugop2009-09-092-0/+17
| | | | | | | | | | | | | | | | | | | | | | 'swp' instruction is deprecated ARMv6 onwards. These architectures provide the load-linked, store-conditional pair of ldrex/strex whose use is recommended in place of 'swp'. Also, the description of the 'swp' instruction in the ARMv6 reference manual states that the swap operation does not include any memory barrier guarantees.This fix attempts to address these issues by providing an atomic swap implementation using ldrex/strex under _ARM_HAVE_LDREX_STREX macro. This Fix is verified on ST Ericsson's U8500 platform and Submitted on behalf of a third-party: Surinder-pal SINGH from STMicroelectronics.
* | Neon-optimized versions of memcpy.David 'Digit' Turner2009-09-021-0/+105
| | | | | | | | | | | | | | This optimization come from the external 0xdroid repository. Original patch can be found here: http://gitorious.org/0xdroid/bionic/commit/ebafe41c2c02f8c09a3c1d7746047083df180ac5
* | Revert "Fix the C library initialization to avoid calling static C++ ↵David 'Digit' Turner2009-06-032-39/+20
| | | | | | | | | | | | constructors twice." This reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.
* | Fix the C library initialization to avoid calling static C++ constructors twice.David 'Digit' Turner2009-06-022-20/+39
|/ | | | | | | | | | | | | | | | | | | | | | | | | | The problem was due to the fact that, in the case of dynamic executables, the dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY constructors when loading shared libraries and dynamic executables, *before* calling the executable's entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c) which in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c The latter did call these constructors array again, mistakenly. The patch also updates the documentation of many related functions. Also adds a new section to linker/README.TXT explaining restrictions on C library usage. The patch has been tested on a Dream for stability issues with proprietary blobs: - H264 decoding works - Camera + Video recording works - GPS works - Sensors work The tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been run and shows the static C++ constructor being called only once.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-03202-0/+6689
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-03202-6689/+0
|
* auto import from //branches/cupcake/...@132276The Android Open Source Project2009-02-1912-222/+0
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-0/+82
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-1717-50/+295
|
* Initial Contributionandroid-1.0The Android Open Source Project2008-10-21209-0/+6584