From beabe3bdf47306d0940ddf2ddf52ada6903a0875 Mon Sep 17 00:00:00 2001 From: Moritz Pflanzer Date: Thu, 31 Aug 2017 14:56:32 +0100 Subject: COMPMID-481: Add AArch64 GEMM Change-Id: I34f94f99cb05f0eabafee13c5e623ee779b72360 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/83741 Tested-by: Kaizen Reviewed-by: Anthony Barbier Reviewed-by: Pablo Tello --- support/ToolchainSupport.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'support') diff --git a/support/ToolchainSupport.h b/support/ToolchainSupport.h index 87e9bd2bc8..b9d9103652 100644 --- a/support/ToolchainSupport.h +++ b/support/ToolchainSupport.h @@ -268,6 +268,23 @@ inline std::string to_string(bool value) str << std::boolalpha << value; return str.str(); } + +// std::align is missing in GCC 4.9 +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350 +inline void *align(std::size_t alignment, std::size_t size, void *&ptr, std::size_t &space) +{ + std::uintptr_t pn = reinterpret_cast(ptr); + std::uintptr_t aligned = (pn + alignment - 1) & -alignment; + std::size_t padding = aligned - pn; + if(space < size + padding) + { + return nullptr; + } + + space -= padding; + + return ptr = reinterpret_cast(aligned); +} } // namespace cpp11 namespace cpp14 -- cgit v1.2.1