[haiku-commits] haiku: hrev52253 - in src: system/libroot/posix/string/arch/arm data/package_infos/any data/package_infos data/package_infos/generic

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 20 Aug 2018 11:54:40 -0400 (EDT)

hrev52253 adds 2 changesets to branch 'master'
old head: 07a70c6febb8525f175e96126406e275f48c57a3
new head: b2cb85f4d5aaeede227abb9abbffecbfbececa58
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=b2cb85f4d5aa+%5E07a70c6febb8

----------------------------------------------------------------------------

fbc02f943712: pacakge_infos: Update copyrights.

b2cb85f4d5aa: libroot: New memcpy for ARM.
  
  It seems the old one was just broken (see mailing list discussion.)
  
  This new one was built from the generic one, but it was done using
  a trunk build of Clang 8 with tuned optimization flags, and is
  smaller (101 instructions) than GCC 8's (134 instructions) and
  the old hand-optimized one (~125 instructions?) as well as being
  targeted for ARMv7 instead of ARMv6 like the old one was.
  
  In the future, we may want to look at newlib's ARM memcpy, which
  is probably much more hand-optmized than this one is, but this
  is at least better than what we had before.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

----------------------------------------------------------------------------

36 files changed, 164 insertions(+), 195 deletions(-)
src/data/package_infos/any/haiku_userguide       |   2 +-
src/data/package_infos/any/haiku_userguide_ca    |   2 +-
src/data/package_infos/any/haiku_userguide_de    |   2 +-
src/data/package_infos/any/haiku_userguide_en    |   2 +-
src/data/package_infos/any/haiku_userguide_es    |   2 +-
src/data/package_infos/any/haiku_userguide_fi    |   2 +-
src/data/package_infos/any/haiku_userguide_fr    |   2 +-
src/data/package_infos/any/haiku_userguide_hu    |   2 +-
src/data/package_infos/any/haiku_userguide_it    |   2 +-
src/data/package_infos/any/haiku_userguide_jp    |   2 +-
src/data/package_infos/any/haiku_userguide_pl    |   2 +-
src/data/package_infos/any/haiku_userguide_pt_BR |   2 +-
src/data/package_infos/any/haiku_userguide_pt_PT |   2 +-
src/data/package_infos/any/haiku_userguide_ru    |   2 +-
src/data/package_infos/any/haiku_userguide_sk    |   2 +-
src/data/package_infos/any/haiku_userguide_sv_SE |   2 +-
src/data/package_infos/any/haiku_userguide_uk    |   2 +-
src/data/package_infos/any/haiku_userguide_zh_CN |   2 +-
src/data/package_infos/any/haiku_welcome         |   2 +-
src/data/package_infos/any/makefile_engine       |   2 +-
src/data/package_infos/arm/haiku                 |   2 +-
src/data/package_infos/generic/haiku_cross_devel |   2 +-
.../generic/haiku_cross_devel_sysroot            |   2 +-
src/data/package_infos/generic/haiku_devel       |   2 +-
.../package_infos/generic/haiku_devel_secondary  |   2 +-
src/data/package_infos/generic/haiku_loader      |   2 +-
src/data/package_infos/generic/webpositive       |   2 +-
src/data/package_infos/m68k/haiku                |   2 +-
src/data/package_infos/ppc/haiku                 |   2 +-
src/data/package_infos/x86/haiku                 |   2 +-
src/data/package_infos/x86/haiku_secondary       |   2 +-
src/data/package_infos/x86_64/haiku              |   2 +-
src/data/package_infos/x86_64/haiku_secondary    |   2 +-
src/data/package_infos/x86_gcc2/haiku            |   2 +-
src/data/package_infos/x86_gcc2/haiku_secondary  |   2 +-
.../libroot/posix/string/arch/arm/arch_string.S  | 289 +++++++++----------

############################################################################

Commit:      fbc02f943712232dfa1cfb8480f0f630efe1681c
URL:         https://git.haiku-os.org/haiku/commit/?id=fbc02f943712
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Aug 20 15:32:57 2018 UTC

pacakge_infos: Update copyrights.

----------------------------------------------------------------------------

diff --git a/src/data/package_infos/any/haiku_userguide 
b/src/data/package_infos/any/haiku_userguide
index 7bf548f9b7..f9c6e82df0 100644
--- a/src/data/package_infos/any/haiku_userguide
+++ b/src/data/package_infos/any/haiku_userguide
@@ -14,7 +14,7 @@ efficiently under Haiku."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_ca 
b/src/data/package_infos/any/haiku_userguide_ca
index 2f97777559..d35bb5c43d 100644
--- a/src/data/package_infos/any/haiku_userguide_ca
+++ b/src/data/package_infos/any/haiku_userguide_ca
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_de 
b/src/data/package_infos/any/haiku_userguide_de
index 05a1cd7da1..5d11967c33 100644
--- a/src/data/package_infos/any/haiku_userguide_de
+++ b/src/data/package_infos/any/haiku_userguide_de
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_en 
b/src/data/package_infos/any/haiku_userguide_en
index 152e11ec3d..b3f0a6e797 100644
--- a/src/data/package_infos/any/haiku_userguide_en
+++ b/src/data/package_infos/any/haiku_userguide_en
@@ -14,7 +14,7 @@ efficiently under Haiku."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_es 
b/src/data/package_infos/any/haiku_userguide_es
index 84c970de1d..3c6257bea9 100644
--- a/src/data/package_infos/any/haiku_userguide_es
+++ b/src/data/package_infos/any/haiku_userguide_es
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_fi 
b/src/data/package_infos/any/haiku_userguide_fi
index f65e38299f..c47cb6ea10 100644
--- a/src/data/package_infos/any/haiku_userguide_fi
+++ b/src/data/package_infos/any/haiku_userguide_fi
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_fr 
b/src/data/package_infos/any/haiku_userguide_fr
index 5a8bcc3c7b..6eccc5efbf 100644
--- a/src/data/package_infos/any/haiku_userguide_fr
+++ b/src/data/package_infos/any/haiku_userguide_fr
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_hu 
b/src/data/package_infos/any/haiku_userguide_hu
index e7f8b72cc1..e3dead5762 100644
--- a/src/data/package_infos/any/haiku_userguide_hu
+++ b/src/data/package_infos/any/haiku_userguide_hu
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_it 
b/src/data/package_infos/any/haiku_userguide_it
index ad15a54f32..0ba3400045 100644
--- a/src/data/package_infos/any/haiku_userguide_it
+++ b/src/data/package_infos/any/haiku_userguide_it
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_jp 
b/src/data/package_infos/any/haiku_userguide_jp
index 6d044b356c..53604ead13 100644
--- a/src/data/package_infos/any/haiku_userguide_jp
+++ b/src/data/package_infos/any/haiku_userguide_jp
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_pl 
b/src/data/package_infos/any/haiku_userguide_pl
index f22308f358..2e4d64ad93 100644
--- a/src/data/package_infos/any/haiku_userguide_pl
+++ b/src/data/package_infos/any/haiku_userguide_pl
@@ -18,7 +18,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_pt_BR 
b/src/data/package_infos/any/haiku_userguide_pt_BR
index c1f5f532e9..12c043db78 100644
--- a/src/data/package_infos/any/haiku_userguide_pt_BR
+++ b/src/data/package_infos/any/haiku_userguide_pt_BR
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_pt_PT 
b/src/data/package_infos/any/haiku_userguide_pt_PT
index 4f3e927082..11b37421f8 100644
--- a/src/data/package_infos/any/haiku_userguide_pt_PT
+++ b/src/data/package_infos/any/haiku_userguide_pt_PT
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_ru 
b/src/data/package_infos/any/haiku_userguide_ru
index 5de1aa69e5..7afb24637e 100644
--- a/src/data/package_infos/any/haiku_userguide_ru
+++ b/src/data/package_infos/any/haiku_userguide_ru
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_sk 
b/src/data/package_infos/any/haiku_userguide_sk
index d87afb83cd..3e4ecd5235 100644
--- a/src/data/package_infos/any/haiku_userguide_sk
+++ b/src/data/package_infos/any/haiku_userguide_sk
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_sv_SE 
b/src/data/package_infos/any/haiku_userguide_sv_SE
index 722f2dd786..890e4460f3 100644
--- a/src/data/package_infos/any/haiku_userguide_sv_SE
+++ b/src/data/package_infos/any/haiku_userguide_sv_SE
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_uk 
b/src/data/package_infos/any/haiku_userguide_uk
index dd24e9bdc9..b7fc0f6880 100644
--- a/src/data/package_infos/any/haiku_userguide_uk
+++ b/src/data/package_infos/any/haiku_userguide_uk
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_userguide_zh_CN 
b/src/data/package_infos/any/haiku_userguide_zh_CN
index 17b59e1879..3b8ef0291f 100644
--- a/src/data/package_infos/any/haiku_userguide_zh_CN
+++ b/src/data/package_infos/any/haiku_userguide_zh_CN
@@ -17,7 +17,7 @@ contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/any/haiku_welcome 
b/src/data/package_infos/any/haiku_welcome
index 64b1d163ac..3cd4d36939 100644
--- a/src/data/package_infos/any/haiku_welcome
+++ b/src/data/package_infos/any/haiku_welcome
@@ -13,7 +13,7 @@ Thanks to everyone who contributed!"
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2015 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/any/makefile_engine 
b/src/data/package_infos/any/makefile_engine
index 41ea72a577..89a08e935e 100644
--- a/src/data/package_infos/any/makefile_engine
+++ b/src/data/package_infos/any/makefile_engine
@@ -7,7 +7,7 @@ description     "A simple generic makefile-engine and Makefile 
template."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "? Be Inc. 2001-2014 Haiku, Inc."
+copyrights             "? Be Inc. 2001-2018 Haiku, Inc."
 licenses               MIT
 
 provides {
diff --git a/src/data/package_infos/arm/haiku b/src/data/package_infos/arm/haiku
index b412fd9c95..6cb1be1e31 100644
--- a/src/data/package_infos/arm/haiku
+++ b/src/data/package_infos/arm/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/generic/haiku_cross_devel 
b/src/data/package_infos/generic/haiku_cross_devel
index 90806a8e8b..92dc3b214c 100644
--- a/src/data/package_infos/generic/haiku_cross_devel
+++ b/src/data/package_infos/generic/haiku_cross_devel
@@ -10,7 +10,7 @@ libraries, glue code, library symlinks, header files, etc."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/generic/haiku_cross_devel_sysroot 
b/src/data/package_infos/generic/haiku_cross_devel_sysroot
index b6aebeab5f..d22addc30b 100644
--- a/src/data/package_infos/generic/haiku_cross_devel_sysroot
+++ b/src/data/package_infos/generic/haiku_cross_devel_sysroot
@@ -10,7 +10,7 @@ library symlinks, header files, etc."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/generic/haiku_devel 
b/src/data/package_infos/generic/haiku_devel
index fc266c07ee..6864648a8d 100644
--- a/src/data/package_infos/generic/haiku_devel
+++ b/src/data/package_infos/generic/haiku_devel
@@ -10,7 +10,7 @@ header files, etc."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/generic/haiku_devel_secondary 
b/src/data/package_infos/generic/haiku_devel_secondary
index 9fc247fc3c..f054b7890e 100644
--- a/src/data/package_infos/generic/haiku_devel_secondary
+++ b/src/data/package_infos/generic/haiku_devel_secondary
@@ -10,7 +10,7 @@ like static libraries, glue code, library symlinks, header 
files, etc."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/generic/haiku_loader 
b/src/data/package_infos/generic/haiku_loader
index 0f198c8779..5e8246d5ba 100644
--- a/src/data/package_infos/generic/haiku_loader
+++ b/src/data/package_infos/generic/haiku_loader
@@ -7,7 +7,7 @@ description             "The Haiku boot loader."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 flags                  system_package
 
diff --git a/src/data/package_infos/generic/webpositive 
b/src/data/package_infos/generic/webpositive
index 74e6fac864..6fbda3e86b 100644
--- a/src/data/package_infos/generic/webpositive
+++ b/src/data/package_infos/generic/webpositive
@@ -8,7 +8,7 @@ description             "A WebKit based web browser for Haiku."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses               "MIT"
 
 provides {
diff --git a/src/data/package_infos/m68k/haiku 
b/src/data/package_infos/m68k/haiku
index 59bff26548..d57c97f384 100644
--- a/src/data/package_infos/m68k/haiku
+++ b/src/data/package_infos/m68k/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/ppc/haiku b/src/data/package_infos/ppc/haiku
index cb99ddd443..d7ee25bd45 100644
--- a/src/data/package_infos/ppc/haiku
+++ b/src/data/package_infos/ppc/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86/haiku b/src/data/package_infos/x86/haiku
index 2a6777cab9..72f0837d25 100644
--- a/src/data/package_infos/x86/haiku
+++ b/src/data/package_infos/x86/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86/haiku_secondary 
b/src/data/package_infos/x86/haiku_secondary
index af171d461b..530e7f51e9 100644
--- a/src/data/package_infos/x86/haiku_secondary
+++ b/src/data/package_infos/x86/haiku_secondary
@@ -10,7 +10,7 @@ other files required to run programs build for that 
architecture."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86_64/haiku 
b/src/data/package_infos/x86_64/haiku
index 9558800f60..85e28eb240 100644
--- a/src/data/package_infos/x86_64/haiku
+++ b/src/data/package_infos/x86_64/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86_64/haiku_secondary 
b/src/data/package_infos/x86_64/haiku_secondary
index d485c486cf..82586a3d59 100644
--- a/src/data/package_infos/x86_64/haiku_secondary
+++ b/src/data/package_infos/x86_64/haiku_secondary
@@ -10,7 +10,7 @@ other files required to run programs build for that 
architecture."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86_gcc2/haiku 
b/src/data/package_infos/x86_gcc2/haiku
index b6d41e5de9..56b668d2d3 100644
--- a/src/data/package_infos/x86_gcc2/haiku
+++ b/src/data/package_infos/x86_gcc2/haiku
@@ -9,7 +9,7 @@ boot loader, kernel, the system libraries, servers, and 
applications."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"
diff --git a/src/data/package_infos/x86_gcc2/haiku_secondary 
b/src/data/package_infos/x86_gcc2/haiku_secondary
index 789b02d7ce..c6a5433001 100644
--- a/src/data/package_infos/x86_gcc2/haiku_secondary
+++ b/src/data/package_infos/x86_gcc2/haiku_secondary
@@ -10,7 +10,7 @@ other files required to run programs build for that 
architecture."
 packager               "The Haiku build system"
 vendor                 "Haiku Project"
 
-copyrights             "2001-2013 Haiku, Inc. et al"
+copyrights             "2001-2018 Haiku, Inc. et al"
 licenses {
        MIT
        "GNU LGPL v2.1"

############################################################################

Revision:    hrev52253
Commit:      b2cb85f4d5aaeede227abb9abbffecbfbececa58
URL:         https://git.haiku-os.org/haiku/commit/?id=b2cb85f4d5aa
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Mon Aug 20 15:53:47 2018 UTC

libroot: New memcpy for ARM.

It seems the old one was just broken (see mailing list discussion.)

This new one was built from the generic one, but it was done using
a trunk build of Clang 8 with tuned optimization flags, and is
smaller (101 instructions) than GCC 8's (134 instructions) and
the old hand-optimized one (~125 instructions?) as well as being
targeted for ARMv7 instead of ARMv6 like the old one was.

In the future, we may want to look at newlib's ARM memcpy, which
is probably much more hand-optmized than this one is, but this
is at least better than what we had before.

----------------------------------------------------------------------------

diff --git a/src/system/libroot/posix/string/arch/arm/arch_string.S 
b/src/system/libroot/posix/string/arch/arm/arch_string.S
index 5a4340c16e..454c943712 100644
--- a/src/system/libroot/posix/string/arch/arm/arch_string.S
+++ b/src/system/libroot/posix/string/arch/arm/arch_string.S
@@ -1,170 +1,139 @@
 /*
-** Copyright 2001, Travis Geiselbrecht. All rights reserved.
-** Distributed under the terms of the NewOS License.
-*/
+ * Copyright 2018, Haiku, Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ */
 
 #include <asm_defs.h>
 
-#if 1
-
-/* that should be enough for now */
 
 .align 4
 FUNCTION(memcpy):
 FUNCTION(__aeabi_memcpy):
-       // check for zero length copy or the same pointer
-       cmp             r2, #0
-       cmpne   r1, r0
-       bxeq    lr
-
-       // save a few registers for use and the return code (input dst)
-       stmfd   sp!, {r0, r4, r5, lr}
-
-       // check for forwards overlap (src > dst, distance < len)
-       subs    r3, r0, r1
-       cmpgt   r2, r3
-       bgt             .L_forwardoverlap
-
-       // check for a short copy len.
-       // 20 bytes is enough so that if a 16 byte alignment needs to happen 
there is at least a 
-       //   wordwise copy worth of work to be done.
-       cmp             r2, #(16+4)
-       blt             .L_bytewise
-
-       // see if they are similarly aligned on 4 byte boundaries
-       eor             r3, r0, r1
-       tst             r3, #3
-       bne             .L_bytewise             // dissimilarly aligned, 
nothing we can do (for now)
-
-       // check for 16 byte alignment on dst.
-       // this will also catch src being not 4 byte aligned, since it is 
similarly 4 byte 
-       //   aligned with dst at this point.
-       tst             r0, #15
-       bne             .L_not16bytealigned
-
-       // check to see if we have at least 32 bytes of data to copy.
-       // if not, just revert to wordwise copy
-       cmp             r2, #32
-       blt             .L_wordwise
-
-.L_bigcopy:
-       // copy 32 bytes at a time. src & dst need to be at least 4 byte 
aligned, 
-       // and we need at least 32 bytes remaining to copy
-
-       // save r6-r7 for use in the big copy
-       stmfd   sp!, {r6-r7}
-
-       sub             r2, r2, #32             // subtract an extra 32 to the 
len so we can avoid an extra compare
-
-.L_bigcopy_loop:
-       ldmia   r1!, {r4, r5, r6, r7}
-       stmia   r0!, {r4, r5, r6, r7}
-       ldmia   r1!, {r4, r5, r6, r7}
-       subs    r2, r2, #32
-       stmia   r0!, {r4, r5, r6, r7}
-       bge             .L_bigcopy_loop
-
-       // restore r6-r7
-       ldmfd   sp!, {r6-r7}
-
-       // see if we are done
-       adds    r2, r2, #32
-       beq             .L_done
-
-       // less then 4 bytes left?
-       cmp             r2, #4
-       blt             .L_bytewise
-
-.L_wordwise:
-       // copy 4 bytes at a time.
-       // src & dst are guaranteed to be word aligned, and at least 4 bytes 
are left to copy.
-       subs    r2, r2, #4
-
-.L_wordwise_loop:
-       ldr             r3, [r1], #4
-       subs    r2, r2, #4
-       str             r3, [r0], #4
-       bge             .L_wordwise_loop
-
-       // correct the remaining len and test for completion
-       adds    r2, r2, #4      
-       beq             .L_done
-
-.L_bytewise:
-       // simple bytewise copy
-       ldrb    r3, [r1], #1
-       subs    r2, r2, #1
-       strb    r3, [r0], #1
-       bgt             .L_bytewise
-
-.L_done:
-       // load dst for return and restore r4,r5
-//#if ARM_ARCH_LEVEL >= 5
-//     ldmfd   sp!, {r0, r4, r5, pc}
-//#else
-       ldmfd   sp!, {r0, r4, r5, lr}
-       bx              lr
-//#endif
-
-.L_not16bytealigned:
-       // dst is not 16 byte aligned, so we will copy up to 15 bytes to get it 
aligned.
-       // src is guaranteed to be similarly word aligned with dst.
-
-       // set the condition flags based on the alignment.
-       lsl             r12, r0, #28
-       rsb             r12, r12, #0
-       msr             CPSR_f, r12                             // move into 
NZCV fields in CPSR
-
-       // move as many bytes as necessary to get the dst aligned
-#ifdef __clang__
-       ldrbvs  r3, [r1], #1                    // V set
-       ldrhcs  r4, [r1], #2                    // C set
-       ldreq   r5, [r1], #4                    // Z set
-
-       strbvs  r3, [r0], #1
-       strhcs  r4, [r0], #2
-       streq   r5, [r0], #4
-
-       ldmiami r1!, {r3-r4}                    // N set
-       stmiami r0!, {r3-r4}
-#else
-       ldrvsb  r3, [r1], #1                    // V set
-       ldrcsh  r4, [r1], #2                    // C set
-       ldreq   r5, [r1], #4                    // Z set
-
-       strvsb  r3, [r0], #1
-       strcsh  r4, [r0], #2
-       streq   r5, [r0], #4
-
-       ldmmiia r1!, {r3-r4}                    // N set
-       stmmiia r0!, {r3-r4}
-#endif
-
-       // fix the remaining len
-       sub             r2, r2, r12, lsr #28
-
-       // test to see what we should do now
-       cmp             r2, #32
-       bge             .L_bigcopy
-       b               .L_wordwise
-       
-       // src and dest overlap 'forwards' or dst > src
-.L_forwardoverlap:
-
-       // do a bytewise reverse copy for now
-       add             r1, r1, r2
-       add             r0, r0, r2
-
-.L_bytewisereverse:
-       // simple bytewise reverse copy
-       ldrb    r3, [r1], #-1
-       subs    r2, r2, #1
-       strb    r3, [r0], #-1
-       bgt             .L_bytewisereverse
-
-       b               .L_done
-       // check for zero length copy or the same pointer
-
+        push    {r4, r5, r6, r7, r8, r10, r11, lr}
+        add     r11, sp, #24
+        cmp     r0, r1
+        cmpne   r2, #0
+        bne     .LBB0_2
+.LBB0_1:
+        pop     {r4, r5, r6, r7, r8, r10, r11, pc}
+.LBB0_2:
+        orr     r3, r1, r0
+        tst     r3, #3
+        beq     .LBB0_9
+        eor     r3, r1, r0
+        and     r7, r0, #3
+        tst     r3, #3
+        mov     r12, r2
+        rsbeq   r12, r7, #4
+        cmp     r2, #4
+        movlo   r12, r2
+        sub     r2, r2, r12
+        cmp     r12, #1
+        blt     .LBB0_9
+        mvn     r7, r12
+        cmn     r7, #2
+        mvn     r3, #1
+        mvn     r6, #1
+        movgt   r3, r7
+        add     r3, r12, r3
+        add     r3, r3, #2
+        cmp     r3, #16
+        blo     .LBB0_22
+        cmn     r7, #2
+        movgt   r6, r7
+        add     r7, r12, r6
+        add     r7, r7, #2
+        add     r6, r1, r7
+        cmp     r6, r0
+        addhi   r7, r0, r7
+        cmphi   r7, r1
+        bhi     .LBB0_22
+        bic     r4, r3, #15
+        mov     r7, r0
+        add     r5, r0, r4
+        add     lr, r1, r4
+        sub     r12, r12, r4
+        mov     r6, r4
+.LBB0_7:
+        vld1.8  {d16, d17}, [r1]!
+        subs    r6, r6, #16
+        vst1.8  {d16, d17}, [r7]!
+        bne     .LBB0_7
+        cmp     r3, r4
+        bne     .LBB0_23
+        b       .LBB0_25
+.LBB0_9:
+        mov     r5, r0
+        mov     r3, #0
+        cmp     r3, r2, lsr #2
+        beq     .LBB0_19
+.LBB0_10:
+        bic     r12, r2, #3
+        lsr     r3, r2, #2
+        cmp     r2, #16
+        blo     .LBB0_15
+        add     r7, r1, r12
+        cmp     r5, r7
+        addlo   r7, r5, r12
+        cmplo   r1, r7
+        blo     .LBB0_15
+        and     lr, r3, #3
+        mov     r7, r1
+        sub     r8, r3, lr
+        mov     r6, r5
+        sub     r3, r12, lr, lsl #2
+        add     r4, r5, r3
+        add     r3, r1, r3
+.LBB0_13:
+        vld1.32 {d16, d17}, [r7]!
+        subs    r8, r8, #4
+        vst1.32 {d16, d17}, [r6]!
+        bne     .LBB0_13
+        cmp     lr, #0
+        bne     .LBB0_16
+        b       .LBB0_18
+.LBB0_15:
+        mov     lr, r3
+        mov     r3, r1
+        mov     r4, r5
+.LBB0_16:
+        add     r6, lr, #1
+.LBB0_17:
+        ldr     r7, [r3], #4
+        sub     r6, r6, #1
+        str     r7, [r4], #4
+        cmp     r6, #1
+        bgt     .LBB0_17
+.LBB0_18:
+        add     r5, r5, r12
+        add     r1, r1, r12
+.LBB0_19:
+        ands    r2, r2, #3
+        beq     .LBB0_1
+        add     r2, r2, #1
+.LBB0_21:
+        ldrb    r3, [r1], #1
+        sub     r2, r2, #1
+        strb    r3, [r5], #1
+        cmp     r2, #1
+        bgt     .LBB0_21
+        b       .LBB0_1
+.LBB0_22:
+        mov     lr, r1
+        mov     r5, r0
+.LBB0_23:
+        add     r1, r12, #1
+.LBB0_24:
+        ldrb    r3, [lr], #1
+        sub     r1, r1, #1
+        strb    r3, [r5], #1
+        cmp     r1, #1
+        bgt     .LBB0_24
+.LBB0_25:
+        mov     r1, lr
+        mov     r3, #0
+        cmp     r3, r2, lsr #2
+        bne     .LBB0_10
+        b       .LBB0_19
 FUNCTION_END(memcpy)
 FUNCTION_END(__aeabi_memcpy)
-#endif


Other related posts: