Commit Graph

187 Commits

Author SHA1 Message Date
Zoltán Herczeg f768448fd3 JIT compiler update and disable wrong assert. 2019-10-16 12:50:55 +00:00
Zoltán Herczeg 97acc05f0c Fix use after free and compilation error in JIT. 2019-10-06 03:36:20 +00:00
Zoltán Herczeg 70b0debf10 Better description for jit-sealloc option and early check for executable memory. 2019-10-01 13:46:41 +00:00
Zoltán Herczeg e69a614430 Support NEON based fast forward character search in ARM64. Patch by Sebastian Pop. 2019-09-17 06:59:45 +00:00
Zoltán Herczeg aae44b83f8 Add underflow check in JIT. 2019-09-09 07:12:00 +00:00
Zoltán Herczeg 60df4c65d5 Move JIT simd into a separate header file. 2019-08-26 12:02:03 +00:00
Zoltán Herczeg 82a4729e13 Follow the partial matching changes in JIT. 2019-07-23 12:34:58 +00:00
Zoltán Herczeg f5b35e7943 Rework alternative matching in JIT. 2019-07-18 06:11:04 +00:00
Zoltán Herczeg 691aca7a86 Improve non-virtual register usage in JIT. 2019-07-10 14:57:43 +00:00
Zoltán Herczeg 7f24a98cfb Mixing SSE2 instructions in JIT. 2019-06-25 09:29:37 +00:00
Zoltán Herczeg 7768756737 Improve SSE2 optimiztions in JIT. 2019-06-25 06:11:14 +00:00
Zoltán Herczeg 3b2fa4dff2 Improve first character search in JIT (BSF instruction is slow). 2019-06-18 08:29:43 +00:00
Zoltán Herczeg cc51779d88 Improve single character iterators, add special path to dotall. 2019-06-07 13:48:59 +00:00
Philip.Hazel 5850cc5928 Fix previous patch for non-JIT compilation. 2019-05-25 16:31:38 +00:00
Philip.Hazel 16c046ce50 Implement support for invalid UTF in the pcre2_match() interpreter. 2019-05-24 17:15:48 +00:00
Zoltán Herczeg 2ad4329f83 Rework word boundary in JIT. 2019-05-23 07:46:10 +00:00
Philip.Hazel 342c16ecd3 Forgot this file in previous commit. Fixes JIT non-UTF bug. 2019-05-13 16:38:18 +00:00
Zoltán Herczeg 274efb8ded Improved the invalid utf32 support of the JIT compiler. 2019-05-10 13:15:20 +00:00
Zoltán Herczeg e17e54711b Negate signed shift warnings. 2019-04-16 08:57:10 +00:00
Zoltán Herczeg 590bc16842 Disable SSE2 JIT optimizations in x86 CPUs when SSE2 is not available. 2019-03-25 14:10:24 +00:00
Philip.Hazel 7375089fa5 More file tidies for 10.33-RC1 2019-03-04 18:07:04 +00:00
Zoltán Herczeg 9b1c7e4d4a Add preliminary script run support to JIT. 2019-01-18 14:14:19 +00:00
Zoltán Herczeg d38c7f7e8d Fix word boundary in JIT compiler. Patch by Mike Munday. 2019-01-17 11:47:59 +00:00
Philip.Hazel 04ba4bce0f Unicode properties data records extended to 12-bytes to include a
ScriptExtensions property.
2018-10-06 17:39:52 +00:00
Zoltán Herczeg 8800191109 Fix an xclass matching issue in JIT. 2018-09-21 07:24:34 +00:00
Zoltán Herczeg 3b3dc09f38 Optimize invalid character reading functions. 2018-09-20 13:38:13 +00:00
Zoltán Herczeg 80adf9d165 Fix subject buffer overread in JIT. Found by Yunho Kim. 2018-09-18 10:19:14 +00:00
Zoltán Herczeg aa2687737d Implement next subject character in JIT with invalid utf enabled. 2018-09-17 13:43:31 +00:00
Zoltán Herczeg a0188b9ee1 Fix more invalid UTF issues revealed by new tests in the JIT compiler. 2018-09-17 08:09:51 +00:00
Zoltán Herczeg 7035170527 Improve invalid UTF character reading in JIT. 2018-09-16 10:35:00 +00:00
Zoltán Herczeg 142c667bbc Add option bits for read_char in JIT. 2018-09-15 12:35:56 +00:00
Philip.Hazel baa91ecc79 Avoid compiler warning 2018-09-14 15:15:51 +00:00
Zoltán Herczeg 205444a91e Generate code for caseless utf backreferences in JIT instead of using a callback. 2018-09-14 11:30:13 +00:00
Zoltán Herczeg 12c4a246b6 Start working on invalid utf subject support in JIT. 2018-09-12 19:06:29 +00:00
Philip.Hazel 80c57b59f6 Minor code fix to avoid static analyzer complaint. 2018-09-06 15:59:11 +00:00
Philip.Hazel 392974a0cb File tidies and documentation update for 10.32-RC1 Release Candidate. 2018-08-13 11:57:09 +00:00
Philip.Hazel 192b82cf6e Allow :NAME on (*ACCEPT), (*FAIL), and (*COMMIT) and fix bug with (*MARK)
followed by (*ACCEPT) in an assertion. More small updates to perltest.sh.
2018-07-21 14:34:51 +00:00
Philip.Hazel d01c822c6d Minor tweak (may give minor performance improvement) to JIT UCD handling. 2018-07-14 17:00:17 +00:00
Philip.Hazel 937617f343 Update to Unicode 11.0.0 2018-07-07 16:10:29 +00:00
Zoltán Herczeg 940627c83a Fix a typo in JIT and add a test. 2018-01-10 09:28:03 +00:00
Zoltán Herczeg 1e0f88bba4 Update some register assignments and the JIT compiler. 2018-01-09 08:38:32 +00:00
Zoltán Herczeg 4a4389fa50 Support the new EXTUNI in JIT. 2018-01-06 08:48:11 +00:00
Zoltán Herczeg 11ed257eaa JIT compiler update. 2018-01-05 09:30:45 +00:00
Philip.Hazel 94d5f4a050 Add callout_flags to callout blocks, and set bits within it from pcre2_match()
interpretation.
2017-12-22 15:56:27 +00:00
Zoltán Herczeg 77513bfc04 Fix after JIT compiler update. 2017-11-30 08:15:28 +00:00
Zoltán Herczeg 28e73c60e3 JIT compiler update. 2017-11-29 13:30:31 +00:00
Philip.Hazel 810d9b6da5 Code tidies for 10.30-RC1 release candidate. 2017-07-19 16:04:15 +00:00
Zoltán Herczeg 6679349203 Fix a match offset check in JIT. 2017-06-16 10:27:02 +00:00
Zoltán Herczeg 1381c3fe28 Improve char range match in JIT. 2017-06-08 12:07:05 +00:00
Philip.Hazel f850015168 Add suitable "fall through" comments for latest gcc warnings. 2017-06-03 17:50:03 +00:00
Zoltán Herczeg a16919ce6f Improve character range optimization in JIT. 2017-05-30 09:42:28 +00:00
Zoltán Herczeg b317bdc184 JIT SSE2 optimization improvement. 2017-05-28 03:53:09 +00:00
Zoltán Herczeg 660811e899 Improve first bitset search in JIT. 2017-05-09 08:42:46 +00:00
Zoltán Herczeg 4655d89ce5 Continue reworking first character search in JIT. 2017-05-08 13:32:59 +00:00
Zoltán Herczeg 3c542db175 Improve first character searches. 2017-05-08 03:35:40 +00:00
Zoltán Herczeg ba1c759c90 JIT: Allow early quit in fast forward search. 2017-05-07 14:28:37 +00:00
Zoltán Herczeg a61bd956eb JIT compiler update. 2017-05-07 07:10:16 +00:00
Zoltán Herczeg aa224e4ac9 JIT compielr update. 2017-04-26 08:34:09 +00:00
Zoltán Herczeg 584f35c059 Improve prefix character scanning in JIT. 2017-04-18 14:37:01 +00:00
Zoltán Herczeg b9f95b5f63 Refactor SSE2 accelerated first character search in JIT. 2017-04-18 05:49:39 +00:00
Zoltán Herczeg 486a66681f SSE2 accelerated first character pair search in JIT. 2017-04-17 14:54:04 +00:00
Zoltán Herczeg 1379a48d94 Support end anchored in JIT. 2017-04-13 11:52:36 +00:00
Philip.Hazel 7afe4e4110 Documentation tidies and code tidies for Windows. 2017-04-08 15:21:39 +00:00
Zoltán Herczeg 13c0ea59b2 Enabling valgrind disables SSE2 in JIT. 2017-04-07 11:06:56 +00:00
Zoltán Herczeg bdac9df4cf Fix character type detection when 32-bit and UCP are enabled but UTF is not in JIT. 2017-03-31 05:40:37 +00:00
Zoltán Herczeg a5da70b28c Support (*ACCEPT) inside recurse in JIT. 2017-03-30 13:25:20 +00:00
Zoltán Herczeg 380738d981 Improve callouts and revertframes in JIT. 2017-03-29 08:12:32 +00:00
Zoltán Herczeg a31b57c9da Reverse the jit-stack to top-down. 2017-03-27 13:35:08 +00:00
Zoltán Herczeg 25cec7a966 Support full ovector data for JIT callouts. 2017-03-25 06:33:41 +00:00
Zoltán Herczeg 131209e22d Capture control verbs inside the conditional assertion of a conditional block. 2017-03-20 10:41:13 +00:00
Zoltán Herczeg b55ef12cc1 Reworked the recursive pattern matching in the JIT compiler to follow the interpreter changes. 2017-03-19 03:35:27 +00:00
Philip.Hazel 04da0725f3 Remove obsolete OP_ONCE_NC internal opcode. 2017-03-11 17:59:23 +00:00
Zoltán Herczeg 9669cd1218 Major JIT compiler update. 2017-02-15 07:27:08 +00:00
Zoltán Herczeg 83c67a8ece Fix register overwite in JIT when SSE2 acceleration is enabled. 2016-07-01 08:56:59 +00:00
Philip.Hazel 42f9a5e9e7 Fix typo that gave compiler error when JIT not supported. 2016-06-14 09:19:24 +00:00
Philip.Hazel 18018db697 Minor refactor to avoid "left shift of negative number" warning. 2016-05-21 13:41:24 +00:00
Zoltán Herczeg c8938f7a23 Style updates in JIT. 2016-04-12 11:27:41 +00:00
Zoltán Herczeg 3e486da3de JIT compiler update. 2016-03-04 08:51:53 +00:00
Zoltán Herczeg 9d52a9d973 JIT compiler update. 2016-02-29 09:09:40 +00:00
Zoltán Herczeg 80d7d825e1 JIT style fixes. 2016-02-24 10:17:10 +00:00
Zoltán Herczeg 88027b4625 Minor JIT style fixes. 2016-02-15 09:15:49 +00:00
Philip.Hazel bebd2d48bf Final file updates for 10.21 release. 2016-01-12 14:44:34 +00:00
Zoltán Herczeg 3485b14a18 Hotfix for [:punct:] in JIT. 2015-11-18 08:01:33 +00:00
Zoltán Herczeg c0d0f2f65e Fix two offset_limit bug in JIT. 2015-11-16 08:30:48 +00:00
Zoltán Herczeg 9006c26361 Support offset limit in JIT. 2015-11-15 05:05:53 +00:00
Zoltán Herczeg 357dfb7964 Fix two issues in JIT. 2015-09-02 08:35:50 +00:00
Zoltán Herczeg ccda7d218f SSE2 refactor, JIT compiler update. 2015-08-30 05:30:43 +00:00
Zoltán Herczeg e40bc47ae2 Fixed a corner case of range optimization in JIT. 2015-08-26 13:35:58 +00:00
Zoltán Herczeg 67764372eb Fix two assertion fails in JIT found by Karl Skomski. 2015-08-24 09:25:04 +00:00
Zoltán Herczeg 9150629497 Continue working on SSE2 support. 2015-08-23 09:47:08 +00:00
Zoltán Herczeg 81af149870 Improve first character match in JIT with SSE2 on x86. 2015-08-23 01:54:04 +00:00
Zoltán Herczeg 1370a49dfe Match limit check added to recursion. 2015-08-14 09:36:04 +00:00
Zoltán Herczeg d98800a946 A bug which was introduced by the single character repetition optimization was fixed. 2015-08-13 11:35:38 +00:00
Zoltán Herczeg b2144d14b6 Add 1 to match limit to support 0 match limit. 2015-08-13 05:57:26 +00:00
Zoltán Herczeg d210396121 The JIT compiler should restore the control chain for empty possessive repeats. 2015-08-11 13:20:37 +00:00
Zoltán Herczeg 3ec328fe1b The JIT compiler should not check repeats after a {0,1} repeat byte code. 2015-08-11 05:30:10 +00:00
Zoltán Herczeg 1a3a24016d Improve the performance of starting single character repetitions in JIT. 2015-08-10 12:28:27 +00:00
Zoltán Herczeg c214c54ca0 The JIT compiler did not restore the control verb head in case of *THEN control verbs. 2015-08-08 05:45:17 +00:00
Zoltán Herczeg 4003ae5911 Fixed an issue when \p{Any} inside an xclass did not read the current character. 2015-08-05 09:04:01 +00:00
Zoltán Herczeg 0b809c7de3 Fix typo in JIT. 2015-07-22 06:42:58 +00:00