mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
cca8a78ea2
`utf_char2cells()` calls `utf_printable()` twice (sometimes indirectly, through `vim_isprintc()`) for characters >= 128. The function can be refactored to call to it only once. `utf_printable()` uses binary search on ranges of unprintable characters to determine if a given character is printable. Since there are only 9 ranges, and the first range contains only one character, binary search can be replaced with SSE2 SIMD comparisons that check 8 ranges at a time, and the first range is checked separately. SSE2 is enabled by default in GCC, Clang and MSVC for x86-64. Add 3-byte utf-8 to screenpos_spec benchmarks. |
||
---|---|---|
.. | ||
autocmd_spec.lua | ||
bench_regexp_spec.lua | ||
deepcopy_spec.lua | ||
iter_spec.lua | ||
preload.lua | ||
screenpos_spec.lua | ||
treesitter_spec.lua |