Matthew Barr
7d3eff8648
extern "C" for mask1bit table
2016-10-28 14:51:49 +11:00
Alex Coyte
c94899dd44
allow sets of tops on edges
2016-10-28 14:51:46 +11:00
Alex Coyte
aca89e66d2
hinted insert operations for flat_set
2016-10-28 14:48:55 +11:00
Matthew Barr
7849b9d611
MSVC prefers the attrib at the beginning
2016-10-28 14:48:31 +11:00
Xu, Chi
04d79629de
rose: add shufti-based lookaround instructions
...
More lookaround specialisations that use the shufti approach.
2016-10-28 14:46:27 +11:00
Justin Viiret
9139123642
rose: move sparse iter cache to RoseEngineBlob
...
This enables its use for iterators written by instructions.
2016-10-28 14:45:32 +11:00
Justin Viiret
13b6023a18
hash: add hash_all variadic tpl func, use in rose
2016-10-28 14:45:28 +11:00
Justin Viiret
3bfef988fe
container.h: include <vector>
2016-10-28 14:45:11 +11:00
Alex Coyte
e74b141e95
rework load_m128_from_u64a()
2016-10-28 14:44:16 +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
Justin Viiret
3cf4199879
debug: always use %zu in format string for size_t
2016-10-28 14:43:34 +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
Alex Coyte
702f256b39
remove exceptionMap from LimExNFA
2016-08-10 15:11:15 +10:00
Alex Coyte
5c5ec905cc
violet: initial implementation
2016-08-10 15:01:08 +10:00
Justin Viiret
49bb3b5c82
simd_utils: setbit/clearbit by loading 1-bit mask
2016-08-10 14:52:56 +10:00
Matthew Barr
22b451b59b
Ensure that m256 is 32-aligned on non-avx2 builds
2016-08-10 14:52:56 +10:00
Matthew Barr
e3d416a6ea
Apply some consistency to the names we give shifts
2016-07-08 11:07:50 +10:00
Matthew Barr
c76ff285e7
remove unnecessary function proto
2016-07-08 11:07:50 +10:00
Matthew Barr
9c915cc936
remove only use of cmpmsk8 and unused cmpmsk16
2016-07-08 11:07:50 +10:00
Matthew Barr
0722b5db5b
Remove GCC-style compound statements
...
These do not appear to give us benefits over inlining on recent compilers.
2016-07-08 11:07:50 +10:00
Matthew Barr
adf820bbba
simd: simplify the set-all-ones util funcs
...
Modern compilers (gcc, icc) get this right, with the benefit of
removing our last use of inline asm in this file.
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
Xiang Wang
9087d59be5
tamarama: add container engine for exclusive nfas
...
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.
This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Justin Viiret
6e49544558
exhaust: move functions to report.h
2016-07-08 10:45:06 +10:00
Boris Nagaev
ba45bd34d6
fix iter_wrapper for iterator=pointer
2016-07-06 19:46:25 +03:00
Matthew Barr
ca2343f98e
We need an immediate so use intrinsic directly
2016-05-24 11:26:33 +10:00
Matthew Barr
1d6462532a
vbs: the static array has C linkage
2016-05-24 11:26:27 +10:00
Matthew Barr
3527a9cb5c
masked move: C linkage
2016-05-24 11:26:24 +10:00
Matthew Barr
b5be8ef6aa
Win32 ctz and clz
2016-05-24 11:26:20 +10:00
Matthew Barr
5234639736
popcount: use intrinsics and restructure defines
2016-05-24 11:26:16 +10:00
Justin Viiret
6c1143a264
ue2string: fix broken function type in upperString
...
Silences warning from ubsan.
2016-05-18 16:28:00 +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
31b1114f76
cmpForward: assume (and assert) p2 is upper-case
2016-05-18 16:22:28 +10:00
Justin Viiret
da89f5ef6b
ue2string: bring caseless cmp inline
2016-05-18 16:22:18 +10:00
Justin Viiret
f40aa6bd40
report_manager: store report -> program mapping
2016-05-18 16:20:38 +10:00
Justin Viiret
4541eaa92c
report: remove dead function isInternalSomReport
2016-04-20 13:34:57 +10:00
Justin Viiret
36150bbc19
Rose: replace internal_report with program
...
Replace the use of the internal_report structure (for reports from
engines, MPV etc) with the Rose program interpreter.
SOM processing was reworked to use a new som_operation structure that is
embedded in the appropriate instructions.
2016-04-20 13:34:57 +10:00
Alex Coyte
41751c4f3b
bitfield: unroll main operators
2016-04-20 13:34:56 +10:00
Alex Coyte
938ac9fd38
CharReach operators inline
2016-04-20 13:34:56 +10:00
Alex Coyte
ff721ed8e4
unify some accel code/structures between limex and mcclellan
2016-04-20 13:34:56 +10:00
Alex Coyte
f53c093baa
simple offset accel for mcclellan start state
2016-04-20 13:34:56 +10:00
Justin Viiret
50885f210a
exhaust: Update interface
...
- Only use functions in exhaust.h for valid ekeys
- Use INVALID_EKEY everywhere (remove dupe END_EXHAUST sentinel)
2016-04-20 13:34:55 +10:00
Justin Viiret
f2c0a66b6f
Rose: use a multibit for the exhaustion vector
...
Previously, the exhaustion vector was a standard bitvector, which
required an expensive memset() call at init for databases with a large
number of exhaustion keys.
2016-04-20 13:34:55 +10:00
Justin Viiret
1fcd3cfb2c
mmbit_all: True if all keys are switched on
2016-04-20 13:34:55 +10:00
Matthew Barr
088347b437
Remove unused storeu macros
2016-04-20 13:34:55 +10:00
Matthew Barr
dd4c1eceb8
Remove unused loadu2x128
2016-04-20 13:34:55 +10:00
Justin Viiret
e034ccb9b4
mmbit_iterate_bounded: make block_width u64a
2016-04-20 13:34:55 +10:00
Justin Viiret
e466e67b79
AlignedAllocator: simplify and fix for MSVC, C++11
...
- Simplify thanks to minimal allocator requirements in C++11.
- Add required copy constructor.
2016-04-20 13:34:54 +10:00
Matthew Barr
d77ee0839d
Improved test for AVX2 support
...
Test for xsave and XMM/YMM registers. Use ICC dynamic feature detection
where available.
2016-03-01 11:36:09 +11:00
Justin Viiret
060defe6c4
Rose: move more report handling work into program
...
Move report preconditions (bounds, exhaustion, etc) into program
instructions and use a more direct path to the user match callback than
the adaptor functions.
Report handling has been moved to new file src/report.h. Reporting from
EOD now uses the same instructions as normal report handling, rather
than its own.
Jump target tracking in rose_build_bytecode.cpp has been cleaned up.
2016-03-01 11:32:01 +11:00