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 }