ptr-poker 0.1.2.6 → 0.1.2.7
raw patch · 2 files changed
+1/−68 lines, 2 files
Files
- cbits/text.c +0/−67
- ptr-poker.cabal +1/−1
cbits/text.c view
@@ -13,11 +13,6 @@ #include <stdint.h> #include <stdio.h> -#if defined(__x86_64__)-#include <xmmintrin.h>-#include <emmintrin.h>-#endif- uint8_t* encode_text ( uint8_t *dest,@@ -25,69 +20,8 @@ size_t src_offset, size_t src_length )-#if defined(__x86_64__) {- src += src_offset;- - const uint16_t* src_end = src + src_length;- const uint16_t* full_xmm_src_end = src_end - 8; - while (src < src_end) {- uint16_t x = *src++;-- if (x <= 0x7F) {- *dest++ = x;-- while (src < full_xmm_src_end) {- union { uint64_t halves[2]; __m128i whole; } eight_chars;- eight_chars.whole = _mm_loadu_si128((__m128i *) src);-- const uint64_t h1 = eight_chars.halves[0];- const uint64_t non_asciiness_of_the_first_half = h1 & 0xFF80FF80FF80FF80ULL;-- if (non_asciiness_of_the_first_half) {- break;- }-- const __m128i eight_ascii_chars = _mm_packus_epi16(eight_chars.whole, eight_chars.whole);- _mm_storel_epi64((__m128i *)dest, eight_ascii_chars);-- const uint64_t non_asciiness_of_the_second_half = eight_chars.halves[1] & 0xFF80FF80FF80FF80ULL;- if (non_asciiness_of_the_second_half) {- const int ascii_char_count = __builtin_ctz(non_asciiness_of_the_second_half) / 16;- dest += 4 + ascii_char_count;- src += 4 + ascii_char_count;- break;- }-- dest += 8;- src += 8;- }- }- else if (x <= 0x7FF) {- *dest++ = (x >> 6) | 0xC0;- *dest++ = (x & 0x3f) | 0x80;- }- else if (x < 0xD800 || x > 0xDBFF) {- *dest++ = (x >> 12) | 0xE0;- *dest++ = ((x >> 6) & 0x3F) | 0x80;- *dest++ = (x & 0x3F) | 0x80;- } else {- uint32_t c =- ((((uint32_t) x) - 0xD800) << 10) + - (((uint32_t) *src++) - 0xDC00) + 0x10000;- *dest++ = (c >> 18) | 0xF0;- *dest++ = ((c >> 12) & 0x3F) | 0x80;- *dest++ = ((c >> 6) & 0x3F) | 0x80;- *dest++ = (c & 0x3F) | 0x80;- }- }-- return dest;-}-#elif defined(__i386__) || defined(__arm64__)-{- src += src_offset; const uint16_t* src_end = src + src_length;@@ -131,7 +65,6 @@ return dest; }-#endif int count_text_allocation_size
ptr-poker.cabal view
@@ -1,5 +1,5 @@ name: ptr-poker-version: 0.1.2.6+version: 0.1.2.7 synopsis: Pointer poking action construction and composition toolkit homepage: https://github.com/nikita-volkov/ptr-poker bug-reports: https://github.com/nikita-volkov/ptr-poker/issues