summaryrefslogtreecommitdiff
path: root/test.c
AgeCommit message (Collapse)Author
2023-03-19Return the one-after-the-emd address from cp; (amd64) Fix wrong registers ↵Gabriel Jensen
being used in cp and the function not working at all; Add compatibility version constant; Add compile-time string functions for C++; Check type in compile-time functions; Add more type checking constants for C++;
2023-03-17Add integer-string format functions; Move string-related facilities to new ↵Gabriel Jensen
module 'str'; Update code style; Add aliases for C++; Add C++ metaprogramming classes; Fix C/C++ standard detections; Add more attributes to functions; Implement mathematical functions in C++; Implement mathematical functions using basic arithmetic types, including (depending on the function) signed, unsigned, and floating-point; Add fraction structure;
2023-02-26Add functions for null-terminated strings: streq (for equality checking), ↵Gabriel Jensen
strlen (for getting the length); Add type limit macros; Rename bytesz to bytelen; Remove byte type; Remove bool type (and related macros); Remove chr8, chr01, and chr02 types; Update nullptr definition; Update nopos definition;
2023-01-29Optimise fill (amd64); Optimise cp (amd64);Gabriel Jensen
2023-01-28Update assembly comments; Implement fill in AMD64; Remove signal support; ↵Gabriel Jensen
Fix exp;
2023-01-27Implement exp; Fix bad directory name; Fix makefile;Gabriel Jensen
2023-01-27Implement cp and abs in AMD64; Fix indentations; Implement cp and abs in ARM64;Gabriel Jensen
2023-01-22Rewrite project (the following is the current feature set); Add ↵Gabriel Jensen
minimum-width unsigned integer types: i8, i01, i02, i04; Add minimum-width signed integer types: i8s, i01s, i02s, i04s; Add type for object sizes: sz; Add type for pointer values: ptr; Add function for logical values: bool; Add logical constants: false, true; Add function for memory sequence copying: cp; Add function for memory sequence filling: fill; Add types for storing quotients and remainders: quotrem8, quotrem01, quotrem02, quotrem04; Add function for division and modulo: divmod; Add function for getting absolute values: abs; Add function for memory sequence comparison: eq; Add function for radication: root (unimplemented); Add function for exponentiation: exp (unimplemented); Add function for bytes value searching: srch: Add constant for indicating invalid positions: nopos; Add constant for indicating null pointers: nullptr; Add types for UTF-8, UTF-16,a and UTF-32 values: chr8, chr01, chr02; Add function for UTF-8 encoding: utf8enc; Add function for UTF-8 decoding: utf8dec; Add function for UTF-32 to UTF-8 length calculations: utf8enclen; Add function for UTF-8 to UTF-32 length calculations: utf8declen; Add function for Windows-1252 encoding: win1252enc; Add function for Windows-1252 decoding: win1252dec; Add function for logarithming: log (unimplemented);
2022-07-11memdup: Use sus_unlikely instead of __builtin_expect; Rename project to zap ↵Gabriel Jensen
(from rgo); Remove global license file (useless with MPL); Migrate test to C++ (for reasons which will be revealed later); Restructure headers; Add include guards to the private header; Add attribute useret to functions; Require GNU Make; Compile position independent code; Update readme;
2022-07-08Installation script: Create installation directories if they don't already ↵Gabriel Jensen
exist; Don't use susinfo types; Remove declarations for getbinver; Add memcmp, strcmp; Update makefile; Reimplement fastimpl as a global variable; Change type of fastimpl (uint_least8_t => _Bool); Change the return types of memeq and streq (uint_least8_t => _Bool); Enable compilation warnings; Add type literals (like those from susinfo); Use *int_leastN_t instead of *intN_t; Remove restrict-qualifications; Remove C++ version of memdup;
2022-06-25Use susinfo; Implement algorithms in C (with inline assembly on supported ↵Gabriel Jensen
platforms); Add comments; Fix strcpy counting the null-terminator; Fix strcpy taking a pointer-to-const as the output; Implement strcpy, streq in IA-32; Optimise streq: Only use the lower eight bytes for the return value; Optimise strlen: Use fewer registers; Fix memfill taking a pointer-to-const as the output; Fix strfill taking a pointer-to-const as the output; Update readme; Add private header; Remove assembly-specific version macro;
2022-05-26Enable compiler optimisations; Optimise memfill; Optimise memcpy: Use movdqu ↵Gabriel Jensen
instead of movups (AMD64, i386 SSE2), add 256-bit copy (AMD64 AVX, i386 AVX); Update makefile; Implement fndbyte, fndchr, strlen in IA-32; Fix bug in test; Update readme; Add new planned architectures: Motorola 68000, Power ISA, RISC-V, Sparc;
2022-05-26Fix target purge in makefile not being labeled phony; Add machien ↵Gabriel Jensen
architecture check in header; Implement memcpy, memeq, memfill in IA-32; Fix some incorrect comments; Use a different register order for temporaries and optimise register usage; Fix bug in memeq: Should jump if zero, not if equal; Update readme;
2022-05-26Fix indentation in license notices; Fix incorrect declaration for ↵Gabriel Jensen
rgo_strcpy, rgo_streq; Implement fndbyte,memeq,strcpy,streq; Add new tests; Fix bug in memcpy: Should jump if zero, not if equal; Remove declaration for rgo_memcmp; Add macro rgo_ver, defined to the current version number; Add assembly declaration for rgo_fndchr, rgo_fndbyte; Fix some incorrect comments; Use movups instead of movdqu in memcpy;
2022-05-24Initial.Gabriel Jensen