diff options
-rw-r--r-- | CHANGELOG.txt | 3 | ||||
-rw-r--r-- | rttest.cc | 14 | ||||
-rw-r--r-- | zp/include/zp/bs.h | 12 | ||||
-rw-r--r-- | zp/include/zp/mem.d/equ.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/mem.d/srh.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/mth.d/divmod.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/mth.d/exp.ii | 4 | ||||
-rw-r--r-- | zp/include/zp/str.d/strequ.ii | 4 | ||||
-rw-r--r-- | zp/include/zp/str.d/strsrh.ii | 4 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf16dec.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf16declen.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf16enc.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf16enclen.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf8dec.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf8declen.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf8enc.ii | 2 | ||||
-rw-r--r-- | zp/include/zp/str.d/utf8enclen.ii | 2 | ||||
-rw-r--r-- | zp/source/amd64/mem/memcpy.s | 18 | ||||
-rw-r--r-- | zp/source/amd64/mem/memfil.s | 2 |
19 files changed, 48 insertions, 35 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 24e5517..d8b90a7 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -61,6 +61,9 @@ * Fix installation target; +* Add more run-time tests; +* Rename likly and ulikly to lik and ulik; + # 0.0.2 * Migrate to CMake; @@ -106,9 +106,19 @@ int main() { ::zp::i04 filbuf; - cmp(::zp::memfil(&filbuf,0xFFu,sizeof (filbuf)),&filbuf+0x1u); + cmp(::zp::memfil(&filbuf,0xFFu,0x8u),reinterpret_cast<unsigned char *>(&filbuf)+0x8u); + cmp(::zp::memfil(&filbuf,0x7Fu,0x4u),reinterpret_cast<unsigned char *>(&filbuf)+0x4u); + cmp(::zp::memfil(&filbuf,0x3Fu,0x2u),reinterpret_cast<unsigned char *>(&filbuf)+0x2u); + cmp(::zp::memfil(&filbuf,0x1Fu,0x1u),reinterpret_cast<unsigned char *>(&filbuf)+0x1u); - cmp(filbuf,0xFFFFFFFFFFFFFFFFu); + cmp(filbuf,0xFFFFFFFF7F7F3F1Fu); + + ::zp::i04 cpybuf; + ::zp::memcpy(&cpybuf,&filbuf,0x8u); + + cmp(cpybuf,filbuf); + + cmp(::zp::memsrh(&cpybuf,0x1Fu,0x8u),reinterpret_cast<unsigned char *>(&cpybuf)); }(); [&] { diff --git a/zp/include/zp/bs.h b/zp/include/zp/bs.h index cd5523e..582608b 100644 --- a/zp/include/zp/bs.h +++ b/zp/include/zp/bs.h @@ -160,14 +160,14 @@ #endif #if zp_priv_hasbuiltin(__builtin_expect) -#define zp_likly(expr) if (__builtin_expect((expr),0x1)) -#define zp_ulikly(expr) if (__builtin_expect((expr),0x0)) +#define zp_lik(expr) if (__builtin_expect((expr),0x1)) +#define zp_ulik(expr) if (__builtin_expect((expr),0x0)) #elif zp_std_cxx20 -#define zp_likly(expr) if ((expr)) [[likely]] -#define zp_ulikly(expr) if ((expr)) [[unlikely]] +#define zp_lik(expr) if ((expr)) [[likely]] +#define zp_ulik(expr) if ((expr)) [[unlikely]] #else -#define zp_likly(expr) if ((expr)) -#define zp_ulikly(expr) if ((expr)) +#define zp_lik(expr) if ((expr)) +#define zp_ulik(expr) if ((expr)) #endif #if zp_priv_hasattr(__noreturn__) diff --git a/zp/include/zp/mem.d/equ.ii b/zp/include/zp/mem.d/equ.ii index 4580cf9..e80d555 100644 --- a/zp/include/zp/mem.d/equ.ii +++ b/zp/include/zp/mem.d/equ.ii @@ -8,7 +8,7 @@ template<typename typ> constexpr auto ::zp::equ(typ const * lbuf,typ const * rbu typ const * const stp = lbuf+num; while (lbuf != stp) { - zp_likly (*lbuf++ != *rbuf++) {return false;} + zp_lik (*lbuf++ != *rbuf++) {return false;} } return true; diff --git a/zp/include/zp/mem.d/srh.ii b/zp/include/zp/mem.d/srh.ii index 8519bb8..c8540df 100644 --- a/zp/include/zp/mem.d/srh.ii +++ b/zp/include/zp/mem.d/srh.ii @@ -13,7 +13,7 @@ template<typename typ> constexpr auto ::zp::srh(typ const * buf,typ const val,:: while (buf != stp) { typ const * addr = buf++; - zp_ulikly (*addr == val) {return addr;} + zp_ulik (*addr == val) {return addr;} } return nullptr; diff --git a/zp/include/zp/mth.d/divmod.ii b/zp/include/zp/mth.d/divmod.ii index 42c7e11..1a83e64 100644 --- a/zp/include/zp/mth.d/divmod.ii +++ b/zp/include/zp/mth.d/divmod.ii @@ -9,7 +9,7 @@ template<typename typ> constexpr auto ::zp::divmod(typ const num,typ const den) ::zp::pair<typ> pair; - zp_ulikly (den == 0x0) { + zp_ulik (den == 0x0) { pair.lval = ::zp::inf<typ>; pair.rval = pair.lval; diff --git a/zp/include/zp/mth.d/exp.ii b/zp/include/zp/mth.d/exp.ii index 49c227a..6612cb3 100644 --- a/zp/include/zp/mth.d/exp.ii +++ b/zp/include/zp/mth.d/exp.ii @@ -7,11 +7,11 @@ template<typename typ> constexpr auto ::zp::exp(typ const val,typ const n) noexcept -> typ { static_assert(::zp::isarith<typ>,"type must be an arithmetic type"); - zp_ulikly (n == typ {0x0}) { + zp_ulik (n == typ {0x0}) { return typ {0x1}; } - zp_ulikly (val == typ {0x0}) { + zp_ulik (val == typ {0x0}) { return typ {0x0}; } diff --git a/zp/include/zp/str.d/strequ.ii b/zp/include/zp/str.d/strequ.ii index 1811445..6e7e1f4 100644 --- a/zp/include/zp/str.d/strequ.ii +++ b/zp/include/zp/str.d/strequ.ii @@ -8,8 +8,8 @@ template<typename typ> constexpr auto ::zp::strequ(typ const * lstr,typ const * static_assert(::zp::ischr<typ>,"type must be a character type"); for (;;++lstr,++rstr) { - zp_likly (*lstr != *rstr) {return false;} - zp_ulikly (*lstr == typ {0x0}) {break;} + zp_lik (*lstr != *rstr) {return false;} + zp_ulik (*lstr == typ {0x0}) {break;} } return true; diff --git a/zp/include/zp/str.d/strsrh.ii b/zp/include/zp/str.d/strsrh.ii index 59a776a..8f30b16 100644 --- a/zp/include/zp/str.d/strsrh.ii +++ b/zp/include/zp/str.d/strsrh.ii @@ -16,8 +16,8 @@ template<typename typ> constexpr auto ::zp::strsrh(typ const * str,typ const chr for (;;++str) { auto const curchr = *str; - zp_ulikly (curchr == chr) {return str;} - zp_ulikly (curchr == typ {0x0}) {break;} + zp_ulik (curchr == chr) {return str;} + zp_ulik (curchr == typ {0x0}) {break;} } return nullptr; diff --git a/zp/include/zp/str.d/utf16dec.ii b/zp/include/zp/str.d/utf16dec.ii index fe6a89a..143b0c2 100644 --- a/zp/include/zp/str.d/utf16dec.ii +++ b/zp/include/zp/str.d/utf16dec.ii @@ -20,6 +20,6 @@ constexpr auto ::zp::utf16dec(::zp::c02 * dst,::zp::c01 const * src) noexcept -> *dst = hex; - zp_ulikly (hex == 0x0u) {break;} + zp_ulik (hex == 0x0u) {break;} } } diff --git a/zp/include/zp/str.d/utf16declen.ii b/zp/include/zp/str.d/utf16declen.ii index 01a46bb..b77893b 100644 --- a/zp/include/zp/str.d/utf16declen.ii +++ b/zp/include/zp/str.d/utf16declen.ii @@ -15,7 +15,7 @@ constexpr auto ::zp::utf16declen(::zp::c01 const * str) noexcept -> ::zp::sz { continue; } - zp_ulikly (chr == 0x0u) {break;} + zp_ulik (chr == 0x0u) {break;} ++str; } diff --git a/zp/include/zp/str.d/utf16enc.ii b/zp/include/zp/str.d/utf16enc.ii index f52194c..6600cfb 100644 --- a/zp/include/zp/str.d/utf16enc.ii +++ b/zp/include/zp/str.d/utf16enc.ii @@ -20,6 +20,6 @@ constexpr auto ::zp::utf16enc(::zp::c01 * dst,::zp::c02 const * src) noexcept -> /* One hextet. */ *dst++ = chr; - zp_ulikly (chr == 0x0u) {break;} + zp_ulik (chr == 0x0u) {break;} } } diff --git a/zp/include/zp/str.d/utf16enclen.ii b/zp/include/zp/str.d/utf16enclen.ii index 0758f2e..ef0d341 100644 --- a/zp/include/zp/str.d/utf16enclen.ii +++ b/zp/include/zp/str.d/utf16enclen.ii @@ -15,7 +15,7 @@ constexpr auto ::zp::utf16enclen(::zp::c02 const * str) noexcept -> ::zp::sz { continue; } - zp_ulikly (chr == 0x0u) {break;} + zp_ulik (chr == 0x0u) {break;} ++len; } diff --git a/zp/include/zp/str.d/utf8dec.ii b/zp/include/zp/str.d/utf8dec.ii index a3913cb..e5c4208 100644 --- a/zp/include/zp/str.d/utf8dec.ii +++ b/zp/include/zp/str.d/utf8dec.ii @@ -45,6 +45,6 @@ constexpr auto ::zp::utf8dec(::zp::c02 * dst,::zp::c8 const * src) noexcept -> v *dst = oct; ++src; - zp_ulikly (oct == 0x0u) {break;} + zp_ulik (oct == 0x0u) {break;} } } diff --git a/zp/include/zp/str.d/utf8declen.ii b/zp/include/zp/str.d/utf8declen.ii index a759a30..3a1f3c4 100644 --- a/zp/include/zp/str.d/utf8declen.ii +++ b/zp/include/zp/str.d/utf8declen.ii @@ -10,7 +10,7 @@ constexpr auto ::zp::utf8declen(::zp::c8 const * str) noexcept -> ::zp::sz { for (;;++len) { auto const oct = *str; - zp_ulikly (oct == 0x0u) {break;} + zp_ulik (oct == 0x0u) {break;} if (oct >= 0xF0u) { str += 0x4u; diff --git a/zp/include/zp/str.d/utf8enc.ii b/zp/include/zp/str.d/utf8enc.ii index f3c8c0b..f9011d9 100644 --- a/zp/include/zp/str.d/utf8enc.ii +++ b/zp/include/zp/str.d/utf8enc.ii @@ -35,6 +35,6 @@ constexpr auto ::zp::utf8enc(::zp::c8 * dst,::zp::c02 const * src) noexcept -> v /* One octet. */ *dst++ = chr; - zp_ulikly (chr == 0x0u) {break;} + zp_ulik (chr == 0x0u) {break;} } } diff --git a/zp/include/zp/str.d/utf8enclen.ii b/zp/include/zp/str.d/utf8enclen.ii index f3e1157..cf5d21f 100644 --- a/zp/include/zp/str.d/utf8enclen.ii +++ b/zp/include/zp/str.d/utf8enclen.ii @@ -25,7 +25,7 @@ constexpr auto ::zp::utf8enclen(::zp::c02 const * str) noexcept -> ::zp::sz { continue; } - zp_ulikly (chr == 0x0u) {break;} + zp_ulik (chr == 0x0u) {break;} ++len; } diff --git a/zp/source/amd64/mem/memcpy.s b/zp/source/amd64/mem/memcpy.s index 69a9226..dcfbc25 100644 --- a/zp/source/amd64/mem/memcpy.s +++ b/zp/source/amd64/mem/memcpy.s @@ -6,16 +6,16 @@ global zp_memcpy zp_memcpy: ; zp_i8 val1; - ; zp_i04 vali8; - ; int unsigned128_t vali01; - ; int unsigned256_t vali02; + ; zp_i04 val8; + ; int unsigned128_t val01; + ; int unsigned256_t val02; .big02cpy: ; big02cpy:; // We assume AVX. cmp rdx,0x20 jl short .big01cpy ; if (rem < 0x20u) goto big01cpy; - vmovdqu ymm0,[rsi] ; vali02 = *(int unsigned256_t *)src; - vmovdqu [rdi],ymm0 ; *(int unsigned256_t *)dst = vali02; + vmovdqu ymm0,[rsi] ; val02 = *(int unsigned256_t *)src; + vmovdqu [rdi],ymm0 ; *(int unsigned256_t *)dst = val02; add rdi,0x20 ; dst += 0x20u; add rsi,0x20 ; src += 0x20u; @@ -26,8 +26,8 @@ zp_memcpy: cmp rdx,0x10 jl short .wrdcpy ; if (rem < 0x10u) goto wrdcpy; - movdqu xmm0,[rsi] ; vali01 = *(int unsigned128_t *)src; - movdqu [rdi],xmm0 ; *(int unsigned128_t *)dst = vali01; + movdqu xmm0,[rsi] ; val01 = *(int unsigned128_t *)src; + movdqu [rdi],xmm0 ; *(int unsigned128_t *)dst = val01; add rdi,0x10 ; dst += 0x10u; add rsi,0x10 ; src += 0x10u; @@ -38,8 +38,8 @@ zp_memcpy: cmp rdx,0x8 jl short .bytcpy ; if (rem < 0x8u) goto bytcpy; - mov rcx,[rsi] ; vali8 = *(zp_i04 *)src; - mov [rdi],rcx ; *(zp_i04 *)dst = vali8; + mov rcx,[rsi] ; val8 = *(zp_i04 *)src; + mov [rdi],rcx ; *(zp_i04 *)dst = val8; add rsi,0x8 ; dst += 0x8u; add rdi,0x8 ; src += 0x8u; diff --git a/zp/source/amd64/mem/memfil.s b/zp/source/amd64/mem/memfil.s index 7089d63..965f164 100644 --- a/zp/source/amd64/mem/memfil.s +++ b/zp/source/amd64/mem/memfil.s @@ -13,7 +13,7 @@ zp_memfil: cmp rdx,0x8 jl short .bytfil ; if (num < 0x8u) goto bytfil; - mov [rdi],rax ; *(zp_i04 *)dst = vali8; + mov [rdi],rax ; *(zp_i04 *)dst = val8; add rdi,0x8 ; dst += 0x8u; sub rdx,0x8 ; num -= 0x8u; |