17 Commits

Author SHA1 Message Date
Myles Busig
0a84391c39 Add armv4t assembly optimized integer to string conversion functions 2024-03-24 01:07:24 -06:00
Myles Busig
998e3adf4d Add armv4t assembly optimized division and modulo by 10 2024-03-24 00:30:56 -06:00
Myles Busig
6d5c083616 Optimize string single character append
Now uses a specialized implementation instead of the append multiple
characters implementation. Useful for appending single characters to
string streams (ex. newline).
2024-03-21 20:35:22 -06:00
Myles Busig
c7918a2b8b Update CMakeLists.txt to use globbing, and support arch. dependent files
CONFIGURE_DEPENDS option was added in CMake v3.12. This option allows the
build system to automatically re-run CMake if the glob changes, solving the
major issue with globbing. May have a performance impact, but it should be
negligible compared to the time spent building.
2024-03-10 21:55:50 -06:00
Myles Busig
a8c30df08e Implement istring replace, append, erase 2024-03-10 20:50:09 -06:00
Myles Busig
cf90307a1f Implement istring comparison operators
Not thoroughly tested.
2024-03-07 21:29:44 -07:00
Myles Busig
b6746d7ac0 Remove iterators from string and string_view
Iterators could probably be implemented efficiently, but it is not a
priority at the moment. They are removed for the time being.
2024-03-07 19:38:00 -07:00
Myles Busig
ca8aae6c66 Change istring to use string_view for the majority of its operations
The istring and string_view operators have identical implementations. By
changing the istring operators to cast to string_view and use that
implementation instead, the number of redundant implementations is
reduced. This does incurr a small performance penalty, around 15 cycles
when tested on the MGBA Gameboy Advance emulator (uses an armv7tdmi).
When compared to the time operations take, the performance difference is
negligible. Ex. An insertion with two 8 character strings takes around
450 cycles.
2024-03-07 16:28:18 -07:00
Myles Busig
18246e131f Implement istring::insert with given index and count 2024-03-07 16:07:21 -07:00
Myles Busig
cb4f9d2861 Implement string::copy and string_view::copy 2024-03-07 15:57:29 -07:00
Myles Busig
6f98434a18 Fix mtl_rmemcpy32 incorrectly calculating the number of bytes and words 2024-03-07 15:53:10 -07:00
Myles Busig
e8601d7807 Change strings to use mtl::memmove instead of memcpy ot std::memmove 2024-03-07 14:32:46 -07:00
Myles Busig
7bfc38d978 Change strings to use string_view instead of const char*
Because the length of a string_view is computed at compile time, it is
faster for simple copies.
2024-03-07 14:25:39 -07:00
Myles Busig
99bb7d4b6e Add initial string_view implementation 2024-03-07 14:24:10 -07:00
Myles Busig
6f74f94aee Add initial fixed point number implementation 2024-03-06 23:42:48 -07:00
Myles Busig
d89ae1fbe5 Fix rmemcpy32 not copying chunks correctly 2024-03-06 23:00:38 -07:00
Myles Busig
29aa5bdc5b Add cmake files and initial memcpy/string implementation 2024-03-04 20:44:58 -07:00