~linaro-toolchain-dev/cortex-strings/trunk

8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
1
= Cortex-A String Routines =
2
97.1.1 by Matthew Gretton-Dann
Update documentation to include AArch64.
3
This package contains optimised string routines including memcpy(), memset(),
4
strcpy(), strlen() for the ARM Cortex-A series of cores.
5
6
Various implementations of these routines are provided, including generic
119 by Will Newton
Update README to reflect src/neon going away.
7
implementations for ARMv7-A cores with/without Neon, Thumb2 implementations
8
and generic implementations for cores supporting AArch64.
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
9
10
== Getting started ==
57 by Dr. David Alan Gilbert
Take out references to eglibc add on
11
First configure and then install libcortex-strings.so.  To make other
12
applications use this library, either add -lcortex-strings to the link
13
command or use LD_PRELOAD to load the library into existing applications.
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
14
58 by Michael Hope
Bumped the version as we're almost at 1.0. Tidied up the README. Added an overview comment to one of the scripts.
15
Our intent is to get these routines into the common C libraries such
16
as GLIBC, Bionic, and Newlib.  Your system may already include them!
17
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
18
== Contents ==
19
 * src/  contains the routines themselves
20
 * tests/  contains the unit tests
21
 * reference/  contains reference copies of other ARM-focused
22
   implementations gathered from around the Internet
23
 * benchmarks/  contains various benchmarks, tools, and scripts used to
24
   check and report on the different implementations.
25
26
The src directory contains different variants organised by the
27
implementation they run on and optional features used.  For example:
97.1.1 by Matthew Gretton-Dann
Update documentation to include AArch64.
28
  * src/thumb-2  contains generic non-NEON routines for AArch32 (with Thumb-2).
29
  * src/linaro-a9  contains tuned routines for Cortex-A9 processors.
30
  * src/aarch64  contains generic routines for AArch64.
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
31
39 by Michael Hope
Updates after pulling in new routines to the reference. Document where the reference files come from.
32
== Reference versions ==
33
reference/ contains versions collected from various popular Open
34
Source libraries.  These have been modified for use in benchmarking.
35
Please refer to the individual files for any licensing terms.
36
37
The routines were collected from the following releases:
38
 * EGLIBC 2.13
39
 * Newlib 1.19.0
40
 * Bionic android-2.3.5_r1
41
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
42
== Licensing ==
45 by Michael Hope
Removed obsolete build files. Updated the license on more files.
43
All Linaro-authored routines are under the modified BSD license:
44
53 by Michael Hope
Changed 'Linaro Inc.' for the correct 'Linaro Limited' everywhere.
45
Copyright (c) 2011, Linaro Limited
45 by Michael Hope
Removed obsolete build files. Updated the license on more files.
46
All rights reserved.
47
48
Redistribution and use in source and binary forms, with or without
49
modification, are permitted provided that the following conditions are met:
50
    * Redistributions of source code must retain the above copyright
51
      notice, this list of conditions and the following disclaimer.
52
    * Redistributions in binary form must reproduce the above copyright
53
      notice, this list of conditions and the following disclaimer in the
54
      documentation and/or other materials provided with the distribution.
55
    * Neither the name of the Linaro nor the
56
      names of its contributors may be used to endorse or promote products
57
      derived from this software without specific prior written permission.
58
59
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
60
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
61
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
53 by Michael Hope
Changed 'Linaro Inc.' for the correct 'Linaro Limited' everywhere.
62
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
45 by Michael Hope
Removed obsolete build files. Updated the license on more files.
63
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
64
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
65
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
66
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
67
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
68
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
69
70
All third party routines are under a GPL compatible license.
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
71
72
== Notes and Limitations ==
54 by Michael Hope
Minor style changes. Documented the basics of style.
73
Some of the implementations have been collected from other
74
projects and have a variety of licenses and copyright holders.
75
76
== Style ==
77
Assembly code attempts to follow the GLIBC coding convetions.  They
78
are:
79
 * Copyright headers in C style comment blocks
80
 * Instructions indented with one tab
81
 * Operands indented with one tab
82
 * Text is wrapped at 70 characters
83
 * End of line comments are fine