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

« back to all changes in this revision

Viewing changes to README

  • Committer: Will Newton
  • Date: 2013-06-25 14:07:04 UTC
  • Revision ID: will.newton@linaro.org-20130625140704-jp1ad8y2p8d416qk
Support multiple runs of each benchmark.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
= Cortex-A String Routines =
2
2
 
3
 
This package contains optimised string routines including memcpy(),
4
 
memset(), strcpy(), strlen(), and strcmp() for the ARM Cortex-A series
5
 
of processors.  Variants are available for the Cortex-A8 and
6
 
Cortex-A9, as well as variants that make use of the optional NEON
7
 
unit.
 
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, an implementation tuned
 
8
for Cortex-A9 and generic implementations for cores supporting AArch64.
8
9
 
9
10
== Getting started ==
10
 
These routines can be used either stand-alone or as a GLIBC add-on.
11
 
 
12
 
To use them stand-alone, first configure and then install
13
 
libcortex-strings.so.  To make other applications use this library, either
14
 
add -lcortex-strings to the link command or use LD_PRELOAD to load the
15
 
library into existing applications.
16
 
 
17
 
To use them as a GLIBC add-on, first configure and run `make add-on`
18
 
to generate cortex-strings.tar.  Extract this into the GLIBC source
19
 
directory, enable the add-on using `--enable-add-ons=cortex-strings` and
20
 
`--with-cpu=cortex-a9`, build GLIBC, and install.
 
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!
21
17
 
22
18
== Contents ==
23
19
 * src/  contains the routines themselves
29
25
 
30
26
The src directory contains different variants organised by the
31
27
implementation they run on and optional features used.  For example:
32
 
  * src/thumb-2  contains generic non-NEON routines for all processors
33
 
  * src/neon  contains NEON based routines for all processors
 
28
  * src/thumb-2  contains generic non-NEON routines for AArch32 (with Thumb-2).
 
29
  * src/neon  contains NEON based routines for AArch32.
 
30
  * src/linaro-a9  contains tuned routines for Cortex-A9 processors.
 
31
  * src/aarch64  contains generic routines for AArch64.
34
32
 
35
33
== Reference versions ==
36
34
reference/ contains versions collected from various popular Open
42
40
 * Newlib 1.19.0
43
41
 * Bionic android-2.3.5_r1
44
42
 
45
 
== History ==
46
 
 
47
 
See:
48
 
 https://blueprints.launchpad.net/linaro/+spec/armv7-string-tuning
49
 
for future work.
50
 
 
51
43
== Licensing ==
52
44
All Linaro-authored routines are under the modified BSD license:
53
45
 
54
 
Copyright (c) 2011, Linaro Inc.
 
46
Copyright (c) 2011, Linaro Limited
55
47
All rights reserved.
56
48
 
57
49
Redistribution and use in source and binary forms, with or without
68
60
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
69
61
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
70
62
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
71
 
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
 
63
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
72
64
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
73
65
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
74
66
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
79
71
All third party routines are under a GPL compatible license.
80
72
 
81
73
== Notes and Limitations ==
82
 
This is an early release that contains Cortex-A8 with NEON focused
83
 
routines.  Most of the implementations have been collected from other
84
 
projects and have a variety of licenses and copyright holders.  Future
85
 
releases will tidy this up.
 
74
Some of the implementations have been collected from other
 
75
projects and have a variety of licenses and copyright holders.
 
76
 
 
77
== Style ==
 
78
Assembly code attempts to follow the GLIBC coding convetions.  They
 
79
are:
 
80
 * Copyright headers in C style comment blocks
 
81
 * Instructions indented with one tab
 
82
 * Operands indented with one tab
 
83
 * Text is wrapped at 70 characters
 
84
 * End of line comments are fine