Commit Graph

162 Commits

Author SHA1 Message Date
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
Zoltán Herczeg f957e7bfa8 Fix infinite recursion in the JIT compiler when certain patterns when certain patterns are analysed. 2015-07-20 07:38:06 +00:00
Zoltán Herczeg 6f3776bd14 Improve matching speed of patterns starting with + or * in JIT. 2015-07-03 06:46:20 +00:00
Zoltán Herczeg c5f27e1c18 JIT should return with error when the compiled pattern requires more stack space than the maximum. 2015-06-28 13:31:24 +00:00
Zoltán Herczeg c1355dedc2 Improve star and upto performance in JIT when unicode is disabled. 2015-06-21 05:10:48 +00:00
Zoltán Herczeg 78ea22d11d Minor AllAny optimization in JIT. 2015-06-19 10:16:33 +00:00
Zoltán Herczeg f692e5c45b Improve xclass matching in JIT. 2015-06-19 10:10:44 +00:00
Zoltán Herczeg 0638a1897e Minor single character iterator fixes in JIT. 2015-06-19 06:53:36 +00:00
Philip.Hazel 07a8fdce25 Source and document file tidies for 10.20-RC1. 2015-06-18 16:39:25 +00:00
Zoltán Herczeg a68ddd48b5 Improve exact character repeat length check. 2015-06-17 11:32:06 +00:00
Zoltán Herczeg 870f975707 Single character repetition in JIT has been improved. 2015-06-16 11:37:19 +00:00
Zoltán Herczeg bf492e47f6 Warning fixes. 2015-06-01 06:55:17 +00:00
Zoltán Herczeg e4dc0407e3 Support alt circumflex in JIT. 2015-04-27 07:02:34 +00:00
Philip.Hazel 2966b067cb Implement --enable-debug. 2015-04-24 11:14:47 +00:00
Zoltán Herczeg c8609a72c6 Fix JIT assertion failure. 2015-04-21 07:02:08 +00:00
Zoltán Herczeg 53e25208d3 Improve options passing. 2015-04-20 13:04:02 +00:00
Zoltán Herczeg 69cda6bc70 Fix JIT compilation of conditional blocks whose assertion is converted to (*FAIL). 2015-03-24 08:43:52 +00:00
Philip.Hazel 15e034c9c2 Add string offset within the pattern to the data passed to a callout with a
string argument.
2015-03-14 12:20:18 +00:00
Zoltán Herczeg bccfdcb172 Assertion code generator in JIT has been optimized. 2015-03-12 11:21:38 +00:00
Philip.Hazel d0cf279d87 Code for callouts with string arguments. Documentation not yet updated. 2015-03-11 17:44:16 +00:00
Zoltán Herczeg 94802eb0d9 Remove computing the JIT read-only data size in advance and use on-demand memory allocation. 2015-03-06 07:41:36 +00:00
Philip.Hazel 49a7eada2d Final source file tidies for 10.10-RC1 2015-02-20 11:20:40 +00:00
Philip.Hazel ca77bdd5c4 Implement (*NO_JIT) 2015-01-26 14:57:27 +00:00
Philip.Hazel 312375057b Change callouts to pass the user data as a separate argument. 2014-11-25 17:35:01 +00:00
Zoltán Herczeg bb6bf69a6e Move all offset initialization to one place. 2014-11-25 09:06:27 +00:00
Philip.Hazel eb4fffbbf4 More documentation and file tidies. 2014-11-21 16:45:06 +00:00