]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cortex-strings/README
Remove spurious newline
[FreeBSD/FreeBSD.git] / contrib / cortex-strings / README
1 = Cortex-A String Routines =
2
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
7 implementations for ARMv7-A cores with/without Neon, Thumb2 implementations
8 and generic implementations for cores supporting AArch64.
9
10 == Getting started ==
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.
14
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
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:
28   * src/thumb-2  contains generic non-NEON routines for AArch32 (with Thumb-2).
29   * src/arm  contains tuned routines for Cortex-A class processors.
30   * src/aarch64  contains generic routines for AArch64.
31   * src/thumb  contains generic routines for armv6-M (with Thumb).
32
33 == Reference versions ==
34 reference/ contains versions collected from various popular Open
35 Source libraries.  These have been modified for use in benchmarking.
36 Please refer to the individual files for any licensing terms.
37
38 The routines were collected from the following releases:
39  * EGLIBC 2.13
40  * Newlib 1.19.0
41  * Bionic android-2.3.5_r1
42
43 == Licensing ==
44 All Linaro-authored routines are under the modified BSD license:
45
46 Copyright (c) 2011, Linaro Limited
47 All rights reserved.
48
49 Redistribution and use in source and binary forms, with or without
50 modification, are permitted provided that the following conditions are met:
51     * Redistributions of source code must retain the above copyright
52       notice, this list of conditions and the following disclaimer.
53     * Redistributions in binary form must reproduce the above copyright
54       notice, this list of conditions and the following disclaimer in the
55       documentation and/or other materials provided with the distribution.
56     * Neither the name of the Linaro nor the
57       names of its contributors may be used to endorse or promote products
58       derived from this software without specific prior written permission.
59
60 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
61 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
62 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
63 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
64 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
65 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
66 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
67 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
68 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
69 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
70
71 All ARM-authored routines are under the modified BSD license:
72
73 Copyright (c) 2014 ARM Ltd
74 All rights reserved.
75
76 Redistribution and use in source and binary forms, with or without
77 modification, are permitted provided that the following conditions are met:
78     * Redistributions of source code must retain the above copyright
79       notice, this list of conditions and the following disclaimer.
80     * Redistributions in binary form must reproduce the above copyright
81       notice, this list of conditions and the following disclaimer in the
82       documentation and/or other materials provided with the distribution.
83     * Neither the name of the Linaro nor the
84       names of its contributors may be used to endorse or promote products
85       derived from this software without specific prior written permission.
86
87 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
88 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
89 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
90 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
91 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
92 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
93 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
94 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
95 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
96 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
97
98 All third party routines are under a GPL compatible license.
99
100 == Notes and Limitations ==
101 Some of the implementations have been collected from other
102 projects and have a variety of licenses and copyright holders.
103
104 == Style ==
105 Assembly code attempts to follow the GLIBC coding convetions.  They
106 are:
107  * Copyright headers in C style comment blocks
108  * Instructions indented with one tab
109  * Operands indented with one tab
110  * Text is wrapped at 70 characters
111  * End of line comments are fine