1. 25 May, 2022 5 commits
    • Oliver Swede's avatar
      Make symbol names consistent · d13f0a78
      Oliver Swede authored
      This assumes the removal of static function dispatch in bionic for
      arm64.
      
      Change-Id: Ia421334a511d49de0359db70ff56b5cb1210d7af
      d13f0a78
    • Oliver Swede's avatar
      Include Morello sources for Hybrid-cap · 0d106d44
      Oliver Swede authored
      Change-Id: Idc7909ace54082314a3a97a246c42d0ca7f4cebc
      0d106d44
    • Oliver Swede's avatar
      Add Morello build target and include Morello sources for Pure-cap · 0d8ce658
      Oliver Swede authored
      Change-Id: Ice7afeb81811476e9c7f267a590cd807e2f3c598
      0d8ce658
    • Silviu Baranga's avatar
      Backport "string: Add a memcpy routine for morello" · 399286d0
      Silviu Baranga authored and Oliver Swede's avatar Oliver Swede committed
      Modifications to resolve some conflicts around symbol declaration
      styling and modifications to absent file (string/bench/memcpy.c), and
      remove unnecessary ILP32 support.
      
      Original commit message:
      "This is bassed on the aarch64 memcpy, with an added path for copying
      capabilities when dst - src == 0 mod 16.
      
      This uses neon registers when not copying capabilities."
      
      Author of the original commit: Silviu Baranga <silviu.baranga@arm.com>
      
      Change-Id: I423adcd411866b9fac6c706b3101a3efb0a656a5
      399286d0
    • Silviu Baranga's avatar
      Backport "string: Add a memset routine for morello" · c061e209
      Silviu Baranga authored and Oliver Swede's avatar Oliver Swede committed
      Modifications to resolve some conflicts around symbol declaration
      styling, and remove unnecessary ILP32 support.
      
      Original commit message:
      "Based on the aarch64 memset."
      
      Author of the original commit: Silviu Baranga <silviu.baranga@arm.com>
      
      Change-Id: I2b82a67f767737ced315bfb002db6988d90f0291
      c061e209
  2. 17 May, 2022 1 commit
    • Silviu Baranga's avatar
      Backport "string: Add support for morello strings functions" · a36f69aa
      Silviu Baranga authored and Oliver Swede's avatar Oliver Swede committed
      Modifications to resolve some conflicts around symbol declaration
      styling and missing files.
      
      Original commit message:
      "Add the boileplate changes needed to build the strings routines with the
      morello arch."
      
      Author of the original commit: Silviu Baranga <silviu.baranga@arm.com>
      
      Change-Id: I82f3979dbcf86dec5c772548f40f28aeaaafcbf5
      a36f69aa
  3. 11 Apr, 2022 1 commit
  4. 25 Feb, 2020 5 commits
  5. 18 Feb, 2020 2 commits
    • Branislav Rankov's avatar
      ARMv8.5 MTE: Add MTE compatible version of strlen. · 02cfc9cc
      Branislav Rankov authored and Szabolcs Nagy's avatar Szabolcs Nagy committed
      Reading outside the range of the string is only allowed within 16 byte
      aligned granules when MTE is enabled.
      
      This implementation is based on string/aarch64/strlen.S
      
      Merged the page cross code into the main path and optimized it.
      Modified the zeroones mask to ignore the bytes that are loaded but are
      not part of the string. Made a special case for when there is 8 bytes
      or less to check before the alignment boundary.
      02cfc9cc
    • Szabolcs Nagy's avatar
      string: change build system to avoid fragile includes · 1dfd7b85
      Szabolcs Nagy authored
      Including multiple asm source files into a single top level file
      can cause problems, this can be fixed by having one top level
      file per target specific source file, but for maintenance and
      clarity it's better to use the sub directory structure for selecting
      which files to build.
      
      This requires a new ARCH make variable setting in config.mk which
      must be consistent with the target of CC.
      
      Note: the __ARM_FEATURE_SVE checks are moved into the SVE asm code.
      This is not entirely right: the feature test macro is for ACLE, not
      asm support, but this patch is not supposed to change the produced
      binaries and some toolchains (e.g. older clang) does not support SVE
      instructions.  The intention is to remove these checks eventually
      and always build all asm code and only support new toolchains (the
      test code will only test the SVE variants if there is target support
      for it though).
      1dfd7b85
  6. 12 Feb, 2020 1 commit
    • Wilco Dijkstra's avatar
      string: optimize memcpy · 4c175c8b
      Wilco Dijkstra authored and Szabolcs Nagy's avatar Szabolcs Nagy committed
      Further optimize integer memcpy. Small cases now include copies up
      to 32 bytes. 64-128 byte copies are split into two cases to improve
      performance of 64-96 byte copies. Comments have been rewritten.
      
      Improves glibc's memcpy-random benchmark by ~10% on Neoverse N1.
      4c175c8b
  7. 02 Feb, 2020 3 commits
  8. 01 Feb, 2020 1 commit
  9. 25 Jan, 2020 3 commits
  10. 22 Jan, 2020 1 commit
  11. 16 Jan, 2020 2 commits
  12. 15 Jan, 2020 1 commit
  13. 14 Jan, 2020 3 commits
    • Szabolcs Nagy's avatar
      math: Add more ulp tests · 33ba1908
      Szabolcs Nagy authored
      Some functions were not tested with the statistical ulp error check
      tool, this commit adds tests for the current math symbols.
      33ba1908
    • Szabolcs Nagy's avatar
      math: add vector pow · a807c9bb
      Szabolcs Nagy authored
      This implementation is a wrapper around the scalar pow with appropriate
      call abi. As such it is not expected to be faster than scalar calls,
      the new double prec vector pow symbols are provided for completeness.
      a807c9bb
    • Wilco Dijkstra's avatar
      string: Remove memcpy_bytewise · 099350af
      Wilco Dijkstra authored and Szabolcs Nagy's avatar Szabolcs Nagy committed
      This was a placeholder for testing the build system before we added
      optimized string code and thus no longer needed.
      099350af
  14. 13 Jan, 2020 4 commits
  15. 11 Jan, 2020 3 commits
  16. 10 Jan, 2020 1 commit
  17. 09 Jan, 2020 1 commit
    • Szabolcs Nagy's avatar
      math: fix spurious overflow in pow with clang · 2771bc7f
      Szabolcs Nagy authored
      clang does not support c99 fenv_access and may move fp operations out
      of conditional blocks causing unconditional fenv side-effects. Here
      
        if (cond)
          ix = f (x * 0x1p52);
      
      was transformed to
      
        ix_ = f (x * 0x1p52);
        ix = cond ? ix_ : ix;
      
      where x can be a huge negative value so the mul overflows. The added
      barrier should prevent such transformation by significantly increasing
      the cost of doing the mul unconditionally.
      
      Found by enh from google on android arm and aarch64 targets.
      Fixes github issue #16.
      2771bc7f
  18. 08 Jan, 2020 2 commits