210 Commits

Author SHA1 Message Date
Konstantinos Margaritis
7b8cf97546 add extra instructions (currently arm-only), fix order of elements in set4x32/set2x64 2020-11-05 19:18:53 +02:00
Konstantinos Margaritis
547f79b920 small optimization in storecompress*() 2020-10-30 10:49:50 +02:00
Konstantinos Margaritis
548242981d fix ARM implementations 2020-10-30 10:38:41 +02:00
Konstantinos Margaritis
149ea938c4 don't redefine function on x86 2020-10-16 13:09:08 +03:00
Konstantinos Margaritis
c4db63665a scalar implementations of diffrich256 and diffrich384 2020-10-16 13:02:40 +03:00
Konstantinos Margaritis
4bce012570 Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h"
This reverts commit 6581aae90e55520353c03edb716de80ecc03521a.
2020-10-16 12:32:44 +03:00
Konstantinos Margaritis
83977db7ab split arch-agnostic simd_utils.h functions into the common file 2020-10-16 12:30:34 +03:00
Konstantinos Margaritis
e7e1308d7f fix compilation paths for cpuid_flags for x86 2020-10-16 12:29:45 +03:00
Konstantinos Margaritis
45bfed9b9d add scalar versions of the vectorized functions for architectures that don't support 256-bit/512-bit SIMD vectors such as ARM 2020-10-15 16:30:18 +03:00
Konstantinos Margaritis
c5a7f4b846 add ARM simd_utils vectorized functions for 128-bit vectors 2020-10-15 16:26:49 +03:00
Konstantinos Margaritis
5b425bd5a6 add arm simple cpuid_flags 2020-10-15 16:26:04 +03:00
Konstantinos Margaritis
31ac6718dd add ARM version of simd_utils.h 2020-10-13 09:19:56 +03:00
Konstantinos Margaritis
a9212174ee add arm bitutils.h header 2020-10-08 20:50:55 +03:00
Konstantinos Margaritis
1c2c73becf add C implementation of pdep64() 2020-10-08 20:50:18 +03:00
Konstantinos Margaritis
d2cf1a7882 move cpuid_flags.h header to common 2020-10-08 20:49:33 +03:00
Konstantinos Margaritis
5d773dd9db use C implementation of popcount for arm 2020-10-07 14:28:45 +03:00
Konstantinos Margaritis
4c924cc920 add arm architecture basic defines 2020-10-07 14:28:12 +03:00
Konstantinos Margaritis
9a0494259e minor fix 2020-10-07 14:26:41 +03:00
Konstantinos Margaritis
e91082d477 use right intrinsic 2020-10-06 13:45:52 +03:00
Konstantinos Margaritis
5952c64066 add necessary modifications to CMake system to enable building on ARM, add arm_neon.h intrinsic header to intrinsics.h 2020-10-06 12:44:23 +03:00
Konstantinos Margaritis
f0e70bc0ad Revert "Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h""
This reverts commit 04fbf2468140cc4d7ccabc62a2bdc4503a3d31c5.
2020-09-24 11:52:59 +03:00
Konstantinos Margaritis
04fbf24681 Revert "move x86 popcount.h implementations to util/arch/x86/popcount.h"
This reverts commit 6581aae90e55520353c03edb716de80ecc03521a.
2020-09-24 10:01:50 +03:00
Konstantinos Margaritis
5333467249 fix names, use own intrinsic instead of explicit _mm* ones 2020-09-23 11:51:21 +03:00
Konstantinos Margaritis
f7a6b8934c add some set*() functions, harmonize names, rename setAxB to set1_AxB when using mm_set1_* internally 2020-09-23 11:49:26 +03:00
Konstantinos Margaritis
e8e188acaf move x86 implementations of simd_utils.h to util/arch/x86/ 2020-09-22 13:12:07 +03:00
Konstantinos Margaritis
e915d84864 no need to check for WIN32* 2020-09-22 13:10:52 +03:00
Konstantinos Margaritis
9f3ad89ed6 move andn helper function to bitutils.h 2020-09-22 12:17:27 +03:00
Konstantinos Margaritis
6581aae90e move x86 popcount.h implementations to util/arch/x86/popcount.h 2020-09-22 11:45:24 +03:00
Konstantinos Margaritis
aac1f0f1dc move x86 bitutils.h implementations to util/arch/x86/bitutils.h 2020-09-22 11:02:07 +03:00
Konstantinos Margaritis
8ed5f4ac75 fix include paths for masked_move 2020-09-18 12:55:57 +03:00
Konstantinos Margaritis
956b001613 move masked_move* AVX2 implementation to util/arch/x86 2020-09-18 12:51:39 +03:00
Konstantinos Margaritis
ea721c908f move crc32 SSE42 implementation to util/arch/x86 2020-09-18 12:48:14 +03:00
Konstantinos Margaritis
6a40793719 move cpuid stuff to util/arch/x86 2020-09-17 20:35:39 +03:00
Konstantinos Margaritis
2d89df44ae move x86 arch and SIMD types to x86 arch folder 2020-09-17 19:00:48 +03:00
Chang, Harry
43204dda48 AVX512VBMI Teddy. 2020-05-25 13:47:53 +00:00
Hong, Yang A
23e5f06594 add new Literal API for pure literal expressions:
Design compile time api hs_compile_lit() and hs_compile_lit_multi()
to handle pure literal pattern sets. Corresponding option --literal-on
is added for hyperscan testing suites. Extended parameters and part of
flags are not supported for this api.
2019-08-13 14:51:38 +08:00
Derrick Lyndon Pallas
5a1b02bc10 Fix uninitialized use of scatter_unit_uX due to padding
These non-packed structures are placed into a std::vector.  Later, they
contents of the vector are memcpy'd and the CRC of this space is taken.
Some compilers will zero the struct padding but GCC8.2 with -O2 at least
will not.  This means that the CRC is based on uninitialized memory.

Since it is expected that these bytes will be memcpy'd, zero in place once
they're in the std::vector.

Found by Valgrind.

Q.v. Issue #148
2019-08-13 14:49:15 +08:00
Hong, Yang A
f68723a606 literal matching: separate path for pure literal patterns 2019-01-21 09:59:22 +08:00
Lu, Qi
5a0885d235 Windows porting: port hyperscan and chimera tools to windows. 2018-07-09 11:40:43 -04:00
Wang, Xiang W
bf87f8c003 chimera: hybrid of Hyperscan and PCRE 2018-07-09 11:30:35 -04:00
Chang, Harry
8a1c497f44 Logical Combination of patterns. 2018-06-27 14:04:57 +08:00
Justin Viiret
f877f14641 ue2_graph: more direct property_graph defn 2018-06-27 13:40:26 +08:00
Justin Viiret
c7c90c7ab7 graph_undirected: adapt bidi graph to undirected
Introduces an adaptor (like the BGL's reverse_graph) that presents an
undirected view of a bidirectional graph.

Initially used in ng_calc_components.
2018-06-27 13:40:10 +08:00
Justin Viiret
ce7cfbde82 misc: docs, typo fixes, small cleanups 2018-06-27 13:39:05 +08:00
Justin Viiret
08bf909e2b ng_violet: make calcSplitRatio operation faster
Implements count_reachable in a less malloc-happy way, improving
compile performance. Adds a count() function to small_color_map.
2018-06-27 13:38:55 +08:00
Matthew Barr
50ea83cb26 Move cpuid checks inline.
During fat runtime function resolution there was a chance that the PLT
might not be initialised in time for us to call the cpuid check
functions. Moving them inline means there is no PLT to worry about.

Fixes #78
2018-01-19 06:32:18 -05:00
Justin Viiret
ba0bf0c991 rose_build_add_mask: improve findMaskLiteral perf 2017-09-18 13:29:34 +10:00
Justin Viiret
7fe53fec10 partitioned_set: use lower_bound(), not scan 2017-09-18 13:29:34 +10:00
Justin Viiret
012b347284 ue2_literal: define npos in ue2string.cpp 2017-09-18 13:29:33 +10:00
Justin Viiret
fe31b387e8 hash: use std::hash for string hashing 2017-09-18 13:26:18 +10:00