Add architecture dependent declarations in utility.hpp and add

math/tostring helpers
This commit is contained in:
Madeline Busig 2024-03-24 21:27:58 -06:00
parent c4d73a8fde
commit f41a10939c

View File

@ -4,6 +4,7 @@
#include <cstddef>
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
}