summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.txt3
-rw-r--r--rttest.cc14
-rw-r--r--zp/include/zp/bs.h12
-rw-r--r--zp/include/zp/mem.d/equ.ii2
-rw-r--r--zp/include/zp/mem.d/srh.ii2
-rw-r--r--zp/include/zp/mth.d/divmod.ii2
-rw-r--r--zp/include/zp/mth.d/exp.ii4
-rw-r--r--zp/include/zp/str.d/strequ.ii4
-rw-r--r--zp/include/zp/str.d/strsrh.ii4
-rw-r--r--zp/include/zp/str.d/utf16dec.ii2
-rw-r--r--zp/include/zp/str.d/utf16declen.ii2
-rw-r--r--zp/include/zp/str.d/utf16enc.ii2
-rw-r--r--zp/include/zp/str.d/utf16enclen.ii2
-rw-r--r--zp/include/zp/str.d/utf8dec.ii2
-rw-r--r--zp/include/zp/str.d/utf8declen.ii2
-rw-r--r--zp/include/zp/str.d/utf8enc.ii2
-rw-r--r--zp/include/zp/str.d/utf8enclen.ii2
-rw-r--r--zp/source/amd64/mem/memcpy.s18
-rw-r--r--zp/source/amd64/mem/memfil.s2
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;
diff --git a/rttest.cc b/rttest.cc
index 0f3142f..953e070 100644
--- a/rttest.cc
+++ b/rttest.cc
@@ -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;