From cf77d1041d760e2c2acb606f6d42955f4f497908 Mon Sep 17 00:00:00 2001 From: Myles Busig Date: Sun, 24 Mar 2024 21:27:58 -0600 Subject: [PATCH] Add architecture dependent declarations in utility.hpp and add math/tostring helpers --- include/mtl/utility.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/mtl/utility.hpp b/include/mtl/utility.hpp index 9977424..e6aa5cd 100644 --- a/include/mtl/utility.hpp +++ b/include/mtl/utility.hpp @@ -4,6 +4,7 @@ #include extern "C" { +#ifdef __ARM_ARCH_4T__ void mtl_memcpy32(void* dst, const void* src, size_t num8); void mtl_dumbcpy16(void* dst, const void* src, size_t num8); void mtl_dumbcpy(void* dst, const void* src, size_t num8); @@ -13,9 +14,22 @@ void mtl_rdumbcpy16(void* dst, const void* src, size_t num8); void mtl_rdumbcpy(void* dst, const void* src, size_t num8); void mtl_rhybridcpy(void* dst, const void* src, size_t num8); void mtl_hybridmove(void* dst, const void* src, size_t num8); + +uint32_t mtl_udiv10(uint32_t x); +uint32_t mtl_umod10(uint32_t x); +uint32_t mtl_utostr(uint32_t x, char* buf, size_t buf_size, char** buf_out); +uint32_t mtl_utostrx(uint32_t x, char* buf, size_t buf_size, char** buf_out); +uint32_t mtl_itostr(uint32_t x, char* buf, size_t buf_size, char** buf_out); +uint32_t mtl_itostrx(uint32_t x, char* buf, size_t buf_size, char** buf_out); +#endif } namespace mtl { +#ifdef __ARM_ARCH_4T__ constexpr auto memcpy = mtl_hybridcpy; constexpr auto memmove = mtl_hybridmove; +#else + constexpr auto memcpy = std::memcpy; + constexpr auto memmove = std::memmove; +#endif }