SIMD makes parsers 2 times faster in "pre-body phase". But it uses x86-specific instructions, making it not compilable on other architectures (see #4). This commit:
puts all x86 instructions in "_simd" suffixed functions
declares non-suffixed functions that use "simple" (but fast) char lookups
declares "_fast" suffixed functions that use the fastest available functions (simd if enabled, char lookup as a fallback)
This also allows for other architecture-specific optimizations by declaring other suffixed functions and adding them to the "_fast" suffixed ones with a feature flag.
SIMD makes parsers 2 times faster in "pre-body phase". But it uses x86-specific instructions, making it not compilable on other architectures (see #4). This commit:
This also allows for other architecture-specific optimizations by declaring other suffixed functions and adding them to the "_fast" suffixed ones with a feature flag.