280 Commits

Author SHA1 Message Date
Justin Viiret
07a6b6510c rose/hwlm: limit literals to eight bytes
Rework HWLM to work over literals of eight bytes ("medium length"),
doing confirm in the Rose interpreter.
2017-04-26 14:41:29 +10:00
Alex Coyte
8f8ba2d591 basic unit test to check correct stream state is being used. 2017-03-01 13:05:10 +11:00
Matthew Barr
46f74300f2 update copyright year 2017-01-17 11:38:09 +11:00
Matthew Barr
981e9896b4 MSVC gets confused by one line of the graph tests 2017-01-06 11:24:16 +11:00
Matthew Barr
0d0e1a5106 api: hs_valid_platform 2016-12-14 15:35:13 +11:00
Matthew Barr
c3a73446ee Fat runtime 2016-12-14 15:34:54 +11:00
Matthew Barr
2214296b7f Convert compile-time code to not require SIMD 2016-12-14 15:29:01 +11:00
Justin Viiret
e271781d95 multibit, fatbit: make _size build-time only
This commit makes mmbit_size() and fatbit_size compile-time only, and
adds a resource limit for very large multibits.
2016-12-14 15:28:54 +11:00
Alex Coyte
e51b6d23b9 introduce Sheng-McClellan hybrid 2016-12-14 15:27:18 +11:00
Alex Coyte
f605ca0dc1 check for partial matches at end of dverm 2016-12-02 11:34:04 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
445cf987a8 remove unused includes 2016-10-28 14:52:56 +11:00
Justin Viiret
68bf473e2e fdr: move long literal handling into Rose
Move the hash table used for long literal support in streaming mode from
FDR to Rose, and introduce new instructions CHECK_LONG_LIT and
CHECK_LONG_LIT_NOCASE for doing literal confirm for long literals.

This simplifies FDR confirm, and guarantees that HWLM matchers will only
be used for literals < 256 bytes long.
2016-10-28 14:52:26 +11:00
Matthew Barr
c3b5efefb6 Add short avx2 shufti form 2016-10-28 14:46:31 +11:00
Alex Coyte
a08e1dd690 Introduce a 64-bit LimEx model.
On 64-bit platforms, the Limex 64 model is implemented in normal GPRs.
On 32-bit platforms, however, 128-bit SSE registers are used for the
runtime implementation.
2016-10-28 14:44:12 +11:00
Xu, Chi
b96d5c23d1 rose: add new instruction CHECK_MASK_32
This is a specialisation of the "lookaround" code.
2016-10-28 14:43:33 +11:00
Matthew Barr
c1bc6acdea unit test for github issue #30 2016-08-29 11:30:15 +10:00
Matthew Barr
ead869992c unit: Disable warnings 2016-08-10 15:14:07 +10:00
Alex Coyte
702f256b39 remove exceptionMap from LimExNFA 2016-08-10 15:11:15 +10:00
Matthew Barr
b8d33732b5 Check for misaligned memory in compile error code
We now check that mem alloc for error message is aligned, and
fail with an appropriate message in the compile error.
2016-08-10 15:10:09 +10:00
Justin Viiret
67e450115a parser: ignore \E that is not preceded by \Q
This conforms to PCRE's behaviour, where an isolated \E that is not
preceded by \Q is ignored.
2016-08-10 15:08:01 +10:00
Matthew Barr
cbd115f7fe Don't shadow names 2016-08-10 15:06:57 +10:00
Justin Viiret
4ce268af47 ng: ensure that only match states have reports
Ensure (and assert) that vertices without an edge to {accept, acceptEod}
do not have reports set.
2016-08-10 15:05:23 +10:00
Justin Viiret
9eb349a343 rose: expose smwr builder, tidy up engine build 2016-08-10 14:59:10 +10:00
Xu, Chi
4d7469392d rose: add CHECK_BYTE/CHECK_MASK instructions
These instructions are specialisations of the "lookaround" code for
performance.
2016-08-10 14:57:48 +10:00
Alex Coyte
691b08d170 use NGHolder::foo in favour of NFAGraph::foo 2016-08-10 14:52:56 +10:00
Boris Nagaev
b73bd9b6e1 new test: deserializers fail with garbage input 2016-08-10 14:08:59 +10:00
Matthew Barr
e3d416a6ea Apply some consistency to the names we give shifts 2016-07-08 11:07:50 +10:00
Matthew Barr
4d6934fc77 Move limex specific shuffle utils and ssse3 funcs 2016-07-08 11:07:50 +10:00
Justin Viiret
cf9e40ae1c nfa: unify NfaCallback and SomNfaCallback
Use just one callback type, with both start and end offsets.
2016-07-08 11:01:56 +10:00
Kirill Rybalchenko
9d2403e8bb limex: implement variable shift NFA engines
Replaces the old LimEx NFA engines, which were specialised for model
size and number of shifts, with a new set of engines that can handle a
variable number of shifts.
2016-07-08 10:57:29 +10:00
Justin Viiret
ea62ba107f unit: make multiaccel tests deterministic
Use a PRNG, not rand().
2016-07-08 10:47:33 +10:00
Alex Coyte
a8aa2d022f Provide access to scratch in queues
This largely reverts commit f8ecf33236b0695d9539e8e34cf0bb0467614cdf.
2016-07-08 10:46:50 +10:00
Justin Viiret
6899cab370 unit-internal: fix FDR issues reported by ASan
FDR's streaming mode now assumes that it is safe to read 16 bytes before
the end of the history buffer, and this was not reflected in the unit
tests.
2016-05-18 16:28:08 +10:00
Justin Viiret
73610c0b64 scratch: don't leave in use after hs_clone_scratch
Also updated unit tests to always check hs_alloc_scratch()'s return
value.
2016-05-18 16:28:03 +10:00
Justin Viiret
f532b89776 unit: clean up getValidFdrEngines() 2016-05-18 16:27:57 +10:00
Justin Viiret
38797abb06 unit: fix bug in teddy model unit tests 2016-05-18 16:27:54 +10:00
Anatoly Burakov
01169e69d2 Fix for multiaccel matcher unit test
Test was failing on 32-bit OS with AVX2
2016-05-18 16:27:51 +10:00
Justin Viiret
c12b953131 runtime: add error for "scratch in use"
This commit adds the HS_SCRATCH_IN_USE error, which is returned when
Hyperscan detects that a scratch region is already in use on entry to an
API function.
2016-05-18 16:27:29 +10:00
Alex Coyte
f0825b4d3f remove unused parts of fdr_loadval 2016-05-18 16:25:31 +10:00
Mohammad Abdul Awal
598f0565cf fdr: Remove python codegen, add safezones 2016-05-18 16:22:52 +10:00
Alex Coyte
e86688e313 add m128 byte shift functions
variable_byte_shift_m128 taken from pug-interpreter branch
2016-05-18 16:22:44 +10:00
Justin Viiret
d7774f3d69 noodle_build: update interface to use hwlmLiteral 2016-05-18 16:22:32 +10:00
Justin Viiret
8eec61445f unit: fix up noodle unit tests 2016-05-18 16:22:25 +10:00
Justin Viiret
c101beb541 castle, lbr: native report remap 2016-05-18 16:21:36 +10:00
Justin Viiret
611579511c rose: remap reports to program offsets 2016-05-18 16:20:42 +10:00
Alex Coyte
c0a5b037a1 allow double shufti to share buckets 2016-04-20 13:34:56 +10:00
Alex Coyte
6c7ee12bb9 make dverm more precise 2016-04-20 13:34:56 +10:00
Alex Coyte
b4727cf1ea masked version of dverm 2016-04-20 13:34:56 +10:00
Justin Viiret
1fcd3cfb2c mmbit_all: True if all keys are switched on 2016-04-20 13:34:55 +10:00