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

« back to all changes in this revision

Viewing changes to README

  • Committer: Michael Hope
  • Date: 2010-08-30 23:30:25 UTC
  • Revision ID: michael.hope@linaro.org-20100830233025-2f14wknqev6ryj01
Modified the imported versions to build locally.  Added the CSL routines.

Show diffs side-by-side

added added

removed removed

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