../3rdparty/pcre/pcre_jit_compile.c

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/************************************************* -
2* Perl-Compatible Regular Expressions * -
3*************************************************/ -
4 -
5/* PCRE is a library of functions to support regular expressions whose syntax -
6and semantics are as close as possible to those of the Perl 5 language. -
7 -
8 Written by Philip Hazel -
9 Copyright (c) 1997-2012 University of Cambridge -
10 -
11 The machine code generator part (this module) was written by Zoltan Herczeg -
12 Copyright (c) 2010-2012 -
13 -
14----------------------------------------------------------------------------- -
15Redistribution and use in source and binary forms, with or without -
16modification, are permitted provided that the following conditions are met: -
17 -
18 * Redistributions of source code must retain the above copyright notice, -
19 this list of conditions and the following disclaimer. -
20 -
21 * Redistributions in binary form must reproduce the above copyright -
22 notice, this list of conditions and the following disclaimer in the -
23 documentation and/or other materials provided with the distribution. -
24 -
25 * Neither the name of the University of Cambridge nor the names of its -
26 contributors may be used to endorse or promote products derived from -
27 this software without specific prior written permission. -
28 -
29THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -
30AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -
31IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -
32ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -
33LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -
34CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -
35SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -
36INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -
37CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -
38ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -
39POSSIBILITY OF SUCH DAMAGE. -
40----------------------------------------------------------------------------- -
41*/ -
42 -
43#ifdef PCRE_HAVE_CONFIG_H -
44#include "config.h" -
45#endif -
46 -
47#include "pcre_internal.h" -
48 -
49#ifdef SUPPORT_JIT -
50 -
51/* All-in-one: Since we use the JIT compiler only from here, -
52we just include it. This way we don't need to touch the build -
53system files. */ -
54 -
55#define SLJIT_MALLOC(size) (PUBL(malloc))(size) -
56#define SLJIT_FREE(ptr) (PUBL(free))(ptr) -
57#define SLJIT_CONFIG_AUTO 1 -
58#define SLJIT_CONFIG_STATIC 1 -
59#define SLJIT_VERBOSE 0 -
60#define SLJIT_DEBUG 0 -
61 -
62#include "sljit/sljitLir.c" -
63 -
64#if defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED -
65#error Unsupported architecture -
66#endif -
67 -
68/* Allocate memory on the stack. Fast, but limited size. */ -
69#define LOCAL_SPACE_SIZE 32768 -
70 -
71#define STACK_GROWTH_RATE 8192 -
72 -
73/* Enable to check that the allocation could destroy temporaries. */ -
74#if defined SLJIT_DEBUG && SLJIT_DEBUG -
75#define DESTROY_REGISTERS 1 -
76#endif -
77 -
78/* -
79Short summary about the backtracking mechanism empolyed by the jit code generator: -
80 -
81The code generator follows the recursive nature of the PERL compatible regular -
82expressions. The basic blocks of regular expressions are condition checkers -
83whose execute different commands depending on the result of the condition check. -
84The relationship between the operators can be horizontal (concatenation) and -
85vertical (sub-expression) (See struct fallback_common for more details). -
86 -
87 'ab' - 'a' and 'b' regexps are concatenated -
88 'a+' - 'a' is the sub-expression of the '+' operator -
89 -
90The condition checkers are boolean (true/false) checkers. Machine code is generated -
91for the checker itself and for the actions depending on the result of the checker. -
92The 'true' case is called as the hot path (expected path), and the other is called as -
93the 'fallback' path. Branch instructions are expesive for all CPUs, so we avoid taken -
94branches on the hot path. -
95 -
96 Greedy star operator (*) : -
97 Hot path: match happens. -
98 Fallback path: match failed. -
99 Non-greedy star operator (*?) : -
100 Hot path: no need to perform a match. -
101 Fallback path: match is required. -
102 -
103The following example shows how the code generated for a capturing bracket -
104with two alternatives. Let A, B, C, D are arbirary regular expressions, and -
105we have the following regular expression: -
106 -
107 A(B|C)D -
108 -
109The generated code will be the following: -
110 -
111 A hot path -
112 '(' hot path (pushing arguments to the stack) -
113 B hot path -
114 ')' hot path (pushing arguments to the stack) -
115 D hot path -
116 return with successful match -
117 -
118 D fallback path -
119 ')' fallback path (If we arrived from "C" jump to the fallback of "C") -
120 B fallback path -
121 C expected path -
122 jump to D hot path -
123 C fallback path -
124 A fallback path -
125 -
126 Notice, that the order of fallback code paths are the opposite of the fast -
127 code paths. In this way the topmost value on the stack is always belong -
128 to the current fallback code path. The fallback code path must check -
129 whether there is a next alternative. If so, it needs to jump back to -
130 the hot path eventually. Otherwise it needs to clear out its own stack -
131 frame and continue the execution on the fallback code paths. -
132*/ -
133 -
134/* -
135Saved stack frames: -
136 -
137Atomic blocks and asserts require reloading the values of local variables -
138when the fallback mechanism performed. Because of OP_RECURSE, the locals -
139are not necessarly known in compile time, thus we need a dynamic restore -
140mechanism. -
141 -
142The stack frames are stored in a chain list, and have the following format: -
143([ capturing bracket offset ][ start value ][ end value ])+ ... [ 0 ] [ previous head ] -
144 -
145Thus we can restore the locals to a particular point in the stack. -
146*/ -
147 -
148typedef struct jit_arguments { -
149 /* Pointers first. */ -
150 struct sljit_stack *stack; -
151 const pcre_uchar *str; -
152 const pcre_uchar *begin; -
153 const pcre_uchar *end; -
154 int *offsets; -
155 pcre_uchar *ptr; -
156 /* Everything else after. */ -
157 int offsetcount; -
158 int calllimit; -
159 pcre_uint8 notbol; -
160 pcre_uint8 noteol; -
161 pcre_uint8 notempty; -
162 pcre_uint8 notempty_atstart; -
163} jit_arguments; -
164 -
165typedef struct executable_function { -
166 void *executable_func; -
167 PUBL(jit_callback) callback; -
168 void *userdata; -
169 sljit_uw executable_size; -
170} executable_function; -
171 -
172typedef struct jump_list { -
173 struct sljit_jump *jump; -
174 struct jump_list *next; -
175} jump_list; -
176 -
177enum stub_types { stack_alloc }; -
178 -
179typedef struct stub_list { -
180 enum stub_types type; -
181 int data; -
182 struct sljit_jump *start; -
183 struct sljit_label *leave; -
184 struct stub_list *next; -
185} stub_list; -
186 -
187typedef int (SLJIT_CALL *jit_function)(jit_arguments *args); -
188 -
189/* The following structure is the key data type for the recursive -
190code generator. It is allocated by compile_hotpath, and contains -
191the aguments for compile_fallbackpath. Must be the first member -
192of its descendants. */ -
193typedef struct fallback_common { -
194 /* Concatenation stack. */ -
195 struct fallback_common *prev; -
196 jump_list *nextfallbacks; -
197 /* Internal stack (for component operators). */ -
198 struct fallback_common *top; -
199 jump_list *topfallbacks; -
200 /* Opcode pointer. */ -
201 pcre_uchar *cc; -
202} fallback_common; -
203 -
204typedef struct assert_fallback { -
205 fallback_common common; -
206 jump_list *condfailed; -
207 /* Less than 0 (-1) if a frame is not needed. */ -
208 int framesize; -
209 /* Points to our private memory word on the stack. */ -
210 int localptr; -
211 /* For iterators. */ -
212 struct sljit_label *hotpath; -
213} assert_fallback; -
214 -
215typedef struct bracket_fallback { -
216 fallback_common common; -
217 /* Where to coninue if an alternative is successfully matched. */ -
218 struct sljit_label *althotpath; -
219 /* For rmin and rmax iterators. */ -
220 struct sljit_label *recursivehotpath; -
221 /* For greedy ? operator. */ -
222 struct sljit_label *zerohotpath; -
223 /* Contains the branches of a failed condition. */ -
224 union { -
225 /* Both for OP_COND, OP_SCOND. */ -
226 jump_list *condfailed; -
227 assert_fallback *assert; -
228 /* For OP_ONCE. -1 if not needed. */ -
229 int framesize; -
230 } u; -
231 /* Points to our private memory word on the stack. */ -
232 int localptr; -
233} bracket_fallback; -
234 -
235typedef struct bracketpos_fallback { -
236 fallback_common common; -
237 /* Points to our private memory word on the stack. */ -
238 int localptr; -
239 /* Reverting stack is needed. */ -
240 int framesize; -
241 /* Allocated stack size. */ -
242 int stacksize; -
243} bracketpos_fallback; -
244 -
245typedef struct braminzero_fallback { -
246 fallback_common common; -
247 struct sljit_label *hotpath; -
248} braminzero_fallback; -
249 -
250typedef struct iterator_fallback { -
251 fallback_common common; -
252 /* Next iteration. */ -
253 struct sljit_label *hotpath; -
254} iterator_fallback; -
255 -
256typedef struct recurse_entry { -
257 struct recurse_entry *next; -
258 /* Contains the function entry. */ -
259 struct sljit_label *entry; -
260 /* Collects the calls until the function is not created. */ -
261 jump_list *calls; -
262 /* Points to the starting opcode. */ -
263 int start; -
264} recurse_entry; -
265 -
266typedef struct recurse_fallback { -
267 fallback_common common; -
268} recurse_fallback; -
269 -
270typedef struct compiler_common { -
271 struct sljit_compiler *compiler; -
272 pcre_uchar *start; -
273 int localsize; -
274 int *localptrs; -
275 const pcre_uint8 *fcc; -
276 sljit_w lcc; -
277 int cbraptr; -
278 int nltype; -
279 int newline; -
280 int bsr_nltype; -
281 int endonly; -
282 sljit_w ctypes; -
283 sljit_uw name_table; -
284 sljit_w name_count; -
285 sljit_w name_entry_size; -
286 struct sljit_label *acceptlabel; -
287 stub_list *stubs; -
288 recurse_entry *entries; -
289 recurse_entry *currententry; -
290 jump_list *accept; -
291 jump_list *calllimit; -
292 jump_list *stackalloc; -
293 jump_list *revertframes; -
294 jump_list *wordboundary; -
295 jump_list *anynewline; -
296 jump_list *hspace; -
297 jump_list *vspace; -
298 jump_list *casefulcmp; -
299 jump_list *caselesscmp; -
300 BOOL jscript_compat; -
301#ifdef SUPPORT_UTF -
302 BOOL utf; -
303#ifdef SUPPORT_UCP -
304 BOOL use_ucp; -
305#endif -
306 jump_list *utfreadchar; -
307#ifdef COMPILE_PCRE8 -
308 jump_list *utfreadtype8; -
309#endif -
310#endif /* SUPPORT_UTF */ -
311#ifdef SUPPORT_UCP -
312 jump_list *getucd; -
313#endif -
314} compiler_common; -
315 -
316/* For byte_sequence_compare. */ -
317 -
318typedef struct compare_context { -
319 int length; -
320 int sourcereg; -
321#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
322 int ucharptr; -
323 union { -
324 sljit_i asint; -
325 sljit_uh asushort; -
326#ifdef COMPILE_PCRE8 -
327 sljit_ub asbyte; -
328 sljit_ub asuchars[4]; -
329#else -
330#ifdef COMPILE_PCRE16 -
331 sljit_uh asuchars[2]; -
332#endif -
333#endif -
334 } c; -
335 union { -
336 sljit_i asint; -
337 sljit_uh asushort; -
338#ifdef COMPILE_PCRE8 -
339 sljit_ub asbyte; -
340 sljit_ub asuchars[4]; -
341#else -
342#ifdef COMPILE_PCRE16 -
343 sljit_uh asuchars[2]; -
344#endif -
345#endif -
346 } oc; -
347#endif -
348} compare_context; -
349 -
350enum { -
351 frame_end = 0, -
352 frame_setstrbegin = -1 -
353}; -
354 -
355/* Undefine sljit macros. */ -
356#undef CMP -
357 -
358/* Used for accessing the elements of the stack. */ -
359#define STACK(i) ((-(i) - 1) * (int)sizeof(sljit_w)) -
360 -
361#define TMP1 SLJIT_TEMPORARY_REG1 -
362#define TMP2 SLJIT_TEMPORARY_REG3 -
363#define TMP3 SLJIT_TEMPORARY_EREG2 -
364#define STR_PTR SLJIT_SAVED_REG1 -
365#define STR_END SLJIT_SAVED_REG2 -
366#define STACK_TOP SLJIT_TEMPORARY_REG2 -
367#define STACK_LIMIT SLJIT_SAVED_REG3 -
368#define ARGUMENTS SLJIT_SAVED_EREG1 -
369#define CALL_COUNT SLJIT_SAVED_EREG2 -
370#define RETURN_ADDR SLJIT_TEMPORARY_EREG1 -
371 -
372/* Locals layout. */ -
373/* These two locals can be used by the current opcode. */ -
374#define LOCALS0 (0 * sizeof(sljit_w)) -
375#define LOCALS1 (1 * sizeof(sljit_w)) -
376/* Two local variables for possessive quantifiers (char1 cannot use them). */ -
377#define POSSESSIVE0 (2 * sizeof(sljit_w)) -
378#define POSSESSIVE1 (3 * sizeof(sljit_w)) -
379/* Head of the last recursion. */ -
380#define RECURSIVE_HEAD (4 * sizeof(sljit_w)) -
381/* Max limit of recursions. */ -
382#define CALL_LIMIT (5 * sizeof(sljit_w)) -
383/* Last known position of the requested byte. */ -
384#define REQ_CHAR_PTR (6 * sizeof(sljit_w)) -
385/* End pointer of the first line. */ -
386#define FIRSTLINE_END (7 * sizeof(sljit_w)) -
387/* The output vector is stored on the stack, and contains pointers -
388to characters. The vector data is divided into two groups: the first -
389group contains the start / end character pointers, and the second is -
390the start pointers when the end of the capturing group has not yet reached. */ -
391#define OVECTOR_START (8 * sizeof(sljit_w)) -
392#define OVECTOR(i) (OVECTOR_START + (i) * sizeof(sljit_w)) -
393#define OVECTOR_PRIV(i) (common->cbraptr + (i) * sizeof(sljit_w)) -
394#define PRIV_DATA(cc) (common->localptrs[(cc) - common->start]) -
395 -
396#ifdef COMPILE_PCRE8 -
397#define MOV_UCHAR SLJIT_MOV_UB -
398#define MOVU_UCHAR SLJIT_MOVU_UB -
399#else -
400#ifdef COMPILE_PCRE16 -
401#define MOV_UCHAR SLJIT_MOV_UH -
402#define MOVU_UCHAR SLJIT_MOVU_UH -
403#else -
404#error Unsupported compiling mode -
405#endif -
406#endif -
407 -
408/* Shortcuts. */ -
409#define DEFINE_COMPILER \ -
410 struct sljit_compiler *compiler = common->compiler -
411#define OP1(op, dst, dstw, src, srcw) \ -
412 sljit_emit_op1(compiler, (op), (dst), (dstw), (src), (srcw)) -
413#define OP2(op, dst, dstw, src1, src1w, src2, src2w) \ -
414 sljit_emit_op2(compiler, (op), (dst), (dstw), (src1), (src1w), (src2), (src2w)) -
415#define LABEL() \ -
416 sljit_emit_label(compiler) -
417#define JUMP(type) \ -
418 sljit_emit_jump(compiler, (type)) -
419#define JUMPTO(type, label) \ -
420 sljit_set_label(sljit_emit_jump(compiler, (type)), (label)) -
421#define JUMPHERE(jump) \ -
422 sljit_set_label((jump), sljit_emit_label(compiler)) -
423#define CMP(type, src1, src1w, src2, src2w) \ -
424 sljit_emit_cmp(compiler, (type), (src1), (src1w), (src2), (src2w)) -
425#define CMPTO(type, src1, src1w, src2, src2w, label) \ -
426 sljit_set_label(sljit_emit_cmp(compiler, (type), (src1), (src1w), (src2), (src2w)), (label)) -
427#define COND_VALUE(op, dst, dstw, type) \ -
428 sljit_emit_cond_value(compiler, (op), (dst), (dstw), (type)) -
429 -
430static pcre_uchar* bracketend(pcre_uchar* cc) -
431{ -
432SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NOT) || (*cc >= OP_ONCE && *cc <= OP_SCOND));
executed: }
Execution Count:45
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
433do cc += GET(cc, 1); while (*cc == OP_ALT);
executed: cc += (cc[1]);
Execution Count:48
evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:45
3-48
434SLJIT_ASSERT(*cc >= OP_KET && *cc <= OP_KETRPOS);
executed: }
Execution Count:45
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
435cc += 1 + LINK_SIZE;
executed (the execution status of this line is deduced): cc += 1 + 1;
-
436return cc;
executed: return cc;
Execution Count:45
45
437} -
438 -
439/* Functions whose might need modification for all new supported opcodes: -
440 next_opcode -
441 get_localspace -
442 set_localptrs -
443 get_framesize -
444 init_frame -
445 get_localsize -
446 copy_locals -
447 compile_hotpath -
448 compile_fallbackpath -
449*/ -
450 -
451static pcre_uchar *next_opcode(compiler_common *common, pcre_uchar *cc) -
452{ -
453SLJIT_UNUSED_ARG(common);
executed (the execution status of this line is deduced): (void)common;
-
454switch(*cc) -
455 { -
456 case OP_SOD: -
457 case OP_SOM: -
458 case OP_SET_SOM: -
459 case OP_NOT_WORD_BOUNDARY: -
460 case OP_WORD_BOUNDARY: -
461 case OP_NOT_DIGIT: -
462 case OP_DIGIT: -
463 case OP_NOT_WHITESPACE: -
464 case OP_WHITESPACE: -
465 case OP_NOT_WORDCHAR: -
466 case OP_WORDCHAR: -
467 case OP_ANY: -
468 case OP_ALLANY: -
469 case OP_ANYNL: -
470 case OP_NOT_HSPACE: -
471 case OP_HSPACE: -
472 case OP_NOT_VSPACE: -
473 case OP_VSPACE: -
474 case OP_EXTUNI: -
475 case OP_EODN: -
476 case OP_EOD: -
477 case OP_CIRC: -
478 case OP_CIRCM: -
479 case OP_DOLL: -
480 case OP_DOLLM: -
481 case OP_TYPESTAR: -
482 case OP_TYPEMINSTAR: -
483 case OP_TYPEPLUS: -
484 case OP_TYPEMINPLUS: -
485 case OP_TYPEQUERY: -
486 case OP_TYPEMINQUERY: -
487 case OP_TYPEPOSSTAR: -
488 case OP_TYPEPOSPLUS: -
489 case OP_TYPEPOSQUERY: -
490 case OP_CRSTAR: -
491 case OP_CRMINSTAR: -
492 case OP_CRPLUS: -
493 case OP_CRMINPLUS: -
494 case OP_CRQUERY: -
495 case OP_CRMINQUERY: -
496 case OP_DEF: -
497 case OP_BRAZERO: -
498 case OP_BRAMINZERO: -
499 case OP_BRAPOSZERO: -
500 case OP_FAIL: -
501 case OP_ACCEPT: -
502 case OP_ASSERT_ACCEPT: -
503 case OP_SKIPZERO: -
504 return cc + 1;
executed: return cc + 1;
Execution Count:29
29
505 -
506 case OP_ANYBYTE: -
507#ifdef SUPPORT_UTF -
508 if (common->utf) return NULL;
never executed: return ((void *)0);
never evaluated: common->utf
0
509#endif -
510 return cc + 1;
never executed: return cc + 1;
0
511 -
512 case OP_CHAR: -
513 case OP_CHARI: -
514 case OP_NOT: -
515 case OP_NOTI: -
516 case OP_STAR: -
517 case OP_MINSTAR: -
518 case OP_PLUS: -
519 case OP_MINPLUS: -
520 case OP_QUERY: -
521 case OP_MINQUERY: -
522 case OP_POSSTAR: -
523 case OP_POSPLUS: -
524 case OP_POSQUERY: -
525 case OP_STARI: -
526 case OP_MINSTARI: -
527 case OP_PLUSI: -
528 case OP_MINPLUSI: -
529 case OP_QUERYI: -
530 case OP_MINQUERYI: -
531 case OP_POSSTARI: -
532 case OP_POSPLUSI: -
533 case OP_POSQUERYI: -
534 case OP_NOTSTAR: -
535 case OP_NOTMINSTAR: -
536 case OP_NOTPLUS: -
537 case OP_NOTMINPLUS: -
538 case OP_NOTQUERY: -
539 case OP_NOTMINQUERY: -
540 case OP_NOTPOSSTAR: -
541 case OP_NOTPOSPLUS: -
542 case OP_NOTPOSQUERY: -
543 case OP_NOTSTARI: -
544 case OP_NOTMINSTARI: -
545 case OP_NOTPLUSI: -
546 case OP_NOTMINPLUSI: -
547 case OP_NOTQUERYI: -
548 case OP_NOTMINQUERYI: -
549 case OP_NOTPOSSTARI: -
550 case OP_NOTPOSPLUSI: -
551 case OP_NOTPOSQUERYI: -
552 cc += 2;
executed (the execution status of this line is deduced): cc += 2;
-
553#ifdef SUPPORT_UTF -
554 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]);
never executed: cc += 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:18
no
Evaluation Count:0
partially evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:18
0-18
555#endif -
556 return cc;
executed: return cc;
Execution Count:18
18
557 -
558 case OP_UPTO: -
559 case OP_MINUPTO: -
560 case OP_EXACT: -
561 case OP_POSUPTO: -
562 case OP_UPTOI: -
563 case OP_MINUPTOI: -
564 case OP_EXACTI: -
565 case OP_POSUPTOI: -
566 case OP_NOTUPTO: -
567 case OP_NOTMINUPTO: -
568 case OP_NOTEXACT: -
569 case OP_NOTPOSUPTO: -
570 case OP_NOTUPTOI: -
571 case OP_NOTMINUPTOI: -
572 case OP_NOTEXACTI: -
573 case OP_NOTPOSUPTOI: -
574 cc += 2 + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 2 + 1;
-
575#ifdef SUPPORT_UTF -
576 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]);
never executed: cc += 1;
never evaluated: common->utf
never evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
0
577#endif -
578 return cc;
never executed: return cc;
0
579 -
580 case OP_NOTPROP: -
581 case OP_PROP: -
582 return cc + 1 + 2;
never executed: return cc + 1 + 2;
0
583 -
584 case OP_TYPEUPTO: -
585 case OP_TYPEMINUPTO: -
586 case OP_TYPEEXACT: -
587 case OP_TYPEPOSUPTO: -
588 case OP_REF: -
589 case OP_REFI: -
590 case OP_CREF: -
591 case OP_NCREF: -
592 case OP_RREF: -
593 case OP_NRREF: -
594 case OP_CLOSE: -
595 cc += 1 + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
596 return cc;
never executed: return cc;
0
597 -
598 case OP_CRRANGE: -
599 case OP_CRMINRANGE: -
600 return cc + 1 + 2 * IMM2_SIZE;
never executed: return cc + 1 + 2 * 1;
0
601 -
602 case OP_CLASS: -
603 case OP_NCLASS: -
604 return cc + 1 + 32 / sizeof(pcre_uchar);
never executed: return cc + 1 + 32 / sizeof(pcre_uchar);
0
605 -
606#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 -
607 case OP_XCLASS: -
608 return cc + GET(cc, 1);
executed: return cc + (cc[1]);
Execution Count:2
2
609#endif -
610 -
611 case OP_RECURSE: -
612 case OP_ASSERT: -
613 case OP_ASSERT_NOT: -
614 case OP_ASSERTBACK: -
615 case OP_ASSERTBACK_NOT: -
616 case OP_REVERSE: -
617 case OP_ONCE: -
618 case OP_ONCE_NC: -
619 case OP_BRA: -
620 case OP_BRAPOS: -
621 case OP_COND: -
622 case OP_SBRA: -
623 case OP_SBRAPOS: -
624 case OP_SCOND: -
625 case OP_ALT: -
626 case OP_KET: -
627 case OP_KETRMAX: -
628 case OP_KETRMIN: -
629 case OP_KETRPOS: -
630 return cc + 1 + LINK_SIZE;
executed: return cc + 1 + 1;
Execution Count:62
62
631 -
632 case OP_CBRA: -
633 case OP_CBRAPOS: -
634 case OP_SCBRA: -
635 case OP_SCBRAPOS: -
636 return cc + 1 + LINK_SIZE + IMM2_SIZE;
never executed: return cc + 1 + 1 + 1;
0
637 -
638 default: -
639 return NULL;
never executed: return ((void *)0);
0
640 } -
641}
never executed: }
0
642 -
643static int get_localspace(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend) -
644{ -
645int localspace = 0;
executed (the execution status of this line is deduced): int localspace = 0;
-
646pcre_uchar *alternative;
executed (the execution status of this line is deduced): pcre_uchar *alternative;
-
647/* Calculate important variables (like stack size) and checks whether all opcodes are supported. */ -
648while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:53
yes
Evaluation Count:15
15-53
649 { -
650 switch(*cc) -
651 { -
652 case OP_ASSERT: -
653 case OP_ASSERT_NOT: -
654 case OP_ASSERTBACK: -
655 case OP_ASSERTBACK_NOT: -
656 case OP_ONCE: -
657 case OP_ONCE_NC: -
658 case OP_BRAPOS: -
659 case OP_SBRA: -
660 case OP_SBRAPOS: -
661 case OP_SCOND: -
662 localspace += sizeof(sljit_w);
never executed (the execution status of this line is deduced): localspace += sizeof(sljit_w);
-
663 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
664 break;
never executed: break;
0
665 -
666 case OP_CBRAPOS: -
667 case OP_SCBRAPOS: -
668 localspace += sizeof(sljit_w);
never executed (the execution status of this line is deduced): localspace += sizeof(sljit_w);
-
669 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
670 break;
never executed: break;
0
671 -
672 case OP_COND: -
673 /* Might be a hidden SCOND. */ -
674 alternative = cc + GET(cc, 1);
never executed (the execution status of this line is deduced): alternative = cc + (cc[1]);
-
675 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
676 localspace += sizeof(sljit_w);
never executed: localspace += sizeof(sljit_w);
0
677 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
678 break;
never executed: break;
0
679 -
680 default: -
681 cc = next_opcode(common, cc);
executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
682 if (cc == NULL)
partially evaluated: cc == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
0-53
683 return -1;
never executed: return -1;
0
684 break;
executed: break;
Execution Count:53
53
685 } -
686 }
executed: }
Execution Count:53
53
687return localspace;
executed: return localspace;
Execution Count:15
15
688} -
689 -
690static void set_localptrs(compiler_common *common, int localptr, pcre_uchar *ccend) -
691{ -
692pcre_uchar *cc = common->start;
executed (the execution status of this line is deduced): pcre_uchar *cc = common->start;
-
693pcre_uchar *alternative;
executed (the execution status of this line is deduced): pcre_uchar *alternative;
-
694while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:53
yes
Evaluation Count:15
15-53
695 { -
696 switch(*cc) -
697 { -
698 case OP_ASSERT: -
699 case OP_ASSERT_NOT: -
700 case OP_ASSERTBACK: -
701 case OP_ASSERTBACK_NOT: -
702 case OP_ONCE: -
703 case OP_ONCE_NC: -
704 case OP_BRAPOS: -
705 case OP_SBRA: -
706 case OP_SBRAPOS: -
707 case OP_SCOND: -
708 common->localptrs[cc - common->start] = localptr;
never executed (the execution status of this line is deduced): common->localptrs[cc - common->start] = localptr;
-
709 localptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): localptr += sizeof(sljit_w);
-
710 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
711 break;
never executed: break;
0
712 -
713 case OP_CBRAPOS: -
714 case OP_SCBRAPOS: -
715 common->localptrs[cc - common->start] = localptr;
never executed (the execution status of this line is deduced): common->localptrs[cc - common->start] = localptr;
-
716 localptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): localptr += sizeof(sljit_w);
-
717 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
718 break;
never executed: break;
0
719 -
720 case OP_COND: -
721 /* Might be a hidden SCOND. */ -
722 alternative = cc + GET(cc, 1);
never executed (the execution status of this line is deduced): alternative = cc + (cc[1]);
-
723 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
724 { -
725 common->localptrs[cc - common->start] = localptr;
never executed (the execution status of this line is deduced): common->localptrs[cc - common->start] = localptr;
-
726 localptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): localptr += sizeof(sljit_w);
-
727 }
never executed: }
0
728 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
729 break;
never executed: break;
0
730 -
731 default: -
732 cc = next_opcode(common, cc);
executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
733 SLJIT_ASSERT(cc != NULL);
executed: }
Execution Count:53
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
0-53
734 break;
executed: break;
Execution Count:53
53
735 } -
736 }
executed: }
Execution Count:53
53
737}
executed: }
Execution Count:15
15
738 -
739/* Returns with -1 if no need for frame. */ -
740static int get_framesize(compiler_common *common, pcre_uchar *cc, BOOL recursive) -
741{ -
742pcre_uchar *ccend = bracketend(cc);
never executed (the execution status of this line is deduced): pcre_uchar *ccend = bracketend(cc);
-
743int length = 0;
never executed (the execution status of this line is deduced): int length = 0;
-
744BOOL possessive = FALSE;
never executed (the execution status of this line is deduced): BOOL possessive = 0;
-
745BOOL setsom_found = FALSE;
never executed (the execution status of this line is deduced): BOOL setsom_found = 0;
-
746 -
747if (!recursive && (*cc == OP_CBRAPOS || *cc == OP_SCBRAPOS))
never evaluated: !recursive
never evaluated: *cc == OP_CBRAPOS
never evaluated: *cc == OP_SCBRAPOS
0
748 { -
749 length = 3;
never executed (the execution status of this line is deduced): length = 3;
-
750 possessive = TRUE;
never executed (the execution status of this line is deduced): possessive = 1;
-
751 }
never executed: }
0
752 -
753cc = next_opcode(common, cc);
never executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
754SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
755while (cc < ccend)
never evaluated: cc < ccend
0
756 switch(*cc) -
757 { -
758 case OP_SET_SOM: -
759 case OP_RECURSE: -
760 if (!setsom_found)
never evaluated: !setsom_found
0
761 { -
762 length += 2;
never executed (the execution status of this line is deduced): length += 2;
-
763 setsom_found = TRUE;
never executed (the execution status of this line is deduced): setsom_found = 1;
-
764 }
never executed: }
0
765 cc += (*cc == OP_SET_SOM) ? 1 : 1 + LINK_SIZE;
never evaluated: (*cc == OP_SET_SOM)
0
766 break;
never executed: break;
0
767 -
768 case OP_CBRA: -
769 case OP_CBRAPOS: -
770 case OP_SCBRA: -
771 case OP_SCBRAPOS: -
772 length += 3;
never executed (the execution status of this line is deduced): length += 3;
-
773 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
774 break;
never executed: break;
0
775 -
776 default: -
777 cc = next_opcode(common, cc);
never executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
778 SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
779 break;
never executed: break;
0
780 }
never executed: }
0
781 -
782/* Possessive quantifiers can use a special case. */ -
783if (SLJIT_UNLIKELY(possessive) && length == 3)
never evaluated: __builtin_expect((possessive), 0)
never evaluated: length == 3
0
784 return -1;
never executed: return -1;
0
785 -
786if (length > 0)
never evaluated: length > 0
0
787 return length + 1;
never executed: return length + 1;
0
788return -1;
never executed: return -1;
0
789} -
790 -
791static void init_frame(compiler_common *common, pcre_uchar *cc, int stackpos, int stacktop, BOOL recursive) -
792{ -
793DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
794pcre_uchar *ccend = bracketend(cc);
never executed (the execution status of this line is deduced): pcre_uchar *ccend = bracketend(cc);
-
795BOOL setsom_found = FALSE;
never executed (the execution status of this line is deduced): BOOL setsom_found = 0;
-
796int offset;
never executed (the execution status of this line is deduced): int offset;
-
797 -
798/* >= 1 + shortest item size (2) */ -
799SLJIT_UNUSED_ARG(stacktop);
never executed (the execution status of this line is deduced): (void)stacktop;
-
800SLJIT_ASSERT(stackpos >= stacktop + 2);
never executed: }
never evaluated: 0
0
801 -
802stackpos = STACK(stackpos);
never executed (the execution status of this line is deduced): stackpos = ((-(stackpos) - 1) * (int)sizeof(sljit_w));
-
803if (recursive || (*cc != OP_CBRAPOS && *cc != OP_SCBRAPOS))
never evaluated: recursive
never evaluated: *cc != OP_CBRAPOS
never evaluated: *cc != OP_SCBRAPOS
0
804 cc = next_opcode(common, cc);
never executed: cc = next_opcode(common, cc);
0
805SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
806while (cc < ccend)
never evaluated: cc < ccend
0
807 switch(*cc) -
808 { -
809 case OP_SET_SOM: -
810 case OP_RECURSE: -
811 if (!setsom_found)
never evaluated: !setsom_found
0
812 { -
813 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
814 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, frame_setstrbegin);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (frame_setstrbegin));
-
815 stackpos += (int)sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackpos += (int)sizeof(sljit_w);
-
816 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (1), (0));
-
817 stackpos += (int)sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackpos += (int)sizeof(sljit_w);
-
818 setsom_found = TRUE;
never executed (the execution status of this line is deduced): setsom_found = 1;
-
819 }
never executed: }
0
820 cc += (*cc == OP_SET_SOM) ? 1 : 1 + LINK_SIZE;
never evaluated: (*cc == OP_SET_SOM)
0
821 break;
never executed: break;
0
822 -
823 case OP_CBRA: -
824 case OP_CBRAPOS: -
825 case OP_SCBRA: -
826 case OP_SCBRAPOS: -
827 offset = (GET2(cc, 1 + LINK_SIZE)) << 1;
never executed (the execution status of this line is deduced): offset = (cc[1 + 1]) << 1;
-
828 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
829 stackpos += (int)sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackpos += (int)sizeof(sljit_w);
-
830 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
831 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
-
832 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (1), (0));
-
833 stackpos += (int)sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackpos += (int)sizeof(sljit_w);
-
834 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (3), (0));
-
835 stackpos += (int)sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackpos += (int)sizeof(sljit_w);
-
836 -
837 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
838 break;
never executed: break;
0
839 -
840 default: -
841 cc = next_opcode(common, cc);
never executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
842 SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
843 break;
never executed: break;
0
844 }
never executed: }
0
845 -
846OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, frame_end);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (frame_end));
-
847SLJIT_ASSERT(stackpos == STACK(stacktop));
never executed: }
never evaluated: 0
0
848}
never executed: }
0
849 -
850static SLJIT_INLINE int get_localsize(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend) -
851{ -
852int localsize = 2;
never executed (the execution status of this line is deduced): int localsize = 2;
-
853pcre_uchar *alternative;
never executed (the execution status of this line is deduced): pcre_uchar *alternative;
-
854/* Calculate the sum of the local variables. */ -
855while (cc < ccend)
never evaluated: cc < ccend
0
856 { -
857 switch(*cc) -
858 { -
859 case OP_ASSERT: -
860 case OP_ASSERT_NOT: -
861 case OP_ASSERTBACK: -
862 case OP_ASSERTBACK_NOT: -
863 case OP_ONCE: -
864 case OP_ONCE_NC: -
865 case OP_BRAPOS: -
866 case OP_SBRA: -
867 case OP_SBRAPOS: -
868 case OP_SCOND: -
869 localsize++;
never executed (the execution status of this line is deduced): localsize++;
-
870 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
871 break;
never executed: break;
0
872 -
873 case OP_CBRA: -
874 case OP_SCBRA: -
875 localsize++;
never executed (the execution status of this line is deduced): localsize++;
-
876 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
877 break;
never executed: break;
0
878 -
879 case OP_CBRAPOS: -
880 case OP_SCBRAPOS: -
881 localsize += 2;
never executed (the execution status of this line is deduced): localsize += 2;
-
882 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
883 break;
never executed: break;
0
884 -
885 case OP_COND: -
886 /* Might be a hidden SCOND. */ -
887 alternative = cc + GET(cc, 1);
never executed (the execution status of this line is deduced): alternative = cc + (cc[1]);
-
888 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
889 localsize++;
never executed: localsize++;
0
890 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
891 break;
never executed: break;
0
892 -
893 default: -
894 cc = next_opcode(common, cc);
never executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
895 SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
896 break;
never executed: break;
0
897 } -
898 }
never executed: }
0
899SLJIT_ASSERT(cc == ccend);
never executed: }
never evaluated: 0
0
900return localsize;
never executed: return localsize;
0
901} -
902 -
903static void copy_locals(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, -
904 BOOL save, int stackptr, int stacktop) -
905{ -
906DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
907int srcw[2];
never executed (the execution status of this line is deduced): int srcw[2];
-
908int count;
never executed (the execution status of this line is deduced): int count;
-
909BOOL tmp1next = TRUE;
never executed (the execution status of this line is deduced): BOOL tmp1next = 1;
-
910BOOL tmp1empty = TRUE;
never executed (the execution status of this line is deduced): BOOL tmp1empty = 1;
-
911BOOL tmp2empty = TRUE;
never executed (the execution status of this line is deduced): BOOL tmp2empty = 1;
-
912pcre_uchar *alternative;
never executed (the execution status of this line is deduced): pcre_uchar *alternative;
-
913enum {
never executed (the execution status of this line is deduced): enum {
-
914 start,
never executed (the execution status of this line is deduced): start,
-
915 loop,
never executed (the execution status of this line is deduced): loop,
-
916 end
never executed (the execution status of this line is deduced): end
-
917} status;
never executed (the execution status of this line is deduced): } status;
-
918 -
919status = save ? start : loop;
never evaluated: save
0
920stackptr = STACK(stackptr - 2);
never executed (the execution status of this line is deduced): stackptr = ((-(stackptr - 2) - 1) * (int)sizeof(sljit_w));
-
921stacktop = STACK(stacktop - 1);
never executed (the execution status of this line is deduced): stacktop = ((-(stacktop - 1) - 1) * (int)sizeof(sljit_w));
-
922 -
923if (!save)
never evaluated: !save
0
924 { -
925 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
926 if (stackptr < stacktop)
never evaluated: stackptr < stacktop
0
927 { -
928 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), stackptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (stackptr));
-
929 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
930 tmp1empty = FALSE;
never executed (the execution status of this line is deduced): tmp1empty = 0;
-
931 }
never executed: }
0
932 if (stackptr < stacktop)
never evaluated: stackptr < stacktop
0
933 { -
934 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), stackptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (stackptr));
-
935 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
936 tmp2empty = FALSE;
never executed (the execution status of this line is deduced): tmp2empty = 0;
-
937 }
never executed: }
0
938 /* The tmp1next must be TRUE in either way. */ -
939 }
never executed: }
0
940 -
941while (status != end)
never evaluated: status != end
0
942 { -
943 count = 0;
never executed (the execution status of this line is deduced): count = 0;
-
944 switch(status) -
945 { -
946 case start: -
947 SLJIT_ASSERT(save);
never executed: }
never evaluated: 0
0
948 count = 1;
never executed (the execution status of this line is deduced): count = 1;
-
949 srcw[0] = RECURSIVE_HEAD;
never executed (the execution status of this line is deduced): srcw[0] = (4 * sizeof(sljit_w));
-
950 status = loop;
never executed (the execution status of this line is deduced): status = loop;
-
951 break;
never executed: break;
0
952 -
953 case loop: -
954 if (cc >= ccend)
never evaluated: cc >= ccend
0
955 { -
956 status = end;
never executed (the execution status of this line is deduced): status = end;
-
957 break;
never executed: break;
0
958 } -
959 -
960 switch(*cc) -
961 { -
962 case OP_ASSERT: -
963 case OP_ASSERT_NOT: -
964 case OP_ASSERTBACK: -
965 case OP_ASSERTBACK_NOT: -
966 case OP_ONCE: -
967 case OP_ONCE_NC: -
968 case OP_BRAPOS: -
969 case OP_SBRA: -
970 case OP_SBRAPOS: -
971 case OP_SCOND: -
972 count = 1;
never executed (the execution status of this line is deduced): count = 1;
-
973 srcw[0] = PRIV_DATA(cc);
never executed (the execution status of this line is deduced): srcw[0] = (common->localptrs[(cc) - common->start]);
-
974 SLJIT_ASSERT(srcw[0] != 0);
never executed: }
never evaluated: 0
0
975 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
976 break;
never executed: break;
0
977 -
978 case OP_CBRA: -
979 case OP_SCBRA: -
980 count = 1;
never executed (the execution status of this line is deduced): count = 1;
-
981 srcw[0] = OVECTOR_PRIV(GET2(cc, 1 + LINK_SIZE));
never executed (the execution status of this line is deduced): srcw[0] = (common->cbraptr + (cc[1 + 1]) * sizeof(sljit_w));
-
982 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
983 break;
never executed: break;
0
984 -
985 case OP_CBRAPOS: -
986 case OP_SCBRAPOS: -
987 count = 2;
never executed (the execution status of this line is deduced): count = 2;
-
988 srcw[1] = OVECTOR_PRIV(GET2(cc, 1 + LINK_SIZE));
never executed (the execution status of this line is deduced): srcw[1] = (common->cbraptr + (cc[1 + 1]) * sizeof(sljit_w));
-
989 srcw[0] = PRIV_DATA(cc);
never executed (the execution status of this line is deduced): srcw[0] = (common->localptrs[(cc) - common->start]);
-
990 SLJIT_ASSERT(srcw[0] != 0);
never executed: }
never evaluated: 0
0
991 cc += 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
992 break;
never executed: break;
0
993 -
994 case OP_COND: -
995 /* Might be a hidden SCOND. */ -
996 alternative = cc + GET(cc, 1);
never executed (the execution status of this line is deduced): alternative = cc + (cc[1]);
-
997 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
998 { -
999 count = 1;
never executed (the execution status of this line is deduced): count = 1;
-
1000 srcw[0] = PRIV_DATA(cc);
never executed (the execution status of this line is deduced): srcw[0] = (common->localptrs[(cc) - common->start]);
-
1001 SLJIT_ASSERT(srcw[0] != 0);
never executed: }
never evaluated: 0
0
1002 }
never executed: }
0
1003 cc += 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1;
-
1004 break;
never executed: break;
0
1005 -
1006 default: -
1007 cc = next_opcode(common, cc);
never executed (the execution status of this line is deduced): cc = next_opcode(common, cc);
-
1008 SLJIT_ASSERT(cc != NULL);
never executed: }
never evaluated: 0
0
1009 break;
never executed: break;
0
1010 } -
1011 break;
never executed: break;
0
1012 -
1013 case end: -
1014 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
1015 break;
never executed: break;
0
1016 } -
1017 -
1018 while (count > 0)
never evaluated: count > 0
0
1019 { -
1020 count--;
never executed (the execution status of this line is deduced): count--;
-
1021 if (save)
never evaluated: save
0
1022 { -
1023 if (tmp1next)
never evaluated: tmp1next
0
1024 { -
1025 if (!tmp1empty)
never evaluated: !tmp1empty
0
1026 { -
1027 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0));
-
1028 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1029 }
never executed: }
0
1030 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count]);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (srcw[count]));
-
1031 tmp1empty = FALSE;
never executed (the execution status of this line is deduced): tmp1empty = 0;
-
1032 tmp1next = FALSE;
never executed (the execution status of this line is deduced): tmp1next = 0;
-
1033 }
never executed: }
0
1034 else -
1035 { -
1036 if (!tmp2empty)
never evaluated: !tmp2empty
0
1037 { -
1038 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0));
-
1039 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1040 }
never executed: }
0
1041 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count]);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (srcw[count]));
-
1042 tmp2empty = FALSE;
never executed (the execution status of this line is deduced): tmp2empty = 0;
-
1043 tmp1next = TRUE;
never executed (the execution status of this line is deduced): tmp1next = 1;
-
1044 }
never executed: }
0
1045 } -
1046 else -
1047 { -
1048 if (tmp1next)
never evaluated: tmp1next
0
1049 { -
1050 SLJIT_ASSERT(!tmp1empty);
never executed: }
never evaluated: 0
0
1051 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count], TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (srcw[count]), (1), (0));
-
1052 tmp1empty = stackptr >= stacktop;
never executed (the execution status of this line is deduced): tmp1empty = stackptr >= stacktop;
-
1053 if (!tmp1empty)
never evaluated: !tmp1empty
0
1054 { -
1055 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), stackptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (stackptr));
-
1056 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1057 }
never executed: }
0
1058 tmp1next = FALSE;
never executed (the execution status of this line is deduced): tmp1next = 0;
-
1059 }
never executed: }
0
1060 else -
1061 { -
1062 SLJIT_ASSERT(!tmp2empty);
never executed: }
never evaluated: 0
0
1063 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), srcw[count], TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (srcw[count]), (3), (0));
-
1064 tmp2empty = stackptr >= stacktop;
never executed (the execution status of this line is deduced): tmp2empty = stackptr >= stacktop;
-
1065 if (!tmp2empty)
never evaluated: !tmp2empty
0
1066 { -
1067 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), stackptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (stackptr));
-
1068 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1069 }
never executed: }
0
1070 tmp1next = TRUE;
never executed (the execution status of this line is deduced): tmp1next = 1;
-
1071 }
never executed: }
0
1072 } -
1073 } -
1074 }
never executed: }
0
1075 -
1076if (save)
never evaluated: save
0
1077 { -
1078 if (tmp1next)
never evaluated: tmp1next
0
1079 { -
1080 if (!tmp1empty)
never evaluated: !tmp1empty
0
1081 { -
1082 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0));
-
1083 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1084 }
never executed: }
0
1085 if (!tmp2empty)
never evaluated: !tmp2empty
0
1086 { -
1087 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0));
-
1088 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1089 }
never executed: }
0
1090 }
never executed: }
0
1091 else -
1092 { -
1093 if (!tmp2empty)
never evaluated: !tmp2empty
0
1094 { -
1095 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0));
-
1096 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1097 }
never executed: }
0
1098 if (!tmp1empty)
never evaluated: !tmp1empty
0
1099 { -
1100 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0));
-
1101 stackptr += sizeof(sljit_w);
never executed (the execution status of this line is deduced): stackptr += sizeof(sljit_w);
-
1102 }
never executed: }
0
1103 }
never executed: }
0
1104 } -
1105SLJIT_ASSERT(cc == ccend && stackptr == stacktop && (save || (tmp1empty && tmp2empty)));
never executed: }
never evaluated: 0
0
1106}
never executed: }
0
1107 -
1108static SLJIT_INLINE BOOL ispowerof2(unsigned int value) -
1109{ -
1110return (value & (value - 1)) == 0;
never executed: return (value & (value - 1)) == 0;
0
1111} -
1112 -
1113static SLJIT_INLINE void set_jumps(jump_list *list, struct sljit_label *label) -
1114{ -
1115while (list)
evaluated: list
TRUEFALSE
yes
Evaluation Count:65
yes
Evaluation Count:57
57-65
1116 { -
1117 /* sljit_set_label is clever enough to do nothing -
1118 if either the jump or the label is NULL */ -
1119 sljit_set_label(list->jump, label);
executed (the execution status of this line is deduced): sljit_set_label(list->jump, label);
-
1120 list = list->next;
executed (the execution status of this line is deduced): list = list->next;
-
1121 }
executed: }
Execution Count:65
65
1122}
executed: }
Execution Count:57
57
1123 -
1124static SLJIT_INLINE void add_jump(struct sljit_compiler *compiler, jump_list **list, struct sljit_jump* jump) -
1125{ -
1126jump_list *list_item = sljit_alloc_memory(compiler, sizeof(jump_list));
executed (the execution status of this line is deduced): jump_list *list_item = sljit_alloc_memory(compiler, sizeof(jump_list));
-
1127if (list_item)
partially evaluated: list_item
TRUEFALSE
yes
Evaluation Count:65
no
Evaluation Count:0
0-65
1128 { -
1129 list_item->next = *list;
executed (the execution status of this line is deduced): list_item->next = *list;
-
1130 list_item->jump = jump;
executed (the execution status of this line is deduced): list_item->jump = jump;
-
1131 *list = list_item;
executed (the execution status of this line is deduced): *list = list_item;
-
1132 }
executed: }
Execution Count:65
65
1133}
executed: }
Execution Count:65
65
1134 -
1135static void add_stub(compiler_common *common, enum stub_types type, int data, struct sljit_jump *start) -
1136{ -
1137DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1138stub_list* list_item = sljit_alloc_memory(compiler, sizeof(stub_list));
executed (the execution status of this line is deduced): stub_list* list_item = sljit_alloc_memory(compiler, sizeof(stub_list));
-
1139 -
1140if (list_item)
partially evaluated: list_item
TRUEFALSE
yes
Evaluation Count:11
no
Evaluation Count:0
0-11
1141 { -
1142 list_item->type = type;
executed (the execution status of this line is deduced): list_item->type = type;
-
1143 list_item->data = data;
executed (the execution status of this line is deduced): list_item->data = data;
-
1144 list_item->start = start;
executed (the execution status of this line is deduced): list_item->start = start;
-
1145 list_item->leave = LABEL();
executed (the execution status of this line is deduced): list_item->leave = sljit_emit_label(compiler);
-
1146 list_item->next = common->stubs;
executed (the execution status of this line is deduced): list_item->next = common->stubs;
-
1147 common->stubs = list_item;
executed (the execution status of this line is deduced): common->stubs = list_item;
-
1148 }
executed: }
Execution Count:11
11
1149}
executed: }
Execution Count:11
11
1150 -
1151static void flush_stubs(compiler_common *common) -
1152{ -
1153DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1154stub_list* list_item = common->stubs;
executed (the execution status of this line is deduced): stub_list* list_item = common->stubs;
-
1155 -
1156while (list_item)
evaluated: list_item
TRUEFALSE
yes
Evaluation Count:11
yes
Evaluation Count:15
11-15
1157 { -
1158 JUMPHERE(list_item->start);
executed (the execution status of this line is deduced): sljit_set_label((list_item->start), sljit_emit_label(compiler));
-
1159 switch(list_item->type) -
1160 { -
1161 case stack_alloc: -
1162 add_jump(compiler, &common->stackalloc, JUMP(SLJIT_FAST_CALL));
executed (the execution status of this line is deduced): add_jump(compiler, &common->stackalloc, sljit_emit_jump(compiler, (23)));
-
1163 break;
executed: break;
Execution Count:11
11
1164 } -
1165 JUMPTO(SLJIT_JUMP, list_item->leave);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (list_item->leave));
-
1166 list_item = list_item->next;
executed (the execution status of this line is deduced): list_item = list_item->next;
-
1167 }
executed: }
Execution Count:11
11
1168common->stubs = NULL;
executed (the execution status of this line is deduced): common->stubs = ((void *)0);
-
1169}
executed: }
Execution Count:15
15
1170 -
1171static SLJIT_INLINE void decrease_call_count(compiler_common *common) -
1172{ -
1173DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1174 -
1175OP2(SLJIT_SUB | SLJIT_SET_E, CALL_COUNT, 0, CALL_COUNT, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (10), (0), (10), (0), (0x200), (1));
-
1176add_jump(compiler, &common->calllimit, JUMP(SLJIT_C_ZERO));
executed (the execution status of this line is deduced): add_jump(compiler, &common->calllimit, sljit_emit_jump(compiler, (0)));
-
1177}
executed: }
Execution Count:8
8
1178 -
1179static SLJIT_INLINE void allocate_stack(compiler_common *common, int size) -
1180{ -
1181/* May destroy all locals and registers except TMP2. */ -
1182DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1183 -
1184OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_w));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (size * sizeof(sljit_w)));
-
1185#ifdef DESTROY_REGISTERS -
1186OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 12345); -
1187OP1(SLJIT_MOV, TMP3, 0, TMP1, 0); -
1188OP1(SLJIT_MOV, RETURN_ADDR, 0, TMP1, 0); -
1189OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, TMP1, 0); -
1190OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP1, 0); -
1191#endif -
1192add_stub(common, stack_alloc, 0, CMP(SLJIT_C_GREATER, STACK_TOP, 0, STACK_LIMIT, 0));
executed (the execution status of this line is deduced): add_stub(common, stack_alloc, 0, sljit_emit_cmp(compiler, (4), (2), (0), (8), (0)));
-
1193}
executed: }
Execution Count:11
11
1194 -
1195static SLJIT_INLINE void free_stack(compiler_common *common, int size) -
1196{ -
1197DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1198OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_w));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (size * sizeof(sljit_w)));
-
1199}
executed: }
Execution Count:10
10
1200 -
1201static SLJIT_INLINE void reset_ovector(compiler_common *common, int length) -
1202{ -
1203DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1204struct sljit_label *loop;
executed (the execution status of this line is deduced): struct sljit_label *loop;
-
1205int i;
executed (the execution status of this line is deduced): int i;
-
1206/* At this point we can freely use all temporary registers. */ -
1207/* TMP1 returns with begin - 1. */ -
1208OP2(SLJIT_SUB, SLJIT_TEMPORARY_REG1, 0, SLJIT_MEM1(SLJIT_SAVED_REG1), SLJIT_OFFSETOF(jit_arguments, begin), SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), ((0x100 | (6))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)), (0x200), (((1) << 1)));
-
1209if (length < 8)
partially evaluated: length < 8
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1210 { -
1211 for (i = 0; i < length; i++)
evaluated: i < length
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:15
15-30
1212 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(i), SLJIT_TEMPORARY_REG1, 0);
executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (i) * sizeof(sljit_w))), (1), (0));
Execution Count:30
30
1213 }
executed: }
Execution Count:15
15
1214else -
1215 { -
1216 OP2(SLJIT_ADD, SLJIT_TEMPORARY_REG2, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, OVECTOR_START - sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w)) - sizeof(sljit_w)));
-
1217 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG3, 0, SLJIT_IMM, length);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (length));
-
1218 loop = LABEL();
never executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
1219 OP1(SLJIT_MOVU, SLJIT_MEM1(SLJIT_TEMPORARY_REG2), sizeof(sljit_w), SLJIT_TEMPORARY_REG1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (13), ((0x100 | (2))), (sizeof(sljit_w)), (1), (0));
-
1220 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_TEMPORARY_REG3, 0, SLJIT_TEMPORARY_REG3, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (1));
-
1221 JUMPTO(SLJIT_C_NOT_ZERO, loop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (1)), (loop));
-
1222 }
never executed: }
0
1223} -
1224 -
1225static SLJIT_INLINE void copy_ovector(compiler_common *common, int topbracket) -
1226{ -
1227DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1228struct sljit_label *loop;
executed (the execution status of this line is deduced): struct sljit_label *loop;
-
1229struct sljit_jump *earlyexit;
executed (the execution status of this line is deduced): struct sljit_jump *earlyexit;
-
1230 -
1231/* At this point we can freely use all registers. */ -
1232OP1(SLJIT_MOV, SLJIT_SAVED_REG3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))));
-
1233OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))), (6), (0));
-
1234 -
1235OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
1236OP1(SLJIT_MOV_SI, SLJIT_TEMPORARY_REG2, 0, SLJIT_MEM1(SLJIT_TEMPORARY_REG1), SLJIT_OFFSETOF(jit_arguments, offsetcount));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (12), (2), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->offsetcount) - 0x10)));
-
1237OP2(SLJIT_SUB, SLJIT_TEMPORARY_REG3, 0, SLJIT_MEM1(SLJIT_TEMPORARY_REG1), SLJIT_OFFSETOF(jit_arguments, offsets), SLJIT_IMM, sizeof(int));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->offsets) - 0x10)), (0x200), (sizeof(int)));
-
1238OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG1, 0, SLJIT_MEM1(SLJIT_TEMPORARY_REG1), SLJIT_OFFSETOF(jit_arguments, begin));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
1239OP2(SLJIT_ADD, SLJIT_SAVED_REG1, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, OVECTOR_START);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w))));
-
1240/* Unlikely, but possible */ -
1241earlyexit = CMP(SLJIT_C_EQUAL, SLJIT_TEMPORARY_REG2, 0, SLJIT_IMM, 0);
executed (the execution status of this line is deduced): earlyexit = sljit_emit_cmp(compiler, (0), (2), (0), (0x200), (0));
-
1242loop = LABEL();
executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
1243OP2(SLJIT_SUB, SLJIT_SAVED_REG2, 0, SLJIT_MEM1(SLJIT_SAVED_REG1), 0, SLJIT_TEMPORARY_REG1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (7), (0), ((0x100 | (6))), (0), (1), (0));
-
1244OP2(SLJIT_ADD, SLJIT_SAVED_REG1, 0, SLJIT_SAVED_REG1, 0, SLJIT_IMM, sizeof(sljit_w));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (sizeof(sljit_w)));
-
1245/* Copy the integer value to the output buffer */ -
1246#ifdef COMPILE_PCRE16 -
1247OP2(SLJIT_ASHR, SLJIT_SAVED_REG2, 0, SLJIT_SAVED_REG2, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (33), (7), (0), (7), (0), (0x200), (1));
-
1248#endif -
1249OP1(SLJIT_MOVU_SI, SLJIT_MEM1(SLJIT_TEMPORARY_REG3), sizeof(int), SLJIT_SAVED_REG2, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (19), ((0x100 | (3))), (sizeof(int)), (7), (0));
-
1250OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_TEMPORARY_REG2, 0, SLJIT_TEMPORARY_REG2, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (2), (0), (2), (0), (0x200), (1));
-
1251JUMPTO(SLJIT_C_NOT_ZERO, loop);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (1)), (loop));
-
1252JUMPHERE(earlyexit);
executed (the execution status of this line is deduced): sljit_set_label((earlyexit), sljit_emit_label(compiler));
-
1253 -
1254/* Calculate the return value, which is the maximum ovector value. */ -
1255if (topbracket > 1)
partially evaluated: topbracket > 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1256 { -
1257 OP2(SLJIT_ADD, SLJIT_TEMPORARY_REG1, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, OVECTOR_START + topbracket * 2 * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w)) + topbracket * 2 * sizeof(sljit_w)));
-
1258 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG2, 0, SLJIT_IMM, topbracket + 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), (0x200), (topbracket + 1));
-
1259 -
1260 /* OVECTOR(0) is never equal to SLJIT_SAVED_REG3. */ -
1261 loop = LABEL();
never executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
1262 OP1(SLJIT_MOVU, SLJIT_TEMPORARY_REG3, 0, SLJIT_MEM1(SLJIT_TEMPORARY_REG1), -(2 * (sljit_w)sizeof(sljit_w)));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (13), (3), (0), ((0x100 | (1))), (-(2 * (sljit_w)sizeof(sljit_w))));
-
1263 OP2(SLJIT_SUB, SLJIT_TEMPORARY_REG2, 0, SLJIT_TEMPORARY_REG2, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (1));
-
1264 CMPTO(SLJIT_C_EQUAL, SLJIT_TEMPORARY_REG3, 0, SLJIT_SAVED_REG3, 0, loop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (8), (0)), (loop));
-
1265 OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_TEMPORARY_REG2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (2), (0));
-
1266 }
never executed: }
0
1267else -
1268 OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1);
executed: sljit_emit_op1(compiler, (6), (1), (0), (0x200), (1));
Execution Count:15
15
1269} -
1270 -
1271static SLJIT_INLINE BOOL char_has_othercase(compiler_common *common, pcre_uchar* cc) -
1272{ -
1273/* Detects if the character has an othercase. */ -
1274unsigned int c;
never executed (the execution status of this line is deduced): unsigned int c;
-
1275 -
1276#ifdef SUPPORT_UTF -
1277if (common->utf)
never evaluated: common->utf
0
1278 { -
1279 GETCHAR(c, cc);
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
1280 if (c > 127)
never evaluated: c > 127
0
1281 { -
1282#ifdef SUPPORT_UCP -
1283 return c != UCD_OTHERCASE(c);
never executed: return c != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
1284#else -
1285 return FALSE; -
1286#endif -
1287 } -
1288#ifndef COMPILE_PCRE8 -
1289 return common->fcc[c] != c;
never executed: return common->fcc[c] != c;
0
1290#endif -
1291 } -
1292else -
1293#endif -
1294 c = *cc;
never executed: c = *cc;
0
1295return MAX_255(c) ? common->fcc[c] != c : FALSE;
never executed: return ((c) <= 255u) ? common->fcc[c] != c : 0;
0
1296} -
1297 -
1298static SLJIT_INLINE unsigned int char_othercase(compiler_common *common, unsigned int c) -
1299{ -
1300/* Returns with the othercase. */ -
1301#ifdef SUPPORT_UTF -
1302if (common->utf && c > 127)
never evaluated: common->utf
never evaluated: c > 127
0
1303 { -
1304#ifdef SUPPORT_UCP -
1305 return UCD_OTHERCASE(c);
never executed: return (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
1306#else -
1307 return c; -
1308#endif -
1309 } -
1310#endif -
1311return TABLE_GET(c, common->fcc, c);
never executed: return (((c) <= 255u)? ((common->fcc)[c]):(c));
0
1312} -
1313 -
1314static unsigned int char_get_othercase_bit(compiler_common *common, pcre_uchar* cc) -
1315{ -
1316/* Detects if the character and its othercase has only 1 bit difference. */ -
1317unsigned int c, oc, bit;
never executed (the execution status of this line is deduced): unsigned int c, oc, bit;
-
1318#if defined SUPPORT_UTF && defined COMPILE_PCRE8 -
1319int n; -
1320#endif -
1321 -
1322#ifdef SUPPORT_UTF -
1323if (common->utf)
never evaluated: common->utf
0
1324 { -
1325 GETCHAR(c, cc);
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
1326 if (c <= 127)
never evaluated: c <= 127
0
1327 oc = common->fcc[c];
never executed: oc = common->fcc[c];
0
1328 else -
1329 { -
1330#ifdef SUPPORT_UCP -
1331 oc = UCD_OTHERCASE(c);
never executed (the execution status of this line is deduced): oc = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
-
1332#else -
1333 oc = c; -
1334#endif -
1335 }
never executed: }
0
1336 } -
1337else -
1338 { -
1339 c = *cc;
never executed (the execution status of this line is deduced): c = *cc;
-
1340 oc = TABLE_GET(c, common->fcc, c);
never evaluated: ((c) <= 255u)
0
1341 }
never executed: }
0
1342#else -
1343c = *cc; -
1344oc = TABLE_GET(c, common->fcc, c); -
1345#endif -
1346 -
1347SLJIT_ASSERT(c != oc);
never executed: }
never evaluated: 0
0
1348 -
1349bit = c ^ oc;
never executed (the execution status of this line is deduced): bit = c ^ oc;
-
1350/* Optimized for English alphabet. */ -
1351if (c <= 127 && bit == 0x20)
never evaluated: c <= 127
never evaluated: bit == 0x20
0
1352 return (0 << 8) | 0x20;
never executed: return (0 << 8) | 0x20;
0
1353 -
1354/* Since c != oc, they must have at least 1 bit difference. */ -
1355if (!ispowerof2(bit))
never evaluated: !ispowerof2(bit)
0
1356 return 0;
never executed: return 0;
0
1357 -
1358#ifdef COMPILE_PCRE8 -
1359 -
1360#ifdef SUPPORT_UTF -
1361if (common->utf && c > 127) -
1362 { -
1363 n = GET_EXTRALEN(*cc); -
1364 while ((bit & 0x3f) == 0) -
1365 { -
1366 n--; -
1367 bit >>= 6; -
1368 } -
1369 return (n << 8) | bit; -
1370 } -
1371#endif /* SUPPORT_UTF */ -
1372return (0 << 8) | bit; -
1373 -
1374#else /* COMPILE_PCRE8 */ -
1375 -
1376#ifdef COMPILE_PCRE16 -
1377#ifdef SUPPORT_UTF -
1378if (common->utf && c > 65535)
never evaluated: common->utf
never evaluated: c > 65535
0
1379 { -
1380 if (bit >= (1 << 10))
never evaluated: bit >= (1 << 10)
0
1381 bit >>= 10;
never executed: bit >>= 10;
0
1382 else -
1383 return (bit < 256) ? ((2 << 8) | bit) : ((3 << 8) | (bit >> 8));
never executed: return (bit < 256) ? ((2 << 8) | bit) : ((3 << 8) | (bit >> 8));
0
1384 } -
1385#endif /* SUPPORT_UTF */ -
1386return (bit < 256) ? ((0 << 8) | bit) : ((1 << 8) | (bit >> 8));
never executed: return (bit < 256) ? ((0 << 8) | bit) : ((1 << 8) | (bit >> 8));
0
1387#endif /* COMPILE_PCRE16 */ -
1388 -
1389#endif /* COMPILE_PCRE8 */ -
1390} -
1391 -
1392static SLJIT_INLINE void check_input_end(compiler_common *common, jump_list **fallbacks) -
1393{ -
1394DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1395add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)));
-
1396}
executed: }
Execution Count:6
6
1397 -
1398static void read_char(compiler_common *common) -
1399{ -
1400/* Reads the character into TMP1, updates STR_PTR. -
1401Does not check STR_END. TMP2 Destroyed. */ -
1402DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1403#ifdef SUPPORT_UTF -
1404struct sljit_jump *jump;
executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
1405#endif -
1406 -
1407OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
1408#ifdef SUPPORT_UTF -
1409if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:10
no
Evaluation Count:0
0-10
1410 { -
1411#ifdef COMPILE_PCRE8 -
1412 jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0); -
1413#else -
1414#ifdef COMPILE_PCRE16 -
1415 jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800));
-
1416#endif -
1417#endif /* COMPILE_PCRE8 */ -
1418 add_jump(compiler, &common->utfreadchar, JUMP(SLJIT_FAST_CALL));
executed (the execution status of this line is deduced): add_jump(compiler, &common->utfreadchar, sljit_emit_jump(compiler, (23)));
-
1419 JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
1420 }
executed: }
Execution Count:10
10
1421#endif -
1422OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1423}
executed: }
Execution Count:10
10
1424 -
1425static void peek_char(compiler_common *common) -
1426{ -
1427/* Reads the character into TMP1, keeps STR_PTR. -
1428Does not check STR_END. TMP2 Destroyed. */ -
1429DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1430#ifdef SUPPORT_UTF -
1431struct sljit_jump *jump;
executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
1432#endif -
1433 -
1434OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
1435#ifdef SUPPORT_UTF -
1436if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1437 { -
1438#ifdef COMPILE_PCRE8 -
1439 jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0); -
1440#else -
1441#ifdef COMPILE_PCRE16 -
1442 jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800));
-
1443#endif -
1444#endif /* COMPILE_PCRE8 */ -
1445 add_jump(compiler, &common->utfreadchar, JUMP(SLJIT_FAST_CALL));
executed (the execution status of this line is deduced): add_jump(compiler, &common->utfreadchar, sljit_emit_jump(compiler, (23)));
-
1446 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0));
-
1447 JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
1448 }
executed: }
Execution Count:1
1
1449#endif -
1450}
executed: }
Execution Count:1
1
1451 -
1452static void read_char8_type(compiler_common *common) -
1453{ -
1454/* Reads the character type into TMP1, updates STR_PTR. Does not check STR_END. */ -
1455DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1456#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
1457struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
1458#endif -
1459 -
1460#ifdef SUPPORT_UTF -
1461if (common->utf)
never evaluated: common->utf
0
1462 { -
1463 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (0));
-
1464 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1465#ifdef COMPILE_PCRE8 -
1466 /* This can be an extra read in some situations, but hopefully -
1467 it is needed in most cases. */ -
1468 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes); -
1469 jump = CMP(SLJIT_C_LESS, TMP2, 0, SLJIT_IMM, 0xc0); -
1470 add_jump(compiler, &common->utfreadtype8, JUMP(SLJIT_FAST_CALL)); -
1471 JUMPHERE(jump); -
1472#else -
1473#ifdef COMPILE_PCRE16 -
1474 OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), (0));
-
1475 jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (3), (0), (0x200), (255));
-
1476 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (3))), (common->ctypes));
-
1477 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
1478 /* Skip low surrogate if necessary. */ -
1479 OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0xfc00);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (0xfc00));
-
1480 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, 0xd800);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (3), (0), (0x200), (0xd800));
-
1481 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
1482 OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (1));
-
1483 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (3), (0));
-
1484#endif -
1485#endif /* COMPILE_PCRE8 */ -
1486 return;
never executed: return;
0
1487 } -
1488#endif -
1489OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (0));
-
1490OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1491#ifdef COMPILE_PCRE16 -
1492/* The ctypes array contains only 256 values. */ -
1493OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), (0));
-
1494jump = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (3), (0), (0x200), (255));
-
1495#endif -
1496OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (3))), (common->ctypes));
-
1497#ifdef COMPILE_PCRE16 -
1498JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
1499#endif -
1500}
never executed: }
0
1501 -
1502static void skip_char_back(compiler_common *common) -
1503{ -
1504/* Goes one character back. Affects STR_PTR and TMP1. Does not check begin. */ -
1505DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1506#if defined SUPPORT_UTF && defined COMPILE_PCRE8 -
1507struct sljit_label *label; -
1508 -
1509if (common->utf) -
1510 { -
1511 label = LABEL(); -
1512 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), -IN_UCHARS(1)); -
1513 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -
1514 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xc0); -
1515 CMPTO(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0x80, label); -
1516 return; -
1517 } -
1518#endif -
1519#if defined SUPPORT_UTF && defined COMPILE_PCRE16 -
1520if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1521 { -
1522 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), -IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (-((1) << 1)));
-
1523 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1524 /* Skip low surrogate if necessary. */ -
1525 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00));
-
1526 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xdc00);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xdc00));
-
1527 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
1528 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
1529 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (1), (0));
-
1530 return;
executed: return;
Execution Count:12
12
1531 } -
1532#endif -
1533OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1534}
never executed: }
0
1535 -
1536static void check_newlinechar(compiler_common *common, int nltype, jump_list **fallbacks, BOOL jumpiftrue) -
1537{ -
1538/* Character comes in TMP1. Checks if it is a newline. TMP2 may be destroyed. */ -
1539DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1540 -
1541if (nltype == NLTYPE_ANY)
partially evaluated: nltype == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1542 { -
1543 add_jump(compiler, &common->anynewline, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->anynewline, sljit_emit_jump(compiler, (23)));
-
1544 add_jump(compiler, fallbacks, JUMP(jumpiftrue ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (jumpiftrue ? 1 : 0)));
-
1545 }
never executed: }
0
1546else if (nltype == NLTYPE_ANYCRLF)
evaluated: nltype == 2
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
1547 { -
1548 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, CHAR_CR);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\015'));
-
1549 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
1550 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, CHAR_NL);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\012'));
-
1551 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
1552 add_jump(compiler, fallbacks, JUMP(jumpiftrue ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (jumpiftrue ? 1 : 0)));
-
1553 }
executed: }
Execution Count:2
2
1554else -
1555 { -
1556 SLJIT_ASSERT(nltype == NLTYPE_FIXED && common->newline < 256);
executed: }
Execution Count:4
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
1557 add_jump(compiler, fallbacks, CMP(jumpiftrue ? SLJIT_C_EQUAL : SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (jumpiftrue ? 0 : 1), (1), (0), (0x200), (common->newline)));
-
1558 }
executed: }
Execution Count:4
4
1559} -
1560 -
1561#ifdef SUPPORT_UTF -
1562 -
1563#ifdef COMPILE_PCRE8 -
1564static void do_utfreadchar(compiler_common *common) -
1565{ -
1566/* Fast decoding a UTF-8 character. TMP1 contains the first byte -
1567of the character (>= 0xc0). Return char value in TMP1, length - 1 in TMP2. */ -
1568DEFINE_COMPILER; -
1569struct sljit_jump *jump; -
1570 -
1571sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize); -
1572/* Searching for the first zero. */ -
1573OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x20); -
1574jump = JUMP(SLJIT_C_NOT_ZERO); -
1575/* Two byte sequence. */ -
1576OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); -
1577OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -
1578OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x1f); -
1579OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 6); -
1580OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1581OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1582OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); -
1583sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1584JUMPHERE(jump); -
1585 -
1586OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x10); -
1587jump = JUMP(SLJIT_C_NOT_ZERO); -
1588/* Three byte sequence. */ -
1589OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); -
1590OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x0f); -
1591OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 12); -
1592OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1593OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6); -
1594OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1595OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(2)); -
1596OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2)); -
1597OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1598OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1599OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(2)); -
1600sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1601JUMPHERE(jump); -
1602 -
1603/* Four byte sequence. */ -
1604OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); -
1605OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x07); -
1606OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 18); -
1607OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1608OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 12); -
1609OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1610OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(2)); -
1611OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1612OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6); -
1613OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1614OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(3)); -
1615OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(3)); -
1616OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3f); -
1617OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0); -
1618OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(3)); -
1619sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1620} -
1621 -
1622static void do_utfreadtype8(compiler_common *common) -
1623{ -
1624/* Fast decoding a UTF-8 character type. TMP2 contains the first byte -
1625of the character (>= 0xc0). Return value in TMP1. */ -
1626DEFINE_COMPILER; -
1627struct sljit_jump *jump; -
1628struct sljit_jump *compare; -
1629 -
1630sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize); -
1631 -
1632OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_IMM, 0x20); -
1633jump = JUMP(SLJIT_C_NOT_ZERO); -
1634/* Two byte sequence. */ -
1635OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0)); -
1636OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -
1637OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x1f); -
1638OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 6); -
1639OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3f); -
1640OP2(SLJIT_OR, TMP2, 0, TMP2, 0, TMP1, 0); -
1641compare = CMP(SLJIT_C_GREATER, TMP2, 0, SLJIT_IMM, 255); -
1642OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), common->ctypes); -
1643sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1644 -
1645JUMPHERE(compare); -
1646OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0); -
1647sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1648JUMPHERE(jump); -
1649 -
1650/* We only have types for characters less than 256. */ -
1651OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP2), (sljit_w)PRIV(utf8_table4) - 0xc0); -
1652OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
1653OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 0); -
1654sljit_emit_fast_return(compiler, RETURN_ADDR, 0); -
1655} -
1656 -
1657#else /* COMPILE_PCRE8 */ -
1658 -
1659#ifdef COMPILE_PCRE16 -
1660static void do_utfreadchar(compiler_common *common) -
1661{ -
1662/* Fast decoding a UTF-16 character. TMP1 contains the first 16 bit char -
1663of the character (>= 0xd800). Return char value in TMP1, length - 1 in TMP2. */ -
1664DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1665struct sljit_jump *jump;
executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
1666 -
1667sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
1668jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xdc00);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xdc00));
-
1669/* Do nothing, only return. */ -
1670sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
1671 -
1672JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
1673/* Combine two 16 bit characters. */ -
1674OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1)));
-
1675OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1676OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x3ff);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0x3ff));
-
1677OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 10);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (10));
-
1678OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0x3ff);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (0x3ff));
-
1679OP2(SLJIT_OR, TMP1, 0, TMP1, 0, TMP2, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (3), (0));
-
1680OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (((1) << 1)));
-
1681OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x10000);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (0x10000));
-
1682sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
1683}
executed: }
Execution Count:7
7
1684#endif /* COMPILE_PCRE16 */ -
1685 -
1686#endif /* COMPILE_PCRE8 */ -
1687 -
1688#endif /* SUPPORT_UTF */ -
1689 -
1690#ifdef SUPPORT_UCP -
1691 -
1692/* UCD_BLOCK_SIZE must be 128 (see the assert below). */ -
1693#define UCD_BLOCK_MASK 127 -
1694#define UCD_BLOCK_SHIFT 7 -
1695 -
1696static void do_getucd(compiler_common *common) -
1697{ -
1698/* Search the UCD record for the character comes in TMP1. -
1699Returns chartype in TMP1 and UCD offset in TMP2. */ -
1700DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1701 -
1702SLJIT_ASSERT(UCD_BLOCK_SIZE == 128 && sizeof(ucd_record) == 8);
never executed: }
never evaluated: 0
0
1703 -
1704sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
1705OP2(SLJIT_LSHR, TMP2, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_SHIFT);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (3), (0), (1), (0), (0x200), (7));
-
1706OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), (sljit_w)PRIV(ucd_stage1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), ((sljit_w)_pcre16_ucd_stage1));
-
1707OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, UCD_BLOCK_MASK);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (127));
-
1708OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, UCD_BLOCK_SHIFT);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (7));
-
1709OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (3), (0));
-
1710OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, (sljit_w)PRIV(ucd_stage2));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), ((sljit_w)_pcre16_ucd_stage2));
-
1711OP1(SLJIT_MOV_UH, TMP2, 0, SLJIT_MEM2(TMP2, TMP1), 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (3) | ((1) << 4))), (1));
-
1712OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, (sljit_w)PRIV(ucd_records) + SLJIT_OFFSETOF(ucd_record, chartype));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->chartype) - 0x10)));
-
1713OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM2(TMP1, TMP2), 3);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1) | ((3) << 4))), (3));
-
1714sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
1715}
never executed: }
0
1716#endif -
1717 -
1718static SLJIT_INLINE struct sljit_label *mainloop_entry(compiler_common *common, BOOL hascrorlf, BOOL firstline) -
1719{ -
1720DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1721struct sljit_label *mainloop;
executed (the execution status of this line is deduced): struct sljit_label *mainloop;
-
1722struct sljit_label *newlinelabel = NULL;
executed (the execution status of this line is deduced): struct sljit_label *newlinelabel = ((void *)0);
-
1723struct sljit_jump *start;
executed (the execution status of this line is deduced): struct sljit_jump *start;
-
1724struct sljit_jump *end = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *end = ((void *)0);
-
1725struct sljit_jump *nl = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *nl = ((void *)0);
-
1726#ifdef SUPPORT_UTF -
1727struct sljit_jump *singlechar;
executed (the execution status of this line is deduced): struct sljit_jump *singlechar;
-
1728#endif -
1729jump_list *newline = NULL;
executed (the execution status of this line is deduced): jump_list *newline = ((void *)0);
-
1730BOOL newlinecheck = FALSE;
executed (the execution status of this line is deduced): BOOL newlinecheck = 0;
-
1731BOOL readuchar = FALSE;
executed (the execution status of this line is deduced): BOOL readuchar = 0;
-
1732 -
1733if (!(hascrorlf || firstline) && (common->nltype == NLTYPE_ANY ||
partially evaluated: hascrorlf
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: common->nltype == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1734 common->nltype == NLTYPE_ANYCRLF || common->newline > 255))
evaluated: common->nltype == 2
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
evaluated: common->newline > 255
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:12
1-14
1735 newlinecheck = TRUE;
executed: newlinecheck = 1;
Execution Count:3
3
1736 -
1737if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1738 { -
1739 /* Search for the end of the first line. */ -
1740 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (6), (0));
-
1741 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (7), (0));
-
1742 -
1743 if (common->nltype == NLTYPE_FIXED && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
1744 { -
1745 mainloop = LABEL();
never executed (the execution status of this line is deduced): mainloop = sljit_emit_label(compiler);
-
1746 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1747 end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1748 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-1) << 1)));
-
1749 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((0) << 1)));
-
1750 CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)), (mainloop));
-
1751 CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)), (mainloop));
-
1752 OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0), (0x200), (((1) << 1)));
-
1753 }
never executed: }
0
1754 else -
1755 { -
1756 end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1757 mainloop = LABEL();
never executed (the execution status of this line is deduced): mainloop = sljit_emit_label(compiler);
-
1758 /* Continual stores does not cause data dependency. */ -
1759 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0));
-
1760 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
1761 check_newlinechar(common, common->nltype, &newline, TRUE);
never executed (the execution status of this line is deduced): check_newlinechar(common, common->nltype, &newline, 1);
-
1762 CMPTO(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)), (mainloop));
-
1763 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0));
-
1764 set_jumps(newline, LABEL());
never executed (the execution status of this line is deduced): set_jumps(newline, sljit_emit_label(compiler));
-
1765 }
never executed: }
0
1766 -
1767 JUMPHERE(end);
never executed (the execution status of this line is deduced): sljit_set_label((end), sljit_emit_label(compiler));
-
1768 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w))));
-
1769 }
never executed: }
0
1770 -
1771start = JUMP(SLJIT_JUMP);
executed (the execution status of this line is deduced): start = sljit_emit_jump(compiler, (22));
-
1772 -
1773if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1774 { -
1775 newlinelabel = LABEL();
executed (the execution status of this line is deduced): newlinelabel = sljit_emit_label(compiler);
-
1776 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1777 end = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1778 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
1779 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, common->newline & 0xff);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (common->newline & 0xff));
-
1780 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
1781#ifdef COMPILE_PCRE16 -
1782 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
1783#endif -
1784 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
1785 nl = JUMP(SLJIT_JUMP);
executed (the execution status of this line is deduced): nl = sljit_emit_jump(compiler, (22));
-
1786 }
executed: }
Execution Count:3
3
1787 -
1788mainloop = LABEL();
executed (the execution status of this line is deduced): mainloop = sljit_emit_label(compiler);
-
1789 -
1790/* Increasing the STR_PTR here requires one less jump in the most common case. */ -
1791#ifdef SUPPORT_UTF -
1792if (common->utf) readuchar = TRUE;
executed: readuchar = 1;
Execution Count:15
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1793#endif -
1794if (newlinecheck) readuchar = TRUE;
executed: readuchar = 1;
Execution Count:3
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1795 -
1796if (readuchar)
partially evaluated: readuchar
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1797 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed: sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
Execution Count:15
15
1798 -
1799if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1800 CMPTO(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, newlinelabel);
executed: sljit_set_label(sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ((common->newline >> 8) & 0xff)), (newlinelabel));
Execution Count:3
3
1801 -
1802OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1803#if defined SUPPORT_UTF && defined COMPILE_PCRE8 -
1804if (common->utf) -
1805 { -
1806 singlechar = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0); -
1807 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)PRIV(utf8_table4) - 0xc0); -
1808 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
1809 JUMPHERE(singlechar); -
1810 } -
1811#endif -
1812#if defined SUPPORT_UTF && defined COMPILE_PCRE16 -
1813if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1814 { -
1815 singlechar = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
executed (the execution status of this line is deduced): singlechar = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800));
-
1816 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00));
-
1817 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800));
-
1818 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
1819 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
1820 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
1821 JUMPHERE(singlechar);
executed (the execution status of this line is deduced): sljit_set_label((singlechar), sljit_emit_label(compiler));
-
1822 }
executed: }
Execution Count:15
15
1823#endif -
1824JUMPHERE(start);
executed (the execution status of this line is deduced): sljit_set_label((start), sljit_emit_label(compiler));
-
1825 -
1826if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1827 { -
1828 JUMPHERE(end);
executed (the execution status of this line is deduced): sljit_set_label((end), sljit_emit_label(compiler));
-
1829 JUMPHERE(nl);
executed (the execution status of this line is deduced): sljit_set_label((nl), sljit_emit_label(compiler));
-
1830 }
executed: }
Execution Count:3
3
1831 -
1832return mainloop;
executed: return mainloop;
Execution Count:15
15
1833} -
1834 -
1835static SLJIT_INLINE void fast_forward_first_char(compiler_common *common, pcre_uchar first_char, BOOL caseless, BOOL firstline) -
1836{ -
1837DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1838struct sljit_label *start;
executed (the execution status of this line is deduced): struct sljit_label *start;
-
1839struct sljit_jump *leave;
executed (the execution status of this line is deduced): struct sljit_jump *leave;
-
1840struct sljit_jump *found;
executed (the execution status of this line is deduced): struct sljit_jump *found;
-
1841pcre_uchar oc, bit;
executed (the execution status of this line is deduced): pcre_uchar oc, bit;
-
1842 -
1843if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1844 { -
1845 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0));
-
1846 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w))));
-
1847 }
never executed: }
0
1848 -
1849start = LABEL();
executed (the execution status of this line is deduced): start = sljit_emit_label(compiler);
-
1850leave = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1851OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
1852 -
1853oc = first_char;
executed (the execution status of this line is deduced): oc = first_char;
-
1854if (caseless)
partially evaluated: caseless
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1855 { -
1856 oc = TABLE_GET(first_char, common->fcc, first_char);
never evaluated: ((first_char) <= 255u)
0
1857#if defined SUPPORT_UCP && !(defined COMPILE_PCRE8) -
1858 if (first_char > 127 && common->utf)
never evaluated: first_char > 127
never evaluated: common->utf
0
1859 oc = UCD_OTHERCASE(first_char);
never executed: oc = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case);
0
1860#endif -
1861 }
never executed: }
0
1862if (first_char == oc)
partially evaluated: first_char == oc
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
1863 found = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, first_char);
executed: found = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (first_char));
Execution Count:6
6
1864else -
1865 { -
1866 bit = first_char ^ oc;
never executed (the execution status of this line is deduced): bit = first_char ^ oc;
-
1867 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
1868 { -
1869 OP2(SLJIT_OR, TMP2, 0, TMP1, 0, SLJIT_IMM, bit);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (3), (0), (1), (0), (0x200), (bit));
-
1870 found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, first_char | bit);
never executed (the execution status of this line is deduced): found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (first_char | bit));
-
1871 }
never executed: }
0
1872 else -
1873 { -
1874 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, first_char);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (first_char));
-
1875 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
1876 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, oc);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (oc));
-
1877 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
1878 found = JUMP(SLJIT_C_NOT_ZERO);
never executed (the execution status of this line is deduced): found = sljit_emit_jump(compiler, (1));
-
1879 }
never executed: }
0
1880 } -
1881 -
1882OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1883#if defined SUPPORT_UTF && defined COMPILE_PCRE8 -
1884if (common->utf) -
1885 { -
1886 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0, start); -
1887 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)PRIV(utf8_table4) - 0xc0); -
1888 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
1889 } -
1890#endif -
1891#if defined SUPPORT_UTF && defined COMPILE_PCRE16 -
1892if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
1893 { -
1894 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800, start);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)), (start));
-
1895 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00));
-
1896 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800));
-
1897 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
1898 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
1899 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
1900 }
executed: }
Execution Count:6
6
1901#endif -
1902JUMPTO(SLJIT_JUMP, start);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (start));
-
1903JUMPHERE(found);
executed (the execution status of this line is deduced): sljit_set_label((found), sljit_emit_label(compiler));
-
1904JUMPHERE(leave);
executed (the execution status of this line is deduced): sljit_set_label((leave), sljit_emit_label(compiler));
-
1905 -
1906if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1907 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1908}
executed: }
Execution Count:6
6
1909 -
1910static SLJIT_INLINE void fast_forward_newline(compiler_common *common, BOOL firstline) -
1911{ -
1912DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1913struct sljit_label *loop;
executed (the execution status of this line is deduced): struct sljit_label *loop;
-
1914struct sljit_jump *lastchar;
executed (the execution status of this line is deduced): struct sljit_jump *lastchar;
-
1915struct sljit_jump *firstchar;
executed (the execution status of this line is deduced): struct sljit_jump *firstchar;
-
1916struct sljit_jump *leave;
executed (the execution status of this line is deduced): struct sljit_jump *leave;
-
1917struct sljit_jump *foundcr = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *foundcr = ((void *)0);
-
1918struct sljit_jump *notfoundnl;
executed (the execution status of this line is deduced): struct sljit_jump *notfoundnl;
-
1919jump_list *newline = NULL;
executed (the execution status of this line is deduced): jump_list *newline = ((void *)0);
-
1920 -
1921if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
1922 { -
1923 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0));
-
1924 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w))));
-
1925 }
never executed: }
0
1926 -
1927if (common->nltype == NLTYPE_FIXED && common->newline > 255)
evaluated: common->nltype == 0
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:1
evaluated: common->newline > 255
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
1-4
1928 { -
1929 lastchar = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): lastchar = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1930 OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
1931 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
1932 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
1933 firstchar = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
executed (the execution status of this line is deduced): firstchar = sljit_emit_cmp(compiler, (5), (6), (0), (3), (0));
-
1934 -
1935 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(2));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (((2) << 1)));
-
1936 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (6), (0), (1), (0));
-
1937 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_GREATER_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (3));
-
1938#ifdef COMPILE_PCRE16 -
1939 OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (1));
-
1940#endif -
1941 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0));
-
1942 -
1943 loop = LABEL();
executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
1944 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
1945 leave = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1946 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-2));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-2) << 1)));
-
1947 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((-1) << 1)));
-
1948 CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff, loop);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)), (loop));
-
1949 CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff, loop);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)), (loop));
-
1950 -
1951 JUMPHERE(leave);
executed (the execution status of this line is deduced): sljit_set_label((leave), sljit_emit_label(compiler));
-
1952 JUMPHERE(firstchar);
executed (the execution status of this line is deduced): sljit_set_label((firstchar), sljit_emit_label(compiler));
-
1953 JUMPHERE(lastchar);
executed (the execution status of this line is deduced): sljit_set_label((lastchar), sljit_emit_label(compiler));
-
1954 -
1955 if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
1956 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1957 return;
executed: return;
Execution Count:2
2
1958 } -
1959 -
1960OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
1961OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
1962firstchar = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP2, 0);
executed (the execution status of this line is deduced): firstchar = sljit_emit_cmp(compiler, (5), (6), (0), (3), (0));
-
1963skip_char_back(common);
executed (the execution status of this line is deduced): skip_char_back(common);
-
1964 -
1965loop = LABEL();
executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
1966read_char(common);
executed (the execution status of this line is deduced): read_char(common);
-
1967lastchar = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): lastchar = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1968if (common->nltype == NLTYPE_ANY || common->nltype == NLTYPE_ANYCRLF)
partially evaluated: common->nltype == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
evaluated: common->nltype == 2
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:2
0-3
1969 foundcr = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
executed: foundcr = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\015'));
Execution Count:1
1
1970check_newlinechar(common, common->nltype, &newline, FALSE);
executed (the execution status of this line is deduced): check_newlinechar(common, common->nltype, &newline, 0);
-
1971set_jumps(newline, loop);
executed (the execution status of this line is deduced): set_jumps(newline, loop);
-
1972 -
1973if (common->nltype == NLTYPE_ANY || common->nltype == NLTYPE_ANYCRLF)
partially evaluated: common->nltype == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
evaluated: common->nltype == 2
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:2
0-3
1974 { -
1975 leave = JUMP(SLJIT_JUMP);
executed (the execution status of this line is deduced): leave = sljit_emit_jump(compiler, (22));
-
1976 JUMPHERE(foundcr);
executed (the execution status of this line is deduced): sljit_set_label((foundcr), sljit_emit_label(compiler));
-
1977 notfoundnl = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): notfoundnl = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
1978 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
1979 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, CHAR_NL);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\012'));
-
1980 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
1981#ifdef COMPILE_PCRE16 -
1982 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
1983#endif -
1984 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
1985 JUMPHERE(notfoundnl);
executed (the execution status of this line is deduced): sljit_set_label((notfoundnl), sljit_emit_label(compiler));
-
1986 JUMPHERE(leave);
executed (the execution status of this line is deduced): sljit_set_label((leave), sljit_emit_label(compiler));
-
1987 }
executed: }
Execution Count:1
1
1988JUMPHERE(lastchar);
executed (the execution status of this line is deduced): sljit_set_label((lastchar), sljit_emit_label(compiler));
-
1989JUMPHERE(firstchar);
executed (the execution status of this line is deduced): sljit_set_label((firstchar), sljit_emit_label(compiler));
-
1990 -
1991if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1992 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1993}
executed: }
Execution Count:3
3
1994 -
1995static SLJIT_INLINE void fast_forward_start_bits(compiler_common *common, sljit_uw start_bits, BOOL firstline) -
1996{ -
1997DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
1998struct sljit_label *start;
never executed (the execution status of this line is deduced): struct sljit_label *start;
-
1999struct sljit_jump *leave;
never executed (the execution status of this line is deduced): struct sljit_jump *leave;
-
2000struct sljit_jump *found;
never executed (the execution status of this line is deduced): struct sljit_jump *found;
-
2001#ifndef COMPILE_PCRE8 -
2002struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
2003#endif -
2004 -
2005if (firstline)
never evaluated: firstline
0
2006 { -
2007 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0));
-
2008 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w))));
-
2009 }
never executed: }
0
2010 -
2011start = LABEL();
never executed (the execution status of this line is deduced): start = sljit_emit_label(compiler);
-
2012leave = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
2013OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
2014#ifdef SUPPORT_UTF -
2015if (common->utf)
never evaluated: common->utf
0
2016 OP1(SLJIT_MOV, TMP3, 0, TMP1, 0);
never executed: sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
0
2017#endif -
2018#ifndef COMPILE_PCRE8 -
2019jump = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (255));
-
2020OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), (255));
-
2021JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2022#endif -
2023OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7));
-
2024OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3));
-
2025OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), start_bits);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), (start_bits));
-
2026OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0));
-
2027OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0));
-
2028found = JUMP(SLJIT_C_NOT_ZERO);
never executed (the execution status of this line is deduced): found = sljit_emit_jump(compiler, (1));
-
2029 -
2030#ifdef SUPPORT_UTF -
2031if (common->utf)
never evaluated: common->utf
0
2032 OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
never executed: sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
0
2033#endif -
2034OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
2035#if defined SUPPORT_UTF && defined COMPILE_PCRE8 -
2036if (common->utf) -
2037 { -
2038 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0, start); -
2039 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)PRIV(utf8_table4) - 0xc0); -
2040 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
2041 } -
2042#endif -
2043#if defined SUPPORT_UTF && defined COMPILE_PCRE16 -
2044if (common->utf)
never evaluated: common->utf
0
2045 { -
2046 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800, start);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)), (start));
-
2047 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00));
-
2048 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800));
-
2049 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
2050 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
2051 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
2052 }
never executed: }
0
2053#endif -
2054JUMPTO(SLJIT_JUMP, start);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (start));
-
2055JUMPHERE(found);
never executed (the execution status of this line is deduced): sljit_set_label((found), sljit_emit_label(compiler));
-
2056JUMPHERE(leave);
never executed (the execution status of this line is deduced): sljit_set_label((leave), sljit_emit_label(compiler));
-
2057 -
2058if (firstline)
never evaluated: firstline
0
2059 OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
2060}
never executed: }
0
2061 -
2062static SLJIT_INLINE struct sljit_jump *search_requested_char(compiler_common *common, pcre_uchar req_char, BOOL caseless, BOOL has_firstchar) -
2063{ -
2064DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2065struct sljit_label *loop;
never executed (the execution status of this line is deduced): struct sljit_label *loop;
-
2066struct sljit_jump *toolong;
never executed (the execution status of this line is deduced): struct sljit_jump *toolong;
-
2067struct sljit_jump *alreadyfound;
never executed (the execution status of this line is deduced): struct sljit_jump *alreadyfound;
-
2068struct sljit_jump *found;
never executed (the execution status of this line is deduced): struct sljit_jump *found;
-
2069struct sljit_jump *foundoc = NULL;
never executed (the execution status of this line is deduced): struct sljit_jump *foundoc = ((void *)0);
-
2070struct sljit_jump *notfound;
never executed (the execution status of this line is deduced): struct sljit_jump *notfound;
-
2071pcre_uchar oc, bit;
never executed (the execution status of this line is deduced): pcre_uchar oc, bit;
-
2072 -
2073OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), REQ_CHAR_PTR);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), ((6 * sizeof(sljit_w))));
-
2074OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, REQ_BYTE_MAX);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (1000));
-
2075toolong = CMP(SLJIT_C_LESS, TMP1, 0, STR_END, 0);
never executed (the execution status of this line is deduced): toolong = sljit_emit_cmp(compiler, (2), (1), (0), (7), (0));
-
2076alreadyfound = CMP(SLJIT_C_LESS, STR_PTR, 0, TMP2, 0);
never executed (the execution status of this line is deduced): alreadyfound = sljit_emit_cmp(compiler, (2), (6), (0), (3), (0));
-
2077 -
2078if (has_firstchar)
never evaluated: has_firstchar
0
2079 OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed: sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((1) << 1)));
0
2080else -
2081 OP1(SLJIT_MOV, TMP1, 0, STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), (1), (0), (6), (0));
0
2082 -
2083loop = LABEL();
never executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
2084notfound = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, STR_END, 0);
never executed (the execution status of this line is deduced): notfound = sljit_emit_cmp(compiler, (3), (1), (0), (7), (0));
-
2085 -
2086OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(TMP1), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (1))), (0));
-
2087oc = req_char;
never executed (the execution status of this line is deduced): oc = req_char;
-
2088if (caseless)
never evaluated: caseless
0
2089 { -
2090 oc = TABLE_GET(req_char, common->fcc, req_char);
never evaluated: ((req_char) <= 255u)
0
2091#if defined SUPPORT_UCP && !(defined COMPILE_PCRE8) -
2092 if (req_char > 127 && common->utf)
never evaluated: req_char > 127
never evaluated: common->utf
0
2093 oc = UCD_OTHERCASE(req_char);
never executed: oc = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case);
0
2094#endif -
2095 }
never executed: }
0
2096if (req_char == oc)
never evaluated: req_char == oc
0
2097 found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
never executed: found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char));
0
2098else -
2099 { -
2100 bit = req_char ^ oc;
never executed (the execution status of this line is deduced): bit = req_char ^ oc;
-
2101 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
2102 { -
2103 OP2(SLJIT_OR, TMP2, 0, TMP2, 0, SLJIT_IMM, bit);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (3), (0), (3), (0), (0x200), (bit));
-
2104 found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char | bit);
never executed (the execution status of this line is deduced): found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char | bit));
-
2105 }
never executed: }
0
2106 else -
2107 { -
2108 found = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, req_char);
never executed (the execution status of this line is deduced): found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char));
-
2109 foundoc = CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, oc);
never executed (the execution status of this line is deduced): foundoc = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (oc));
-
2110 }
never executed: }
0
2111 } -
2112OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (((1) << 1)));
-
2113JUMPTO(SLJIT_JUMP, loop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (loop));
-
2114 -
2115JUMPHERE(found);
never executed (the execution status of this line is deduced): sljit_set_label((found), sljit_emit_label(compiler));
-
2116if (foundoc)
never evaluated: foundoc
0
2117 JUMPHERE(foundoc);
never executed: sljit_set_label((foundoc), sljit_emit_label(compiler));
0
2118OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), REQ_CHAR_PTR, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((6 * sizeof(sljit_w))), (1), (0));
-
2119JUMPHERE(alreadyfound);
never executed (the execution status of this line is deduced): sljit_set_label((alreadyfound), sljit_emit_label(compiler));
-
2120JUMPHERE(toolong);
never executed (the execution status of this line is deduced): sljit_set_label((toolong), sljit_emit_label(compiler));
-
2121return notfound;
never executed: return notfound;
0
2122} -
2123 -
2124static void do_revertframes(compiler_common *common) -
2125{ -
2126DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2127struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
2128struct sljit_label *mainloop;
never executed (the execution status of this line is deduced): struct sljit_label *mainloop;
-
2129 -
2130sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2131OP1(SLJIT_MOV, TMP1, 0, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (2), (0));
-
2132 -
2133/* Drop frames until we reach STACK_TOP. */ -
2134mainloop = LABEL();
never executed (the execution status of this line is deduced): mainloop = sljit_emit_label(compiler);
-
2135OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (0));
-
2136jump = CMP(SLJIT_C_SIG_LESS_EQUAL, TMP2, 0, SLJIT_IMM, frame_end);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (9), (3), (0), (0x200), (frame_end));
-
2137OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, SLJIT_LOCALS_REG, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (3), (0), (11), (0));
-
2138OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(TMP1), sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (3))), (0), ((0x100 | (1))), (sizeof(sljit_w)));
-
2139OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), sizeof(sljit_w), SLJIT_MEM1(TMP1), 2 * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (3))), (sizeof(sljit_w)), ((0x100 | (1))), (2 * sizeof(sljit_w)));
-
2140OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 3 * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (3 * sizeof(sljit_w)));
-
2141JUMPTO(SLJIT_JUMP, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop));
-
2142 -
2143JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2144jump = CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, frame_end);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (frame_end));
-
2145/* End of dropping frames. */ -
2146sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2147 -
2148JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2149jump = CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, frame_setstrbegin);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (frame_setstrbegin));
-
2150/* Set string begin. */ -
2151OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (sizeof(sljit_w)));
-
2152OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (2 * sizeof(sljit_w)));
-
2153OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (3), (0));
-
2154JUMPTO(SLJIT_JUMP, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop));
-
2155 -
2156JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2157/* Unknown command. */ -
2158OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 2 * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (2 * sizeof(sljit_w)));
-
2159JUMPTO(SLJIT_JUMP, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop));
-
2160}
never executed: }
0
2161 -
2162static void check_wordboundary(compiler_common *common) -
2163{ -
2164DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2165struct sljit_jump *beginend;
executed (the execution status of this line is deduced): struct sljit_jump *beginend;
-
2166#if !(defined COMPILE_PCRE8) || defined SUPPORT_UTF -
2167struct sljit_jump *jump;
executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
2168#endif -
2169 -
2170SLJIT_COMPILE_ASSERT(ctype_word == 0x10, ctype_word_must_be_16);
executed: }
Execution Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2171 -
2172sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, 1, 5, 5, common->localsize);
executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)), 1, 5, 5, common->localsize);
-
2173/* Get type of the previous char, and put it to LOCALS1. */ -
2174OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
2175OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
2176OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, SLJIT_IMM, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (0));
-
2177beginend = CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP1, 0);
executed (the execution status of this line is deduced): beginend = sljit_emit_cmp(compiler, (5), (6), (0), (1), (0));
-
2178skip_char_back(common);
executed (the execution status of this line is deduced): skip_char_back(common);
-
2179read_char(common);
executed (the execution status of this line is deduced): read_char(common);
-
2180 -
2181/* Testing char type. */ -
2182#ifdef SUPPORT_UCP -
2183if (common->use_ucp)
partially evaluated: common->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2184 { -
2185 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (1));
-
2186 jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\137'));
-
2187 add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23)));
-
2188 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Ll));
-
2189 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_Lu - ucp_Ll));
-
2190 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (5));
-
2191 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Nd - ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Nd - ucp_Ll));
-
2192 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_No - ucp_Nd);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_No - ucp_Nd));
-
2193 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (5));
-
2194 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2195 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (3), (0));
-
2196 }
never executed: }
0
2197else -
2198#endif -
2199 { -
2200#ifndef COMPILE_PCRE8 -
2201 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255));
-
2202#elif defined SUPPORT_UTF -
2203 /* Here LOCALS1 has already been zeroed. */ -
2204 jump = NULL; -
2205 if (common->utf) -
2206 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255); -
2207#endif /* COMPILE_PCRE8 */ -
2208 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), common->ctypes);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), (common->ctypes));
-
2209 OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 4 /* ctype_word */);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (4));
-
2210 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (1));
-
2211 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (1), (0));
-
2212#ifndef COMPILE_PCRE8 -
2213 JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2214#elif defined SUPPORT_UTF -
2215 if (jump != NULL) -
2216 JUMPHERE(jump); -
2217#endif /* COMPILE_PCRE8 */ -
2218 }
executed: }
Execution Count:1
1
2219JUMPHERE(beginend);
executed (the execution status of this line is deduced): sljit_set_label((beginend), sljit_emit_label(compiler));
-
2220 -
2221OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0));
-
2222beginend = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): beginend = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
2223peek_char(common);
executed (the execution status of this line is deduced): peek_char(common);
-
2224 -
2225/* Testing char type. This is a code duplication. */ -
2226#ifdef SUPPORT_UCP -
2227if (common->use_ucp)
partially evaluated: common->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2228 { -
2229 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (1));
-
2230 jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\137'));
-
2231 add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23)));
-
2232 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Ll));
-
2233 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_Lu - ucp_Ll));
-
2234 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (5));
-
2235 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Nd - ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Nd - ucp_Ll));
-
2236 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ucp_No - ucp_Nd);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_No - ucp_Nd));
-
2237 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (5));
-
2238 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2239 }
never executed: }
0
2240else -
2241#endif -
2242 { -
2243#ifndef COMPILE_PCRE8 -
2244 /* TMP2 may be destroyed by peek_char. */ -
2245 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0));
-
2246 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255));
-
2247#elif defined SUPPORT_UTF -
2248 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0); -
2249 jump = NULL; -
2250 if (common->utf) -
2251 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255); -
2252#endif -
2253 OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), common->ctypes);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (common->ctypes));
-
2254 OP2(SLJIT_LSHR, TMP2, 0, TMP2, 0, SLJIT_IMM, 4 /* ctype_word */);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (3), (0), (3), (0), (0x200), (4));
-
2255 OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (1));
-
2256#ifndef COMPILE_PCRE8 -
2257 JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2258#elif defined SUPPORT_UTF -
2259 if (jump != NULL) -
2260 JUMPHERE(jump); -
2261#endif /* COMPILE_PCRE8 */ -
2262 }
executed: }
Execution Count:1
1
2263JUMPHERE(beginend);
executed (the execution status of this line is deduced): sljit_set_label((beginend), sljit_emit_label(compiler));
-
2264 -
2265OP2(SLJIT_XOR | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (30 | 0x0200), (0), (0), (3), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w))));
-
2266sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)));
-
2267}
executed: }
Execution Count:1
1
2268 -
2269static void check_anynewline(compiler_common *common) -
2270{ -
2271/* Check whether TMP1 contains a newline character. TMP2 destroyed. */ -
2272DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2273 -
2274sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2275 -
2276OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x0a));
-
2277OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x0d - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x0d - 0x0a));
-
2278COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (5));
-
2279OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x85 - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x85 - 0x0a));
-
2280#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
2281#ifdef COMPILE_PCRE8 -
2282if (common->utf) -
2283 { -
2284#endif -
2285 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2286 OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (0x1));
-
2287 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2029 - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x2029 - 0x0a));
-
2288#ifdef COMPILE_PCRE8 -
2289 } -
2290#endif -
2291#endif /* SUPPORT_UTF || COMPILE_PCRE16 */ -
2292COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2293sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2294}
never executed: }
0
2295 -
2296static void check_hspace(compiler_common *common) -
2297{ -
2298/* Check whether TMP1 contains a newline character. TMP2 destroyed. */ -
2299DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2300 -
2301sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2302 -
2303OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x09);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x09));
-
2304COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
2305OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x20);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x20));
-
2306COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2307OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xa0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xa0));
-
2308#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
2309#ifdef COMPILE_PCRE8 -
2310if (common->utf) -
2311 { -
2312#endif -
2313 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2314 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x1680);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x1680));
-
2315 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2316 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x180e);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x180e));
-
2317 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2318 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x2000);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x2000));
-
2319 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x200A - 0x2000);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x200A - 0x2000));
-
2320 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (5));
-
2321 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x202f - 0x2000);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x202f - 0x2000));
-
2322 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2323 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x205f - 0x2000);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x205f - 0x2000));
-
2324 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2325 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x3000 - 0x2000);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x3000 - 0x2000));
-
2326#ifdef COMPILE_PCRE8 -
2327 } -
2328#endif -
2329#endif /* SUPPORT_UTF || COMPILE_PCRE16 */ -
2330COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2331 -
2332sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2333}
never executed: }
0
2334 -
2335static void check_vspace(compiler_common *common) -
2336{ -
2337/* Check whether TMP1 contains a newline character. TMP2 destroyed. */ -
2338DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2339 -
2340sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2341 -
2342OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x0a));
-
2343OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x0d - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x0d - 0x0a));
-
2344COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (5));
-
2345OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x85 - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x85 - 0x0a));
-
2346#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
2347#ifdef COMPILE_PCRE8 -
2348if (common->utf) -
2349 { -
2350#endif -
2351 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2352 OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (0x1));
-
2353 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0x2029 - 0x0a);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x2029 - 0x0a));
-
2354#ifdef COMPILE_PCRE8 -
2355 } -
2356#endif -
2357#endif /* SUPPORT_UTF || COMPILE_PCRE16 */ -
2358COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2359 -
2360sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2361}
never executed: }
0
2362 -
2363#define CHAR1 STR_END -
2364#define CHAR2 STACK_TOP -
2365 -
2366static void do_casefulcmp(compiler_common *common) -
2367{ -
2368DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2369struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
2370struct sljit_label *label;
never executed (the execution status of this line is deduced): struct sljit_label *label;
-
2371 -
2372sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2373OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0));
-
2374OP1(SLJIT_MOV, TMP3, 0, CHAR1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (7), (0));
-
2375OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, CHAR2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (2), (0));
-
2376OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (((1) << 1)));
-
2377OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
2378 -
2379label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
2380OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (16), (7), (0), ((0x100 | (1))), (((1) << 1)));
-
2381OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (16), (2), (0), ((0x100 | (6))), (((1) << 1)));
-
2382jump = CMP(SLJIT_C_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (7), (0), (2), (0));
-
2383OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (((1) << 1)));
-
2384JUMPTO(SLJIT_C_NOT_ZERO, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (1)), (label));
-
2385 -
2386JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2387OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
2388OP1(SLJIT_MOV, CHAR1, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), (5), (0));
-
2389OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w))));
-
2390sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2391}
never executed: }
0
2392 -
2393#define LCC_TABLE STACK_LIMIT -
2394 -
2395static void do_caselesscmp(compiler_common *common) -
2396{ -
2397DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2398struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
2399struct sljit_label *label;
never executed (the execution status of this line is deduced): struct sljit_label *label;
-
2400 -
2401sljit_emit_fast_enter(compiler, RETURN_ADDR, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize);
-
2402OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0));
-
2403 -
2404OP1(SLJIT_MOV, TMP3, 0, LCC_TABLE, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (8), (0));
-
2405OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, CHAR1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (7), (0));
-
2406OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, CHAR2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (2), (0));
-
2407OP1(SLJIT_MOV, LCC_TABLE, 0, SLJIT_IMM, common->lcc);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (8), (0), (0x200), (common->lcc));
-
2408OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (((1) << 1)));
-
2409OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
2410 -
2411label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
2412OP1(MOVU_UCHAR, CHAR1, 0, SLJIT_MEM1(TMP1), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (16), (7), (0), ((0x100 | (1))), (((1) << 1)));
-
2413OP1(MOVU_UCHAR, CHAR2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (16), (2), (0), ((0x100 | (6))), (((1) << 1)));
-
2414#ifndef COMPILE_PCRE8 -
2415jump = CMP(SLJIT_C_GREATER, CHAR1, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (7), (0), (0x200), (255));
-
2416#endif -
2417OP1(SLJIT_MOV_UB, CHAR1, 0, SLJIT_MEM2(LCC_TABLE, CHAR1), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (7), (0), ((0x100 | (8) | ((7) << 4))), (0));
-
2418#ifndef COMPILE_PCRE8 -
2419JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2420jump = CMP(SLJIT_C_GREATER, CHAR2, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (2), (0), (0x200), (255));
-
2421#endif -
2422OP1(SLJIT_MOV_UB, CHAR2, 0, SLJIT_MEM2(LCC_TABLE, CHAR2), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (2), (0), ((0x100 | (8) | ((2) << 4))), (0));
-
2423#ifndef COMPILE_PCRE8 -
2424JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2425#endif -
2426jump = CMP(SLJIT_C_NOT_EQUAL, CHAR1, 0, CHAR2, 0);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (7), (0), (2), (0));
-
2427OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (((1) << 1)));
-
2428JUMPTO(SLJIT_C_NOT_ZERO, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (1)), (label));
-
2429 -
2430JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2431OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
2432OP1(SLJIT_MOV, LCC_TABLE, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (8), (0), (5), (0));
-
2433OP1(SLJIT_MOV, CHAR1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w))));
-
2434OP1(SLJIT_MOV, CHAR2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w))));
-
2435sljit_emit_fast_return(compiler, RETURN_ADDR, 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, 4, 0);
-
2436}
never executed: }
0
2437 -
2438#undef LCC_TABLE -
2439#undef CHAR1 -
2440#undef CHAR2 -
2441 -
2442#if defined SUPPORT_UTF && defined SUPPORT_UCP -
2443 -
2444static const pcre_uchar *SLJIT_CALL do_utf_caselesscmp(pcre_uchar *src1, jit_arguments *args, pcre_uchar *end1) -
2445{ -
2446/* This function would be ineffective to do in JIT level. */ -
2447int c1, c2;
never executed (the execution status of this line is deduced): int c1, c2;
-
2448const pcre_uchar *src2 = args->ptr;
never executed (the execution status of this line is deduced): const pcre_uchar *src2 = args->ptr;
-
2449const pcre_uchar *end2 = args->end;
never executed (the execution status of this line is deduced): const pcre_uchar *end2 = args->end;
-
2450 -
2451while (src1 < end1)
never evaluated: src1 < end1
0
2452 { -
2453 if (src2 >= end2)
never evaluated: src2 >= end2
0
2454 return 0;
never executed: return 0;
0
2455 GETCHARINC(c1, src1);
never executed: }
never evaluated: (c1 & 0xfc00) == 0xd800
0
2456 GETCHARINC(c2, src2);
never executed: }
never evaluated: (c2 & 0xfc00) == 0xd800
0
2457 if (c1 != c2 && c1 != UCD_OTHERCASE(c2)) return 0;
never executed: return 0;
never evaluated: c1 != c2
never evaluated: c1 != (c2 + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c2) / 128] * 128 + (c2) % 128])->other_case)
0
2458 }
never executed: }
0
2459return src2;
never executed: return src2;
0
2460} -
2461 -
2462#endif /* SUPPORT_UTF && SUPPORT_UCP */ -
2463 -
2464static pcre_uchar *byte_sequence_compare(compiler_common *common, BOOL caseless, pcre_uchar *cc, -
2465 compare_context* context, jump_list **fallbacks) -
2466{ -
2467DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2468unsigned int othercasebit = 0;
executed (the execution status of this line is deduced): unsigned int othercasebit = 0;
-
2469pcre_uchar *othercasechar = NULL;
executed (the execution status of this line is deduced): pcre_uchar *othercasechar = ((void *)0);
-
2470#ifdef SUPPORT_UTF -
2471int utflength;
executed (the execution status of this line is deduced): int utflength;
-
2472#endif -
2473 -
2474if (caseless && char_has_othercase(common, cc))
partially evaluated: caseless
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
never evaluated: char_has_othercase(common, cc)
0-9
2475 { -
2476 othercasebit = char_get_othercase_bit(common, cc);
never executed (the execution status of this line is deduced): othercasebit = char_get_othercase_bit(common, cc);
-
2477 SLJIT_ASSERT(othercasebit);
never executed: }
never evaluated: 0
0
2478 /* Extracting bit difference info. */ -
2479#ifdef COMPILE_PCRE8 -
2480 othercasechar = cc + (othercasebit >> 8); -
2481 othercasebit &= 0xff; -
2482#else -
2483#ifdef COMPILE_PCRE16 -
2484 othercasechar = cc + (othercasebit >> 9);
never executed (the execution status of this line is deduced): othercasechar = cc + (othercasebit >> 9);
-
2485 if ((othercasebit & 0x100) != 0)
never evaluated: (othercasebit & 0x100) != 0
0
2486 othercasebit = (othercasebit & 0xff) << 8;
never executed: othercasebit = (othercasebit & 0xff) << 8;
0
2487 else -
2488 othercasebit &= 0xff;
never executed: othercasebit &= 0xff;
0
2489#endif -
2490#endif -
2491 } -
2492 -
2493if (context->sourcereg == -1)
partially evaluated: context->sourcereg == -1
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-9
2494 { -
2495#ifdef COMPILE_PCRE8 -
2496#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
2497 if (context->length >= 4) -
2498 OP1(SLJIT_MOV_SI, TMP1, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2499 else if (context->length >= 2) -
2500 OP1(SLJIT_MOV_UH, TMP1, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2501 else -
2502#endif -
2503 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2504#else -
2505#ifdef COMPILE_PCRE16 -
2506#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
2507 if (context->length >= 4)
partially evaluated: context->length >= 4
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2508 OP1(SLJIT_MOV_SI, TMP1, 0, SLJIT_MEM1(STR_PTR), -context->length);
never executed: sljit_emit_op1(compiler, (12), (1), (0), ((0x100 | (6))), (-context->length));
0
2509 else -
2510#endif -
2511 OP1(SLJIT_MOV_UH, TMP1, 0, SLJIT_MEM1(STR_PTR), -context->length);
executed: sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (-context->length));
Execution Count:9
9
2512#endif -
2513#endif /* COMPILE_PCRE8 */ -
2514 context->sourcereg = TMP2;
executed (the execution status of this line is deduced): context->sourcereg = 3;
-
2515 }
executed: }
Execution Count:9
9
2516 -
2517#ifdef SUPPORT_UTF -
2518utflength = 1;
executed (the execution status of this line is deduced): utflength = 1;
-
2519if (common->utf && HAS_EXTRALEN(*cc))
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
partially evaluated: (((*cc) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2520 utflength += GET_EXTRALEN(*cc);
never executed: utflength += 1;
0
2521 -
2522do -
2523 { -
2524#endif -
2525 -
2526 context->length -= IN_UCHARS(1);
executed (the execution status of this line is deduced): context->length -= ((1) << 1);
-
2527#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
2528 -
2529 /* Unaligned read is supported. */ -
2530 if (othercasebit != 0 && othercasechar == cc)
partially evaluated: othercasebit != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
never evaluated: othercasechar == cc
0-9
2531 { -
2532 context->c.asuchars[context->ucharptr] = *cc | othercasebit;
never executed (the execution status of this line is deduced): context->c.asuchars[context->ucharptr] = *cc | othercasebit;
-
2533 context->oc.asuchars[context->ucharptr] = othercasebit;
never executed (the execution status of this line is deduced): context->oc.asuchars[context->ucharptr] = othercasebit;
-
2534 }
never executed: }
0
2535 else -
2536 { -
2537 context->c.asuchars[context->ucharptr] = *cc;
executed (the execution status of this line is deduced): context->c.asuchars[context->ucharptr] = *cc;
-
2538 context->oc.asuchars[context->ucharptr] = 0;
executed (the execution status of this line is deduced): context->oc.asuchars[context->ucharptr] = 0;
-
2539 }
executed: }
Execution Count:9
9
2540 context->ucharptr++;
executed (the execution status of this line is deduced): context->ucharptr++;
-
2541 -
2542#ifdef COMPILE_PCRE8 -
2543 if (context->ucharptr >= 4 || context->length == 0 || (context->ucharptr == 2 && context->length == 1)) -
2544#else -
2545 if (context->ucharptr >= 2 || context->length == 0)
partially evaluated: context->ucharptr >= 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
partially evaluated: context->length == 0
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-9
2546#endif -
2547 { -
2548 if (context->length >= 4)
partially evaluated: context->length >= 4
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2549 OP1(SLJIT_MOV_SI, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length);
never executed: sljit_emit_op1(compiler, (12), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
0
2550#ifdef COMPILE_PCRE8 -
2551 else if (context->length >= 2) -
2552 OP1(SLJIT_MOV_UH, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2553 else if (context->length >= 1) -
2554 OP1(SLJIT_MOV_UB, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2555#else -
2556 else if (context->length >= 2)
partially evaluated: context->length >= 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2557 OP1(SLJIT_MOV_UH, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length);
never executed: sljit_emit_op1(compiler, (9), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
0
2558#endif -
2559 context->sourcereg = context->sourcereg == TMP1 ? TMP2 : TMP1;
partially evaluated: context->sourcereg == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2560 -
2561 switch(context->ucharptr) -
2562 { -
2563 case 4 / sizeof(pcre_uchar): -
2564 if (context->oc.asint != 0)
never evaluated: context->oc.asint != 0
0
2565 OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asint);
never executed: sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asint));
0
2566 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asint | context->oc.asint));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (context->sourcereg), (0), (0x200), (context->c.asint | context->oc.asint)));
-
2567 break;
never executed: break;
0
2568 -
2569 case 2 / sizeof(pcre_uchar): -
2570 if (context->oc.asushort != 0)
partially evaluated: context->oc.asushort != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2571 OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asushort);
never executed: sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asushort));
0
2572 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asushort | context->oc.asushort));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (context->sourcereg), (0), (0x200), (context->c.asushort | context->oc.asushort)));
-
2573 break;
executed: break;
Execution Count:9
9
2574 -
2575#ifdef COMPILE_PCRE8 -
2576 case 1: -
2577 if (context->oc.asbyte != 0) -
2578 OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, context->oc.asbyte); -
2579 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.asbyte | context->oc.asbyte)); -
2580 break; -
2581#endif -
2582 -
2583 default: -
2584 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
2585 break;
never executed: break;
0
2586 } -
2587 context->ucharptr = 0;
executed (the execution status of this line is deduced): context->ucharptr = 0;
-
2588 }
executed: }
Execution Count:9
9
2589 -
2590#else -
2591 -
2592 /* Unaligned read is unsupported. */ -
2593#ifdef COMPILE_PCRE8 -
2594 if (context->length > 0) -
2595 OP1(SLJIT_MOV_UB, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2596#else -
2597 if (context->length > 0) -
2598 OP1(SLJIT_MOV_UH, context->sourcereg, 0, SLJIT_MEM1(STR_PTR), -context->length); -
2599#endif -
2600 context->sourcereg = context->sourcereg == TMP1 ? TMP2 : TMP1; -
2601 -
2602 if (othercasebit != 0 && othercasechar == cc) -
2603 { -
2604 OP2(SLJIT_OR, context->sourcereg, 0, context->sourcereg, 0, SLJIT_IMM, othercasebit); -
2605 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc | othercasebit)); -
2606 } -
2607 else -
2608 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc)); -
2609 -
2610#endif -
2611 -
2612 cc++;
executed (the execution status of this line is deduced): cc++;
-
2613#ifdef SUPPORT_UTF -
2614 utflength--;
executed (the execution status of this line is deduced): utflength--;
-
2615 }
executed: }
Execution Count:9
9
2616while (utflength > 0);
partially evaluated: utflength > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2617#endif -
2618 -
2619return cc;
executed: return cc;
Execution Count:9
9
2620} -
2621 -
2622#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 -
2623 -
2624#define SET_TYPE_OFFSET(value) \ -
2625 if ((value) != typeoffset) \ -
2626 { \ -
2627 if ((value) > typeoffset) \ -
2628 OP2(SLJIT_SUB, typereg, 0, typereg, 0, SLJIT_IMM, (value) - typeoffset); \ -
2629 else \ -
2630 OP2(SLJIT_ADD, typereg, 0, typereg, 0, SLJIT_IMM, typeoffset - (value)); \ -
2631 } \ -
2632 typeoffset = (value); -
2633 -
2634#define SET_CHAR_OFFSET(value) \ -
2635 if ((value) != charoffset) \ -
2636 { \ -
2637 if ((value) > charoffset) \ -
2638 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, (value) - charoffset); \ -
2639 else \ -
2640 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, charoffset - (value)); \ -
2641 } \ -
2642 charoffset = (value); -
2643 -
2644static void compile_xclass_hotpath(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks) -
2645{ -
2646DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2647jump_list *found = NULL;
executed (the execution status of this line is deduced): jump_list *found = ((void *)0);
-
2648jump_list **list = (*cc & XCL_NOT) == 0 ? &found : fallbacks;
partially evaluated: (*cc & 0x01) == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2649unsigned int c;
executed (the execution status of this line is deduced): unsigned int c;
-
2650int compares;
executed (the execution status of this line is deduced): int compares;
-
2651struct sljit_jump *jump = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *jump = ((void *)0);
-
2652pcre_uchar *ccbegin;
executed (the execution status of this line is deduced): pcre_uchar *ccbegin;
-
2653#ifdef SUPPORT_UCP -
2654BOOL needstype = FALSE, needsscript = FALSE, needschar = FALSE;
executed (the execution status of this line is deduced): BOOL needstype = 0, needsscript = 0, needschar = 0;
-
2655BOOL charsaved = FALSE;
executed (the execution status of this line is deduced): BOOL charsaved = 0;
-
2656int typereg = TMP1, scriptreg = TMP1;
executed (the execution status of this line is deduced): int typereg = 1, scriptreg = 1;
-
2657unsigned int typeoffset;
executed (the execution status of this line is deduced): unsigned int typeoffset;
-
2658#endif -
2659int invertcmp, numberofcmps;
executed (the execution status of this line is deduced): int invertcmp, numberofcmps;
-
2660unsigned int charoffset;
executed (the execution status of this line is deduced): unsigned int charoffset;
-
2661 -
2662/* Although SUPPORT_UTF must be defined, we are not necessary in utf mode. */ -
2663check_input_end(common, fallbacks);
executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
2664read_char(common);
executed (the execution status of this line is deduced): read_char(common);
-
2665 -
2666if ((*cc++ & XCL_MAP) != 0)
partially evaluated: (*cc++ & 0x02) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2667 { -
2668 OP1(SLJIT_MOV, TMP3, 0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
-
2669#ifndef COMPILE_PCRE8 -
2670 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255));
-
2671#elif defined SUPPORT_UTF -
2672 if (common->utf) -
2673 jump = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255); -
2674#endif -
2675 -
2676 OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7));
-
2677 OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3));
-
2678 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)cc);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), ((sljit_w)cc));
-
2679 OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0));
-
2680 OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0));
-
2681 add_jump(compiler, list, JUMP(SLJIT_C_NOT_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, list, sljit_emit_jump(compiler, (1)));
-
2682 -
2683#ifndef COMPILE_PCRE8 -
2684 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
2685#elif defined SUPPORT_UTF -
2686 if (common->utf) -
2687 JUMPHERE(jump); -
2688#endif -
2689 OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
-
2690#ifdef SUPPORT_UCP -
2691 charsaved = TRUE;
never executed (the execution status of this line is deduced): charsaved = 1;
-
2692#endif -
2693 cc += 32 / sizeof(pcre_uchar);
never executed (the execution status of this line is deduced): cc += 32 / sizeof(pcre_uchar);
-
2694 }
never executed: }
0
2695 -
2696/* Scanning the necessary info. */ -
2697ccbegin = cc;
executed (the execution status of this line is deduced): ccbegin = cc;
-
2698compares = 0;
executed (the execution status of this line is deduced): compares = 0;
-
2699while (*cc != XCL_END)
evaluated: *cc != 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
2700 { -
2701 compares++;
executed (the execution status of this line is deduced): compares++;
-
2702 if (*cc == XCL_SINGLE)
partially evaluated: *cc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2703 { -
2704 cc += 2;
never executed (the execution status of this line is deduced): cc += 2;
-
2705#ifdef SUPPORT_UTF -
2706 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]);
never executed: cc += 1;
never evaluated: common->utf
never evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
0
2707#endif -
2708#ifdef SUPPORT_UCP -
2709 needschar = TRUE;
never executed (the execution status of this line is deduced): needschar = 1;
-
2710#endif -
2711 }
never executed: }
0
2712 else if (*cc == XCL_RANGE)
partially evaluated: *cc == 2
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2713 { -
2714 cc += 2;
executed (the execution status of this line is deduced): cc += 2;
-
2715#ifdef SUPPORT_UTF -
2716 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]);
never executed: cc += 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2717#endif -
2718 cc++;
executed (the execution status of this line is deduced): cc++;
-
2719#ifdef SUPPORT_UTF -
2720 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]);
never executed: cc += 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2721#endif -
2722#ifdef SUPPORT_UCP -
2723 needschar = TRUE;
executed (the execution status of this line is deduced): needschar = 1;
-
2724#endif -
2725 }
executed: }
Execution Count:1
1
2726#ifdef SUPPORT_UCP -
2727 else -
2728 { -
2729 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP);
never executed: }
never evaluated: 0
0
2730 cc++;
never executed (the execution status of this line is deduced): cc++;
-
2731 switch(*cc) -
2732 { -
2733 case PT_ANY: -
2734 break;
never executed: break;
0
2735 -
2736 case PT_LAMP: -
2737 case PT_GC: -
2738 case PT_PC: -
2739 case PT_ALNUM: -
2740 needstype = TRUE;
never executed (the execution status of this line is deduced): needstype = 1;
-
2741 break;
never executed: break;
0
2742 -
2743 case PT_SC: -
2744 needsscript = TRUE;
never executed (the execution status of this line is deduced): needsscript = 1;
-
2745 break;
never executed: break;
0
2746 -
2747 case PT_SPACE: -
2748 case PT_PXSPACE: -
2749 case PT_WORD: -
2750 needstype = TRUE;
never executed (the execution status of this line is deduced): needstype = 1;
-
2751 needschar = TRUE;
never executed (the execution status of this line is deduced): needschar = 1;
-
2752 break;
never executed: break;
0
2753 -
2754 default: -
2755 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
2756 break;
never executed: break;
0
2757 } -
2758 cc += 2;
never executed (the execution status of this line is deduced): cc += 2;
-
2759 }
never executed: }
0
2760#endif -
2761 } -
2762 -
2763#ifdef SUPPORT_UCP -
2764/* Simple register allocation. TMP1 is preferred if possible. */ -
2765if (needstype || needsscript)
partially evaluated: needstype
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: needsscript
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2766 { -
2767 if (needschar && !charsaved)
never evaluated: needschar
never evaluated: !charsaved
0
2768 OP1(SLJIT_MOV, TMP3, 0, TMP1, 0);
never executed: sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
0
2769 add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23)));
-
2770 if (needschar)
never evaluated: needschar
0
2771 { -
2772 if (needstype)
never evaluated: needstype
0
2773 { -
2774 OP1(SLJIT_MOV, RETURN_ADDR, 0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (4), (0), (1), (0));
-
2775 typereg = RETURN_ADDR;
never executed (the execution status of this line is deduced): typereg = 4;
-
2776 }
never executed: }
0
2777 -
2778 if (needsscript)
never evaluated: needsscript
0
2779 scriptreg = TMP3;
never executed: scriptreg = 5;
0
2780 OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
-
2781 }
never executed: }
0
2782 else if (needstype && needsscript)
never evaluated: needstype
never evaluated: needsscript
0
2783 scriptreg = TMP3;
never executed: scriptreg = 5;
0
2784 /* In all other cases only one of them was specified, and that can goes to TMP1. */ -
2785 -
2786 if (needsscript)
never evaluated: needsscript
0
2787 { -
2788 if (scriptreg == TMP1)
never evaluated: scriptreg == 1
0
2789 { -
2790 OP1(SLJIT_MOV, scriptreg, 0, SLJIT_IMM, (sljit_w)PRIV(ucd_records) + SLJIT_OFFSETOF(ucd_record, script));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (scriptreg), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->script) - 0x10)));
-
2791 OP1(SLJIT_MOV_UB, scriptreg, 0, SLJIT_MEM2(scriptreg, TMP2), 3);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (scriptreg), (0), ((0x100 | (scriptreg) | ((3) << 4))), (3));
-
2792 }
never executed: }
0
2793 else -
2794 { -
2795 OP2(SLJIT_SHL, TMP2, 0, TMP2, 0, SLJIT_IMM, 3);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (3));
-
2796 OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, SLJIT_IMM, (sljit_w)PRIV(ucd_records) + SLJIT_OFFSETOF(ucd_record, script));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (3), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->script) - 0x10)));
-
2797 OP1(SLJIT_MOV_UB, scriptreg, 0, SLJIT_MEM1(TMP2), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (scriptreg), (0), ((0x100 | (3))), (0));
-
2798 }
never executed: }
0
2799 } -
2800 }
never executed: }
0
2801#endif -
2802 -
2803/* Generating code. */ -
2804cc = ccbegin;
executed (the execution status of this line is deduced): cc = ccbegin;
-
2805charoffset = 0;
executed (the execution status of this line is deduced): charoffset = 0;
-
2806numberofcmps = 0;
executed (the execution status of this line is deduced): numberofcmps = 0;
-
2807#ifdef SUPPORT_UCP -
2808typeoffset = 0;
executed (the execution status of this line is deduced): typeoffset = 0;
-
2809#endif -
2810 -
2811while (*cc != XCL_END)
evaluated: *cc != 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
2812 { -
2813 compares--;
executed (the execution status of this line is deduced): compares--;
-
2814 invertcmp = (compares == 0 && list != fallbacks);
partially evaluated: compares == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: list != fallbacks
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2815 jump = NULL;
executed (the execution status of this line is deduced): jump = ((void *)0);
-
2816 -
2817 if (*cc == XCL_SINGLE)
partially evaluated: *cc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2818 { -
2819 cc ++;
never executed (the execution status of this line is deduced): cc ++;
-
2820#ifdef SUPPORT_UTF -
2821 if (common->utf)
never evaluated: common->utf
0
2822 { -
2823 GETCHARINC(c, cc);
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
2824 }
never executed: }
0
2825 else -
2826#endif -
2827 c = *cc++;
never executed: c = *cc++;
0
2828 -
2829 if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE))
never evaluated: numberofcmps < 3
never evaluated: *cc == 1
never evaluated: *cc == 2
0
2830 { -
2831 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, c - charoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c - charoffset));
-
2832 COND_VALUE(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (numberofcmps == 0 ? 6 : 29), (3), (0), (0));
-
2833 numberofcmps++;
never executed (the execution status of this line is deduced): numberofcmps++;
-
2834 }
never executed: }
0
2835 else if (numberofcmps > 0)
never evaluated: numberofcmps > 0
0
2836 { -
2837 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, c - charoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c - charoffset));
-
2838 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2839 jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (1 ^ invertcmp));
-
2840 numberofcmps = 0;
never executed (the execution status of this line is deduced): numberofcmps = 0;
-
2841 }
never executed: }
0
2842 else -
2843 { -
2844 jump = CMP(SLJIT_C_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, c - charoffset);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (1), (0), (0x200), (c - charoffset));
-
2845 numberofcmps = 0;
never executed (the execution status of this line is deduced): numberofcmps = 0;
-
2846 }
never executed: }
0
2847 } -
2848 else if (*cc == XCL_RANGE)
partially evaluated: *cc == 2
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2849 { -
2850 cc ++;
executed (the execution status of this line is deduced): cc ++;
-
2851#ifdef SUPPORT_UTF -
2852 if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2853 { -
2854 GETCHARINC(c, cc);
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2855 }
executed: }
Execution Count:1
1
2856 else -
2857#endif -
2858 c = *cc++;
never executed: c = *cc++;
0
2859 SET_CHAR_OFFSET(c);
never executed: sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), ((c) - charoffset));
never executed: sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (charoffset - (c)));
partially evaluated: (c) != charoffset
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: (c) > charoffset
0-1
2860#ifdef SUPPORT_UTF -
2861 if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2862 { -
2863 GETCHARINC(c, cc);
never executed: }
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2864 }
executed: }
Execution Count:1
1
2865 else -
2866#endif -
2867 c = *cc++;
never executed: c = *cc++;
0
2868 if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE))
partially evaluated: numberofcmps < 3
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: *cc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: *cc == 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2869 { -
2870 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, c - charoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (c - charoffset));
-
2871 COND_VALUE(numberofcmps == 0 ? SLJIT_MOV : SLJIT_OR, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (numberofcmps == 0 ? 6 : 29), (3), (0), (5));
-
2872 numberofcmps++;
never executed (the execution status of this line is deduced): numberofcmps++;
-
2873 }
never executed: }
0
2874 else if (numberofcmps > 0)
partially evaluated: numberofcmps > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2875 { -
2876 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, c - charoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (c - charoffset));
-
2877 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5));
-
2878 jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (1 ^ invertcmp));
-
2879 numberofcmps = 0;
never executed (the execution status of this line is deduced): numberofcmps = 0;
-
2880 }
never executed: }
0
2881 else -
2882 { -
2883 jump = CMP(SLJIT_C_LESS_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, c - charoffset);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (5 ^ invertcmp), (1), (0), (0x200), (c - charoffset));
-
2884 numberofcmps = 0;
executed (the execution status of this line is deduced): numberofcmps = 0;
-
2885 }
executed: }
Execution Count:1
1
2886 } -
2887#ifdef SUPPORT_UCP -
2888 else -
2889 { -
2890 if (*cc == XCL_NOTPROP)
never evaluated: *cc == 4
0
2891 invertcmp ^= 0x1;
never executed: invertcmp ^= 0x1;
0
2892 cc++;
never executed (the execution status of this line is deduced): cc++;
-
2893 switch(*cc) -
2894 { -
2895 case PT_ANY: -
2896 if (list != fallbacks)
never evaluated: list != fallbacks
0
2897 { -
2898 if ((cc[-1] == XCL_NOTPROP && compares > 0) || (cc[-1] == XCL_PROP && compares == 0))
never evaluated: cc[-1] == 4
never evaluated: compares > 0
never evaluated: cc[-1] == 3
never evaluated: compares == 0
0
2899 continue;
never executed: continue;
0
2900 }
never executed: }
0
2901 else if (cc[-1] == XCL_NOTPROP)
never evaluated: cc[-1] == 4
0
2902 continue;
never executed: continue;
0
2903 jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
2904 break;
never executed: break;
0
2905 -
2906 case PT_LAMP: -
2907 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lu - typeoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Lu - typeoffset));
-
2908 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
2909 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Ll - typeoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Ll - typeoffset));
-
2910 COND_VALUE(SLJIT_OR, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29), (3), (0), (0));
-
2911 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lt - typeoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Lt - typeoffset));
-
2912 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
2913 jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (1 ^ invertcmp));
-
2914 break;
never executed: break;
0
2915 -
2916 case PT_GC: -
2917 c = PRIV(ucp_typerange)[(int)cc[1] * 2];
never executed (the execution status of this line is deduced): c = _pcre16_ucp_typerange[(int)cc[1] * 2];
-
2918 SET_TYPE_OFFSET(c);
never executed: sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((c) - typeoffset));
never executed: sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (c)));
never evaluated: (c) != typeoffset
never evaluated: (c) > typeoffset
0
2919 jump = CMP(SLJIT_C_LESS_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, PRIV(ucp_typerange)[(int)cc[1] * 2 + 1] - c);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (5 ^ invertcmp), (typereg), (0), (0x200), (_pcre16_ucp_typerange[(int)cc[1] * 2 + 1] - c));
-
2920 break;
never executed: break;
0
2921 -
2922 case PT_PC: -
2923 jump = CMP(SLJIT_C_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, (int)cc[1] - typeoffset);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (typereg), (0), (0x200), ((int)cc[1] - typeoffset));
-
2924 break;
never executed: break;
0
2925 -
2926 case PT_SC: -
2927 jump = CMP(SLJIT_C_EQUAL ^ invertcmp, scriptreg, 0, SLJIT_IMM, (int)cc[1]);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (scriptreg), (0), (0x200), ((int)cc[1]));
-
2928 break;
never executed: break;
0
2929 -
2930 case PT_SPACE: -
2931 case PT_PXSPACE: -
2932 if (*cc == PT_SPACE)
never evaluated: *cc == 6
0
2933 { -
2934 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0));
-
2935 jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 11 - charoffset);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (11 - charoffset));
-
2936 }
never executed: }
0
2937 SET_CHAR_OFFSET(9);
never executed: sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), ((9) - charoffset));
never executed: sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (charoffset - (9)));
never evaluated: (9) != charoffset
never evaluated: (9) > charoffset
0
2938 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 13 - 9);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (13 - 9));
-
2939 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (5));
-
2940 if (*cc == PT_SPACE)
never evaluated: *cc == 6
0
2941 JUMPHERE(jump);
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
2942 -
2943 SET_TYPE_OFFSET(ucp_Zl);
never executed: sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Zl) - typeoffset));
never executed: sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Zl)));
never evaluated: (ucp_Zl) != typeoffset
never evaluated: (ucp_Zl) > typeoffset
0
2944 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Zs - ucp_Zl);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_Zs - ucp_Zl));
-
2945 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5));
-
2946 jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (1 ^ invertcmp));
-
2947 break;
never executed: break;
0
2948 -
2949 case PT_WORD: -
2950 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, CHAR_UNDERSCORE - charoffset);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\137' - charoffset));
-
2951 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
2952 /* ... fall through */ -
2953 -
2954 case PT_ALNUM:
code before this statement never executed: case 5:
0
2955 SET_TYPE_OFFSET(ucp_Ll);
never executed: sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Ll) - typeoffset));
never executed: sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Ll)));
never evaluated: (ucp_Ll) != typeoffset
never evaluated: (ucp_Ll) > typeoffset
0
2956 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_Lu - ucp_Ll);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_Lu - ucp_Ll));
-
2957 COND_VALUE((*cc == PT_ALNUM) ? SLJIT_MOV : SLJIT_OR, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, ((*cc == 5) ? 6 : 29), (3), (0), (5));
-
2958 SET_TYPE_OFFSET(ucp_Nd);
never executed: sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Nd) - typeoffset));
never executed: sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Nd)));
never evaluated: (ucp_Nd) != typeoffset
never evaluated: (ucp_Nd) > typeoffset
0
2959 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, typereg, 0, SLJIT_IMM, ucp_No - ucp_Nd);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_No - ucp_Nd));
-
2960 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_LESS_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5));
-
2961 jump = JUMP(SLJIT_C_NOT_ZERO ^ invertcmp);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (1 ^ invertcmp));
-
2962 break;
never executed: break;
0
2963 } -
2964 cc += 2;
never executed (the execution status of this line is deduced): cc += 2;
-
2965 }
never executed: }
0
2966#endif -
2967 -
2968 if (jump != NULL)
partially evaluated: jump != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2969 add_jump(compiler, compares > 0 ? list : fallbacks, jump);
executed: add_jump(compiler, compares > 0 ? list : fallbacks, jump);
Execution Count:1
1
2970 }
executed: }
Execution Count:1
1
2971 -
2972if (found != NULL)
partially evaluated: found != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2973 set_jumps(found, LABEL());
never executed: set_jumps(found, sljit_emit_label(compiler));
0
2974}
executed: }
Execution Count:1
1
2975 -
2976#undef SET_TYPE_OFFSET -
2977#undef SET_CHAR_OFFSET -
2978 -
2979#endif -
2980 -
2981static pcre_uchar *compile_char1_hotpath(compiler_common *common, pcre_uchar type, pcre_uchar *cc, jump_list **fallbacks) -
2982{ -
2983DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
2984int length;
executed (the execution status of this line is deduced): int length;
-
2985unsigned int c, oc, bit;
executed (the execution status of this line is deduced): unsigned int c, oc, bit;
-
2986compare_context context;
executed (the execution status of this line is deduced): compare_context context;
-
2987struct sljit_jump *jump[4];
executed (the execution status of this line is deduced): struct sljit_jump *jump[4];
-
2988#ifdef SUPPORT_UTF -
2989struct sljit_label *label;
executed (the execution status of this line is deduced): struct sljit_label *label;
-
2990#ifdef SUPPORT_UCP -
2991pcre_uchar propdata[5];
executed (the execution status of this line is deduced): pcre_uchar propdata[5];
-
2992#endif -
2993#endif -
2994 -
2995switch(type) -
2996 { -
2997 case OP_SOD: -
2998 OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
2999 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
3000 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (1), (0)));
-
3001 return cc;
never executed: return cc;
0
3002 -
3003 case OP_SOM: -
3004 OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
3005 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
3006 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, TMP1, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (1), (0)));
-
3007 return cc;
never executed: return cc;
0
3008 -
3009 case OP_NOT_WORD_BOUNDARY: -
3010 case OP_WORD_BOUNDARY: -
3011 add_jump(compiler, &common->wordboundary, JUMP(SLJIT_FAST_CALL));
executed (the execution status of this line is deduced): add_jump(compiler, &common->wordboundary, sljit_emit_jump(compiler, (23)));
-
3012 add_jump(compiler, fallbacks, JUMP(type == OP_NOT_WORD_BOUNDARY ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_WORD_BOUNDARY ? 1 : 0)));
-
3013 return cc;
executed: return cc;
Execution Count:1
1
3014 -
3015 case OP_NOT_DIGIT: -
3016 case OP_DIGIT: -
3017 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3018 read_char8_type(common);
never executed (the execution status of this line is deduced): read_char8_type(common);
-
3019 OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_digit);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x04));
-
3020 add_jump(compiler, fallbacks, JUMP(type == OP_DIGIT ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_DIGIT ? 0 : 1)));
-
3021 return cc;
never executed: return cc;
0
3022 -
3023 case OP_NOT_WHITESPACE: -
3024 case OP_WHITESPACE: -
3025 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3026 read_char8_type(common);
never executed (the execution status of this line is deduced): read_char8_type(common);
-
3027 OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_space);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x01));
-
3028 add_jump(compiler, fallbacks, JUMP(type == OP_WHITESPACE ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_WHITESPACE ? 0 : 1)));
-
3029 return cc;
never executed: return cc;
0
3030 -
3031 case OP_NOT_WORDCHAR: -
3032 case OP_WORDCHAR: -
3033 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3034 read_char8_type(common);
never executed (the execution status of this line is deduced): read_char8_type(common);
-
3035 OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, ctype_word);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x10));
-
3036 add_jump(compiler, fallbacks, JUMP(type == OP_WORDCHAR ? SLJIT_C_ZERO : SLJIT_C_NOT_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_WORDCHAR ? 0 : 1)));
-
3037 return cc;
never executed: return cc;
0
3038 -
3039 case OP_ANY: -
3040 check_input_end(common, fallbacks);
executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3041 read_char(common);
executed (the execution status of this line is deduced): read_char(common);
-
3042 if (common->nltype == NLTYPE_FIXED && common->newline > 255)
evaluated: common->nltype == 0
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:1
evaluated: common->newline > 255
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
1-4
3043 { -
3044 jump[0] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff);
executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff));
-
3045 jump[1] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
executed (the execution status of this line is deduced): jump[1] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
3046 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
3047 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, common->newline & 0xff));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (common->newline & 0xff)));
-
3048 JUMPHERE(jump[1]);
executed (the execution status of this line is deduced): sljit_set_label((jump[1]), sljit_emit_label(compiler));
-
3049 JUMPHERE(jump[0]);
executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3050 }
executed: }
Execution Count:2
2
3051 else -
3052 check_newlinechar(common, common->nltype, fallbacks, TRUE);
executed: check_newlinechar(common, common->nltype, fallbacks, 1);
Execution Count:3
3
3053 return cc;
executed: return cc;
Execution Count:5
5
3054 -
3055 case OP_ALLANY: -
3056 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3057#ifdef SUPPORT_UTF -
3058 if (common->utf)
never evaluated: common->utf
0
3059 { -
3060 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
3061 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
3062#ifdef COMPILE_PCRE8 -
3063 jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0); -
3064 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)PRIV(utf8_table4) - 0xc0); -
3065 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
3066#else /* COMPILE_PCRE8 */ -
3067#ifdef COMPILE_PCRE16 -
3068 jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xd800);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800));
-
3069 OP2(SLJIT_AND, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xfc00);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00));
-
3070 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, 0xd800);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800));
-
3071 COND_VALUE(SLJIT_MOV, TMP1, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (1), (0), (0));
-
3072 OP2(SLJIT_SHL, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1));
-
3073 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0));
-
3074#endif /* COMPILE_PCRE16 */ -
3075#endif /* COMPILE_PCRE8 */ -
3076 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3077 return cc;
never executed: return cc;
0
3078 } -
3079#endif -
3080 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
3081 return cc;
never executed: return cc;
0
3082 -
3083 case OP_ANYBYTE: -
3084 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3085 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
3086 return cc;
never executed: return cc;
0
3087 -
3088#ifdef SUPPORT_UTF -
3089#ifdef SUPPORT_UCP -
3090 case OP_NOTPROP: -
3091 case OP_PROP: -
3092 propdata[0] = 0;
never executed (the execution status of this line is deduced): propdata[0] = 0;
-
3093 propdata[1] = type == OP_NOTPROP ? XCL_NOTPROP : XCL_PROP;
never evaluated: type == OP_NOTPROP
0
3094 propdata[2] = cc[0];
never executed (the execution status of this line is deduced): propdata[2] = cc[0];
-
3095 propdata[3] = cc[1];
never executed (the execution status of this line is deduced): propdata[3] = cc[1];
-
3096 propdata[4] = XCL_END;
never executed (the execution status of this line is deduced): propdata[4] = 0;
-
3097 compile_xclass_hotpath(common, propdata, fallbacks);
never executed (the execution status of this line is deduced): compile_xclass_hotpath(common, propdata, fallbacks);
-
3098 return cc + 2;
never executed: return cc + 2;
0
3099#endif -
3100#endif -
3101 -
3102 case OP_ANYNL: -
3103 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3104 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3105 jump[0] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\015'));
-
3106 jump[1] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): jump[1] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
3107 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
-
3108 jump[2] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
never executed (the execution status of this line is deduced): jump[2] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\012'));
-
3109 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1)));
-
3110 jump[3] = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump[3] = sljit_emit_jump(compiler, (22));
-
3111 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3112 check_newlinechar(common, common->bsr_nltype, fallbacks, FALSE);
never executed (the execution status of this line is deduced): check_newlinechar(common, common->bsr_nltype, fallbacks, 0);
-
3113 JUMPHERE(jump[1]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[1]), sljit_emit_label(compiler));
-
3114 JUMPHERE(jump[2]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[2]), sljit_emit_label(compiler));
-
3115 JUMPHERE(jump[3]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[3]), sljit_emit_label(compiler));
-
3116 return cc;
never executed: return cc;
0
3117 -
3118 case OP_NOT_HSPACE: -
3119 case OP_HSPACE: -
3120 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3121 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3122 add_jump(compiler, &common->hspace, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->hspace, sljit_emit_jump(compiler, (23)));
-
3123 add_jump(compiler, fallbacks, JUMP(type == OP_NOT_HSPACE ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_HSPACE ? 1 : 0)));
-
3124 return cc;
never executed: return cc;
0
3125 -
3126 case OP_NOT_VSPACE: -
3127 case OP_VSPACE: -
3128 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3129 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3130 add_jump(compiler, &common->vspace, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->vspace, sljit_emit_jump(compiler, (23)));
-
3131 add_jump(compiler, fallbacks, JUMP(type == OP_NOT_VSPACE ? SLJIT_C_NOT_ZERO : SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_VSPACE ? 1 : 0)));
-
3132 return cc;
never executed: return cc;
0
3133 -
3134#ifdef SUPPORT_UCP -
3135 case OP_EXTUNI: -
3136 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3137 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3138 add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23)));
-
3139 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Mc);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Mc));
-
3140 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS_EQUAL, TMP1, 0, SLJIT_IMM, ucp_Mn - ucp_Mc));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (5), (1), (0), (0x200), (ucp_Mn - ucp_Mc)));
-
3141 -
3142 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
3143 jump[0] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
3144 OP1(SLJIT_MOV, TMP3, 0, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (6), (0));
-
3145 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3146 add_jump(compiler, &common->getucd, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23)));
-
3147 OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, ucp_Mc);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Mc));
-
3148 CMPTO(SLJIT_C_LESS_EQUAL, TMP1, 0, SLJIT_IMM, ucp_Mn - ucp_Mc, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (5), (1), (0), (0x200), (ucp_Mn - ucp_Mc)), (label));
-
3149 -
3150 OP1(SLJIT_MOV, STR_PTR, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), (5), (0));
-
3151 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3152 return cc;
never executed: return cc;
0
3153#endif -
3154 -
3155 case OP_EODN: -
3156 jump[0] = CMP(SLJIT_C_GREATER_EQUAL, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0));
-
3157 if (common->nltype == NLTYPE_FIXED && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
3158 { -
3159 OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1)));
-
3160 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1)));
-
3161 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (7), (0)));
-
3162 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1)));
-
3163 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)));
-
3164 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)));
-
3165 }
never executed: }
0
3166 else if (common->nltype == NLTYPE_FIXED)
never evaluated: common->nltype == 0
0
3167 { -
3168 OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((1) << 1)));
-
3169 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1)));
-
3170 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (7), (0)));
-
3171 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (common->newline)));
-
3172 }
never executed: }
0
3173 else -
3174 { -
3175 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1)));
-
3176 jump[1] = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR);
never executed (the execution status of this line is deduced): jump[1] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\015'));
-
3177 OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1)));
-
3178 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP2, 0, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (3), (0), (7), (0));
-
3179 jump[2] = JUMP(SLJIT_C_GREATER);
never executed (the execution status of this line is deduced): jump[2] = sljit_emit_jump(compiler, (4));
-
3180 add_jump(compiler, fallbacks, JUMP(SLJIT_C_LESS));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (2)));
-
3181 /* Equal. */ -
3182 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((1) << 1)));
-
3183 jump[3] = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL);
never executed (the execution status of this line is deduced): jump[3] = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\012'));
-
3184 add_jump(compiler, fallbacks, JUMP(SLJIT_JUMP));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (22)));
-
3185 -
3186 JUMPHERE(jump[1]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[1]), sljit_emit_label(compiler));
-
3187 if (common->nltype == NLTYPE_ANYCRLF)
never evaluated: common->nltype == 2
0
3188 { -
3189 OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((1) << 1)));
-
3190 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS, TMP2, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (3), (0), (7), (0)));
-
3191 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\012')));
-
3192 }
never executed: }
0
3193 else -
3194 { -
3195 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (6), (0));
-
3196 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3197 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (7), (0)));
-
3198 add_jump(compiler, &common->anynewline, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->anynewline, sljit_emit_jump(compiler, (23)));
-
3199 add_jump(compiler, fallbacks, JUMP(SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0)));
-
3200 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w))));
-
3201 }
never executed: }
0
3202 JUMPHERE(jump[2]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[2]), sljit_emit_label(compiler));
-
3203 JUMPHERE(jump[3]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[3]), sljit_emit_label(compiler));
-
3204 }
never executed: }
0
3205 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3206 return cc;
never executed: return cc;
0
3207 -
3208 case OP_EOD: -
3209 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (7), (0)));
-
3210 return cc;
never executed: return cc;
0
3211 -
3212 case OP_CIRC: -
3213 OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (9), (0));
-
3214 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, begin));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
3215 add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER, STR_PTR, 0, TMP1, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (1), (0)));
-
3216 OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, notbol));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->notbol) - 0x10)));
-
3217 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
3218 return cc;
never executed: return cc;
0
3219 -
3220 case OP_CIRCM: -
3221 OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (9), (0));
-
3222 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, begin));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
3223 jump[1] = CMP(SLJIT_C_GREATER, STR_PTR, 0, TMP1, 0);
never executed (the execution status of this line is deduced): jump[1] = sljit_emit_cmp(compiler, (4), (6), (0), (1), (0));
-
3224 OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, notbol));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->notbol) - 0x10)));
-
3225 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
3226 jump[0] = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_jump(compiler, (22));
-
3227 JUMPHERE(jump[1]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[1]), sljit_emit_label(compiler));
-
3228 -
3229 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, STR_PTR, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (6), (0), (7), (0)));
-
3230 if (common->nltype == NLTYPE_FIXED && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
3231 { -
3232 OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), (6), (0), (0x200), (((2) << 1)));
-
3233 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS, TMP2, 0, TMP1, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (3), (0), (1), (0)));
-
3234 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-2));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-2) << 1)));
-
3235 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((-1) << 1)));
-
3236 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)));
-
3237 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)));
-
3238 }
never executed: }
0
3239 else -
3240 { -
3241 skip_char_back(common);
never executed (the execution status of this line is deduced): skip_char_back(common);
-
3242 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3243 check_newlinechar(common, common->nltype, fallbacks, FALSE);
never executed (the execution status of this line is deduced): check_newlinechar(common, common->nltype, fallbacks, 0);
-
3244 }
never executed: }
0
3245 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3246 return cc;
never executed: return cc;
0
3247 -
3248 case OP_DOLL: -
3249 OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (9), (0));
-
3250 OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, noteol));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->noteol) - 0x10)));
-
3251 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
3252 -
3253 if (!common->endonly)
never evaluated: !common->endonly
0
3254 compile_char1_hotpath(common, OP_EODN, cc, fallbacks);
never executed: compile_char1_hotpath(common, OP_EODN, cc, fallbacks);
0
3255 else -
3256 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)));
0
3257 return cc;
never executed: return cc;
0
3258 -
3259 case OP_DOLLM: -
3260 jump[1] = CMP(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0);
never executed (the execution status of this line is deduced): jump[1] = sljit_emit_cmp(compiler, (2), (6), (0), (7), (0));
-
3261 OP1(SLJIT_MOV, TMP2, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (9), (0));
-
3262 OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(jit_arguments, noteol));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->noteol) - 0x10)));
-
3263 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
3264 jump[0] = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_jump(compiler, (22));
-
3265 JUMPHERE(jump[1]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[1]), sljit_emit_label(compiler));
-
3266 -
3267 if (common->nltype == NLTYPE_FIXED && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
3268 { -
3269 OP2(SLJIT_ADD, TMP2, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(2));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1)));
-
3270 add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER, TMP2, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (3), (0), (7), (0)));
-
3271 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1)));
-
3272 OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1)));
-
3273 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)));
-
3274 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)));
-
3275 }
never executed: }
0
3276 else -
3277 { -
3278 peek_char(common);
never executed (the execution status of this line is deduced): peek_char(common);
-
3279 check_newlinechar(common, common->nltype, fallbacks, FALSE);
never executed (the execution status of this line is deduced): check_newlinechar(common, common->nltype, fallbacks, 0);
-
3280 }
never executed: }
0
3281 JUMPHERE(jump[0]);
never executed (the execution status of this line is deduced): sljit_set_label((jump[0]), sljit_emit_label(compiler));
-
3282 return cc;
never executed: return cc;
0
3283 -
3284 case OP_CHAR: -
3285 case OP_CHARI: -
3286 length = 1;
executed (the execution status of this line is deduced): length = 1;
-
3287#ifdef SUPPORT_UTF -
3288 if (common->utf && HAS_EXTRALEN(*cc)) length += GET_EXTRALEN(*cc);
never executed: length += 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: (((*cc) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
3289#endif -
3290 if (type == OP_CHAR || !char_has_othercase(common, cc) || char_get_othercase_bit(common, cc) != 0)
partially evaluated: type == OP_CHAR
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
never evaluated: !char_has_othercase(common, cc)
never evaluated: char_get_othercase_bit(common, cc) != 0
0-2
3291 { -
3292 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(length));
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((length) << 1)));
-
3293 add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0)));
-
3294 -
3295 context.length = IN_UCHARS(length);
executed (the execution status of this line is deduced): context.length = ((length) << 1);
-
3296 context.sourcereg = -1;
executed (the execution status of this line is deduced): context.sourcereg = -1;
-
3297#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
3298 context.ucharptr = 0;
executed (the execution status of this line is deduced): context.ucharptr = 0;
-
3299#endif -
3300 return byte_sequence_compare(common, type == OP_CHARI, cc, &context, fallbacks);
executed: return byte_sequence_compare(common, type == OP_CHARI, cc, &context, fallbacks);
Execution Count:2
2
3301 } -
3302 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3303 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3304#ifdef SUPPORT_UTF -
3305 if (common->utf)
never evaluated: common->utf
0
3306 { -
3307 GETCHAR(c, cc);
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
3308 }
never executed: }
0
3309 else -
3310#endif -
3311 c = *cc;
never executed: c = *cc;
0
3312 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, c);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c));
-
3313 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
3314 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_IMM, char_othercase(common, c));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (char_othercase(common, c)));
-
3315 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
3316 add_jump(compiler, fallbacks, JUMP(SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0)));
-
3317 return cc + length;
never executed: return cc + length;
0
3318 -
3319 case OP_NOT: -
3320 case OP_NOTI: -
3321 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3322 length = 1;
never executed (the execution status of this line is deduced): length = 1;
-
3323#ifdef SUPPORT_UTF -
3324 if (common->utf)
never evaluated: common->utf
0
3325 { -
3326#ifdef COMPILE_PCRE8 -
3327 c = *cc; -
3328 if (c < 128) -
3329 { -
3330 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(STR_PTR), 0); -
3331 if (type == OP_NOT || !char_has_othercase(common, cc)) -
3332 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c)); -
3333 else -
3334 { -
3335 /* Since UTF8 code page is fixed, we know that c is in [a-z] or [A-Z] range. */ -
3336 OP2(SLJIT_OR, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x20); -
3337 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, c | 0x20)); -
3338 } -
3339 /* Skip the variable-length character. */ -
3340 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); -
3341 jump[0] = CMP(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, 0xc0); -
3342 OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)PRIV(utf8_table4) - 0xc0); -
3343 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); -
3344 JUMPHERE(jump[0]); -
3345 return cc + 1; -
3346 } -
3347 else -
3348#endif /* COMPILE_PCRE8 */ -
3349 { -
3350 GETCHARLEN(c, cc, length);
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
3351 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3352 } -
3353 }
never executed: }
0
3354 else -
3355#endif /* SUPPORT_UTF */ -
3356 { -
3357 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3358 c = *cc;
never executed (the execution status of this line is deduced): c = *cc;
-
3359 }
never executed: }
0
3360 -
3361 if (type == OP_NOT || !char_has_othercase(common, cc))
never evaluated: type == OP_NOT
never evaluated: !char_has_othercase(common, cc)
0
3362 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c)));
0
3363 else -
3364 { -
3365 oc = char_othercase(common, c);
never executed (the execution status of this line is deduced): oc = char_othercase(common, c);
-
3366 bit = c ^ oc;
never executed (the execution status of this line is deduced): bit = c ^ oc;
-
3367 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
3368 { -
3369 OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, bit);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (bit));
-
3370 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c | bit));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c | bit)));
-
3371 }
never executed: }
0
3372 else -
3373 { -
3374 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, c));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c)));
-
3375 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, oc));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (oc)));
-
3376 }
never executed: }
0
3377 } -
3378 return cc + 1;
never executed: return cc + 1;
0
3379 -
3380 case OP_CLASS: -
3381 case OP_NCLASS: -
3382 check_input_end(common, fallbacks);
never executed (the execution status of this line is deduced): check_input_end(common, fallbacks);
-
3383 read_char(common);
never executed (the execution status of this line is deduced): read_char(common);
-
3384#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 -
3385 jump[0] = NULL;
never executed (the execution status of this line is deduced): jump[0] = ((void *)0);
-
3386#ifdef COMPILE_PCRE8 -
3387 /* This check only affects 8 bit mode. In other modes, we -
3388 always need to compare the value with 255. */ -
3389 if (common->utf) -
3390#endif /* COMPILE_PCRE8 */ -
3391 { -
3392 jump[0] = CMP(SLJIT_C_GREATER, TMP1, 0, SLJIT_IMM, 255);
never executed (the execution status of this line is deduced): jump[0] = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255));
-
3393 if (type == OP_CLASS)
never evaluated: type == OP_CLASS
0
3394 { -
3395 add_jump(compiler, fallbacks, jump[0]);
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, jump[0]);
-
3396 jump[0] = NULL;
never executed (the execution status of this line is deduced): jump[0] = ((void *)0);
-
3397 }
never executed: }
0
3398 } -
3399#endif /* SUPPORT_UTF || !COMPILE_PCRE8 */ -
3400 OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7));
-
3401 OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3));
-
3402 OP1(SLJIT_MOV_UB, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_w)cc);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), ((sljit_w)cc));
-
3403 OP2(SLJIT_SHL, TMP2, 0, SLJIT_IMM, 1, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0));
-
3404 OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0));
-
3405 add_jump(compiler, fallbacks, JUMP(SLJIT_C_ZERO));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0)));
-
3406#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 -
3407 if (jump[0] != NULL)
never evaluated: jump[0] != ((void *)0)
0
3408 JUMPHERE(jump[0]);
never executed: sljit_set_label((jump[0]), sljit_emit_label(compiler));
0
3409#endif /* SUPPORT_UTF || !COMPILE_PCRE8 */ -
3410 return cc + 32 / sizeof(pcre_uchar);
never executed: return cc + 32 / sizeof(pcre_uchar);
0
3411 -
3412#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
3413 case OP_XCLASS: -
3414 compile_xclass_hotpath(common, cc + LINK_SIZE, fallbacks);
executed (the execution status of this line is deduced): compile_xclass_hotpath(common, cc + 1, fallbacks);
-
3415 return cc + GET(cc, 0) - 1;
executed: return cc + (cc[0]) - 1;
Execution Count:1
1
3416#endif -
3417 -
3418 case OP_REVERSE: -
3419 length = GET(cc, 0);
never executed (the execution status of this line is deduced): length = (cc[0]);
-
3420 SLJIT_ASSERT(length > 0);
never executed: }
never evaluated: 0
0
3421 OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
3422#ifdef SUPPORT_UTF -
3423 if (common->utf)
never evaluated: common->utf
0
3424 { -
3425 OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
3426 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, length);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (length));
-
3427 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
3428 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS_EQUAL, STR_PTR, 0, TMP3, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (5), (6), (0), (5), (0)));
-
3429 skip_char_back(common);
never executed (the execution status of this line is deduced): skip_char_back(common);
-
3430 OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, TMP2, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (1));
-
3431 JUMPTO(SLJIT_C_NOT_ZERO, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (1)), (label));
-
3432 return cc + LINK_SIZE;
never executed: return cc + 1;
0
3433 } -
3434#endif -
3435 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, begin));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)));
-
3436 OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(length));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((length) << 1)));
-
3437 add_jump(compiler, fallbacks, CMP(SLJIT_C_LESS, STR_PTR, 0, TMP1, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (6), (0), (1), (0)));
-
3438 return cc + LINK_SIZE;
never executed: return cc + 1;
0
3439 } -
3440SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
3441return cc;
never executed: return cc;
0
3442} -
3443 -
3444static SLJIT_INLINE pcre_uchar *compile_charn_hotpath(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, jump_list **fallbacks) -
3445{ -
3446/* This function consumes at least one input character. */ -
3447/* To decrease the number of length checks, we try to concatenate the fixed length character sequences. */ -
3448DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3449pcre_uchar *ccbegin = cc;
executed (the execution status of this line is deduced): pcre_uchar *ccbegin = cc;
-
3450compare_context context;
executed (the execution status of this line is deduced): compare_context context;
-
3451int size;
executed (the execution status of this line is deduced): int size;
-
3452 -
3453context.length = 0;
executed (the execution status of this line is deduced): context.length = 0;
-
3454do -
3455 { -
3456 if (cc >= ccend)
evaluated: cc >= ccend
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:7
7
3457 break;
executed: break;
Execution Count:7
7
3458 -
3459 if (*cc == OP_CHAR)
partially evaluated: *cc == OP_CHAR
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
3460 { -
3461 size = 1;
executed (the execution status of this line is deduced): size = 1;
-
3462#ifdef SUPPORT_UTF -
3463 if (common->utf && HAS_EXTRALEN(cc[1]))
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
partially evaluated: (((cc[1]) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
0-7
3464 size += GET_EXTRALEN(cc[1]);
never executed: size += 1;
0
3465#endif -
3466 }
executed: }
Execution Count:7
7
3467 else if (*cc == OP_CHARI)
never evaluated: *cc == OP_CHARI
0
3468 { -
3469 size = 1;
never executed (the execution status of this line is deduced): size = 1;
-
3470#ifdef SUPPORT_UTF -
3471 if (common->utf)
never evaluated: common->utf
0
3472 { -
3473 if (char_has_othercase(common, cc + 1) && char_get_othercase_bit(common, cc + 1) == 0)
never evaluated: char_has_othercase(common, cc + 1)
never evaluated: char_get_othercase_bit(common, cc + 1) == 0
0
3474 size = 0;
never executed: size = 0;
0
3475 else if (HAS_EXTRALEN(cc[1]))
never evaluated: (((cc[1]) & 0xfc00) == 0xd800)
0
3476 size += GET_EXTRALEN(cc[1]);
never executed: size += 1;
0
3477 } -
3478 else -
3479#endif -
3480 if (char_has_othercase(common, cc + 1) && char_get_othercase_bit(common, cc + 1) == 0)
never evaluated: char_has_othercase(common, cc + 1)
never evaluated: char_get_othercase_bit(common, cc + 1) == 0
0
3481 size = 0;
never executed: size = 0;
0
3482 } -
3483 else -
3484 size = 0;
never executed: size = 0;
0
3485 -
3486 cc += 1 + size;
executed (the execution status of this line is deduced): cc += 1 + size;
-
3487 context.length += IN_UCHARS(size);
executed (the execution status of this line is deduced): context.length += ((size) << 1);
-
3488 }
executed: }
Execution Count:7
7
3489while (size > 0 && context.length <= 128);
partially evaluated: size > 0
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
partially evaluated: context.length <= 128
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
3490 -
3491cc = ccbegin;
executed (the execution status of this line is deduced): cc = ccbegin;
-
3492if (context.length > 0)
partially evaluated: context.length > 0
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
3493 { -
3494 /* We have a fixed-length byte sequence. */ -
3495 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, context.length);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (context.length));
-
3496 add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0));
executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0)));
-
3497 -
3498 context.sourcereg = -1;
executed (the execution status of this line is deduced): context.sourcereg = -1;
-
3499#if defined SLJIT_UNALIGNED && SLJIT_UNALIGNED -
3500 context.ucharptr = 0;
executed (the execution status of this line is deduced): context.ucharptr = 0;
-
3501#endif -
3502 do cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, fallbacks); while (context.length > 0);
executed: cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, fallbacks);
Execution Count:7
partially evaluated: context.length > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
0-7
3503 return cc;
executed: return cc;
Execution Count:7
7
3504 } -
3505 -
3506/* A non-fixed length character will be checked if length == 0. */ -
3507return compile_char1_hotpath(common, *cc, cc + 1, fallbacks);
never executed: return compile_char1_hotpath(common, *cc, cc + 1, fallbacks);
0
3508} -
3509 -
3510static struct sljit_jump *compile_ref_checks(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks) -
3511{ -
3512DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3513int offset = GET2(cc, 1) << 1;
never executed (the execution status of this line is deduced): int offset = cc[1] << 1;
-
3514 -
3515OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
3516if (!common->jscript_compat)
never evaluated: !common->jscript_compat
0
3517 { -
3518 if (fallbacks == NULL)
never evaluated: fallbacks == ((void *)0)
0
3519 { -
3520 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))));
-
3521 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (0));
-
3522 OP2(SLJIT_SUB | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
-
3523 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0));
-
3524 return JUMP(SLJIT_C_NOT_ZERO);
never executed: return sljit_emit_jump(compiler, (1));
0
3525 } -
3526 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))));
-
3527 }
never executed: }
0
3528return CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed: return sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
0
3529} -
3530 -
3531/* Forward definitions. */ -
3532static void compile_hotpath(compiler_common *, pcre_uchar *, pcre_uchar *, fallback_common *); -
3533static void compile_fallbackpath(compiler_common *, struct fallback_common *); -
3534 -
3535#define PUSH_FALLBACK(size, ccstart, error) \ -
3536 do \ -
3537 { \ -
3538 fallback = sljit_alloc_memory(compiler, (size)); \ -
3539 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler))) \ -
3540 return error; \ -
3541 memset(fallback, 0, size); \ -
3542 fallback->prev = parent->top; \ -
3543 fallback->cc = (ccstart); \ -
3544 parent->top = fallback; \ -
3545 } \ -
3546 while (0) -
3547 -
3548#define PUSH_FALLBACK_NOVALUE(size, ccstart) \ -
3549 do \ -
3550 { \ -
3551 fallback = sljit_alloc_memory(compiler, (size)); \ -
3552 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler))) \ -
3553 return; \ -
3554 memset(fallback, 0, size); \ -
3555 fallback->prev = parent->top; \ -
3556 fallback->cc = (ccstart); \ -
3557 parent->top = fallback; \ -
3558 } \ -
3559 while (0) -
3560 -
3561#define FALLBACK_AS(type) ((type*)fallback) -
3562 -
3563static pcre_uchar *compile_ref_hotpath(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks, BOOL withchecks, BOOL emptyfail) -
3564{ -
3565DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3566int offset = GET2(cc, 1) << 1;
never executed (the execution status of this line is deduced): int offset = cc[1] << 1;
-
3567struct sljit_jump *jump = NULL;
never executed (the execution status of this line is deduced): struct sljit_jump *jump = ((void *)0);
-
3568 -
3569OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
3570if (withchecks && !common->jscript_compat)
never evaluated: withchecks
never evaluated: !common->jscript_compat
0
3571 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))));
0
3572 -
3573#if defined SUPPORT_UTF && defined SUPPORT_UCP -
3574if (common->utf && *cc == OP_REFI)
never evaluated: common->utf
never evaluated: *cc == OP_REFI
0
3575 { -
3576 SLJIT_ASSERT(TMP1 == SLJIT_TEMPORARY_REG1 && STACK_TOP == SLJIT_TEMPORARY_REG2 && TMP2 == SLJIT_TEMPORARY_REG3);
never executed: }
never evaluated: 0
0
3577 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
-
3578 if (withchecks)
never evaluated: withchecks
0
3579 jump = CMP(SLJIT_C_EQUAL, TMP1, 0, TMP2, 0);
never executed: jump = sljit_emit_cmp(compiler, (0), (1), (0), (3), (0));
0
3580 -
3581 /* Needed to save important temporary registers. */ -
3582 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (2), (0));
-
3583 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG2, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), (9), (0));
-
3584 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_TEMPORARY_REG2), SLJIT_OFFSETOF(jit_arguments, ptr), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((sljit_w)(&((jit_arguments*)0x10)->ptr) - 0x10)), (6), (0));
-
3585 sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_utf_caselesscmp));
never executed (the execution status of this line is deduced): sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_utf_caselesscmp));
-
3586 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w))));
-
3587 add_jump(compiler, fallbacks, CMP(SLJIT_C_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0)));
-
3588 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_RETURN_REG, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), (1), (0));
-
3589 }
never executed: }
0
3590else -
3591#endif /* SUPPORT_UTF && SUPPORT_UCP */ -
3592 { -
3593 OP2(SLJIT_SUB | SLJIT_SET_E, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (1), (0));
-
3594 if (withchecks)
never evaluated: withchecks
0
3595 jump = JUMP(SLJIT_C_ZERO);
never executed: jump = sljit_emit_jump(compiler, (0));
0
3596 OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (3), (0));
-
3597 -
3598 add_jump(compiler, fallbacks, CMP(SLJIT_C_GREATER, STR_PTR, 0, STR_END, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0)));
-
3599 add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, sljit_emit_jump(compiler, (23)));
-
3600 add_jump(compiler, fallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
3601 }
never executed: }
0
3602 -
3603if (jump != NULL)
never evaluated: jump != ((void *)0)
0
3604 { -
3605 if (emptyfail)
never evaluated: emptyfail
0
3606 add_jump(compiler, fallbacks, jump);
never executed: add_jump(compiler, fallbacks, jump);
0
3607 else -
3608 JUMPHERE(jump);
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
3609 } -
3610return cc + 1 + IMM2_SIZE;
never executed: return cc + 1 + 1;
0
3611} -
3612 -
3613static SLJIT_INLINE pcre_uchar *compile_ref_iterator_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
3614{ -
3615DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3616fallback_common *fallback;
never executed (the execution status of this line is deduced): fallback_common *fallback;
-
3617pcre_uchar type;
never executed (the execution status of this line is deduced): pcre_uchar type;
-
3618struct sljit_label *label;
never executed (the execution status of this line is deduced): struct sljit_label *label;
-
3619struct sljit_jump *zerolength;
never executed (the execution status of this line is deduced): struct sljit_jump *zerolength;
-
3620struct sljit_jump *jump = NULL;
never executed (the execution status of this line is deduced): struct sljit_jump *jump = ((void *)0);
-
3621pcre_uchar *ccbegin = cc;
never executed (the execution status of this line is deduced): pcre_uchar *ccbegin = cc;
-
3622int min = 0, max = 0;
never executed (the execution status of this line is deduced): int min = 0, max = 0;
-
3623BOOL minimize;
never executed (the execution status of this line is deduced): BOOL minimize;
-
3624 -
3625PUSH_FALLBACK(sizeof(iterator_fallback), cc, NULL);
never executed: return ((void *)0);
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
3626 -
3627type = cc[1 + IMM2_SIZE];
never executed (the execution status of this line is deduced): type = cc[1 + 1];
-
3628minimize = (type & 0x1) != 0;
never executed (the execution status of this line is deduced): minimize = (type & 0x1) != 0;
-
3629switch(type) -
3630 { -
3631 case OP_CRSTAR: -
3632 case OP_CRMINSTAR: -
3633 min = 0;
never executed (the execution status of this line is deduced): min = 0;
-
3634 max = 0;
never executed (the execution status of this line is deduced): max = 0;
-
3635 cc += 1 + IMM2_SIZE + 1;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
3636 break;
never executed: break;
0
3637 case OP_CRPLUS: -
3638 case OP_CRMINPLUS: -
3639 min = 1;
never executed (the execution status of this line is deduced): min = 1;
-
3640 max = 0;
never executed (the execution status of this line is deduced): max = 0;
-
3641 cc += 1 + IMM2_SIZE + 1;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
3642 break;
never executed: break;
0
3643 case OP_CRQUERY: -
3644 case OP_CRMINQUERY: -
3645 min = 0;
never executed (the execution status of this line is deduced): min = 0;
-
3646 max = 1;
never executed (the execution status of this line is deduced): max = 1;
-
3647 cc += 1 + IMM2_SIZE + 1;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1;
-
3648 break;
never executed: break;
0
3649 case OP_CRRANGE: -
3650 case OP_CRMINRANGE: -
3651 min = GET2(cc, 1 + IMM2_SIZE + 1);
never executed (the execution status of this line is deduced): min = cc[1 + 1 + 1];
-
3652 max = GET2(cc, 1 + IMM2_SIZE + 1 + IMM2_SIZE);
never executed (the execution status of this line is deduced): max = cc[1 + 1 + 1 + 1];
-
3653 cc += 1 + IMM2_SIZE + 1 + 2 * IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1 + 1 + 1 + 2 * 1;
-
3654 break;
never executed: break;
0
3655 default: -
3656 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
3657 break;
never executed: break;
0
3658 } -
3659 -
3660if (!minimize)
never evaluated: !minimize
0
3661 { -
3662 if (min == 0)
never evaluated: min == 0
0
3663 { -
3664 allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
3665 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3666 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3667 /* Temporary release of STR_PTR. */ -
3668 OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
3669 zerolength = compile_ref_checks(common, ccbegin, NULL);
never executed (the execution status of this line is deduced): zerolength = compile_ref_checks(common, ccbegin, ((void *)0));
-
3670 /* Restore if not zero length. */ -
3671 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
3672 }
never executed: }
0
3673 else -
3674 { -
3675 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
3676 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3677 zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
never executed (the execution status of this line is deduced): zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
-
3678 }
never executed: }
0
3679 -
3680 if (min > 1 || max > 1)
never evaluated: min > 1
never evaluated: max > 1
0
3681 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
0
3682 -
3683 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
3684 compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, FALSE, FALSE);
never executed (the execution status of this line is deduced): compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, 0, 0);
-
3685 -
3686 if (min > 1 || max > 1)
never evaluated: min > 1
never evaluated: max > 1
0
3687 { -
3688 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
-
3689 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
3690 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0));
-
3691 if (min > 1)
never evaluated: min > 1
0
3692 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min, label);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (min)), (label));
0
3693 if (max > 1)
never evaluated: max > 1
0
3694 { -
3695 jump = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (3), (1), (0), (0x200), (max));
-
3696 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
3697 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3698 JUMPTO(SLJIT_JUMP, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (label));
-
3699 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
3700 }
never executed: }
0
3701 }
never executed: }
0
3702 -
3703 if (max == 0)
never evaluated: max == 0
0
3704 { -
3705 /* Includes min > 1 case as well. */ -
3706 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
3707 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3708 JUMPTO(SLJIT_JUMP, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (label));
-
3709 }
never executed: }
0
3710 -
3711 JUMPHERE(zerolength);
never executed (the execution status of this line is deduced): sljit_set_label((zerolength), sljit_emit_label(compiler));
-
3712 FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
3713 -
3714 decrease_call_count(common);
never executed (the execution status of this line is deduced): decrease_call_count(common);
-
3715 return cc;
never executed: return cc;
0
3716 } -
3717 -
3718allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
3719OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3720if (type != OP_CRMINSTAR)
never evaluated: type != OP_CRMINSTAR
0
3721 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
3722 -
3723if (min == 0)
never evaluated: min == 0
0
3724 { -
3725 zerolength = compile_ref_checks(common, ccbegin, NULL);
never executed (the execution status of this line is deduced): zerolength = compile_ref_checks(common, ccbegin, ((void *)0));
-
3726 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3727 jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
3728 }
never executed: }
0
3729else -
3730 zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
never executed: zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
0
3731 -
3732FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
3733if (max > 0)
never evaluated: max > 0
0
3734 add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_GREATER_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, max));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (3), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (max)));
0
3735 -
3736compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, TRUE, TRUE);
never executed (the execution status of this line is deduced): compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, 1, 1);
-
3737OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3738 -
3739if (min > 1)
never evaluated: min > 1
0
3740 { -
3741 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
3742 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
3743 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
3744 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, min, FALLBACK_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (min)), (((iterator_fallback*)fallback)->hotpath));
-
3745 }
never executed: }
0
3746else if (max > 0)
never evaluated: max > 0
0
3747 OP2(SLJIT_ADD, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
never executed: sljit_emit_op2(compiler, (23), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
0
3748 -
3749if (jump != NULL)
never evaluated: jump != ((void *)0)
0
3750 JUMPHERE(jump);
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
3751JUMPHERE(zerolength);
never executed (the execution status of this line is deduced): sljit_set_label((zerolength), sljit_emit_label(compiler));
-
3752 -
3753decrease_call_count(common);
never executed (the execution status of this line is deduced): decrease_call_count(common);
-
3754return cc;
never executed: return cc;
0
3755} -
3756 -
3757static SLJIT_INLINE pcre_uchar *compile_recurse_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
3758{ -
3759DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3760fallback_common *fallback;
never executed (the execution status of this line is deduced): fallback_common *fallback;
-
3761recurse_entry *entry = common->entries;
never executed (the execution status of this line is deduced): recurse_entry *entry = common->entries;
-
3762recurse_entry *prev = NULL;
never executed (the execution status of this line is deduced): recurse_entry *prev = ((void *)0);
-
3763int start = GET(cc, 1);
never executed (the execution status of this line is deduced): int start = (cc[1]);
-
3764 -
3765PUSH_FALLBACK(sizeof(recurse_fallback), cc, NULL);
never executed: return ((void *)0);
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
3766while (entry != NULL)
never evaluated: entry != ((void *)0)
0
3767 { -
3768 if (entry->start == start)
never evaluated: entry->start == start
0
3769 break;
never executed: break;
0
3770 prev = entry;
never executed (the execution status of this line is deduced): prev = entry;
-
3771 entry = entry->next;
never executed (the execution status of this line is deduced): entry = entry->next;
-
3772 }
never executed: }
0
3773 -
3774if (entry == NULL)
never evaluated: entry == ((void *)0)
0
3775 { -
3776 entry = sljit_alloc_memory(compiler, sizeof(recurse_entry));
never executed (the execution status of this line is deduced): entry = sljit_alloc_memory(compiler, sizeof(recurse_entry));
-
3777 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3778 return NULL;
never executed: return ((void *)0);
0
3779 entry->next = NULL;
never executed (the execution status of this line is deduced): entry->next = ((void *)0);
-
3780 entry->entry = NULL;
never executed (the execution status of this line is deduced): entry->entry = ((void *)0);
-
3781 entry->calls = NULL;
never executed (the execution status of this line is deduced): entry->calls = ((void *)0);
-
3782 entry->start = start;
never executed (the execution status of this line is deduced): entry->start = start;
-
3783 -
3784 if (prev != NULL)
never evaluated: prev != ((void *)0)
0
3785 prev->next = entry;
never executed: prev->next = entry;
0
3786 else -
3787 common->entries = entry;
never executed: common->entries = entry;
0
3788 } -
3789 -
3790OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
3791allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
3792OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
3793 -
3794if (entry->entry == NULL)
never evaluated: entry->entry == ((void *)0)
0
3795 add_jump(compiler, &entry->calls, JUMP(SLJIT_FAST_CALL));
never executed: add_jump(compiler, &entry->calls, sljit_emit_jump(compiler, (23)));
0
3796else -
3797 JUMPTO(SLJIT_FAST_CALL, entry->entry);
never executed: sljit_set_label(sljit_emit_jump(compiler, (23)), (entry->entry));
0
3798/* Leave if the match is failed. */ -
3799add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0)));
-
3800return cc + 1 + LINK_SIZE;
never executed: return cc + 1 + 1;
0
3801} -
3802 -
3803static pcre_uchar *compile_assert_hotpath(compiler_common *common, pcre_uchar *cc, assert_fallback *fallback, BOOL conditional) -
3804{ -
3805DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
3806int framesize;
never executed (the execution status of this line is deduced): int framesize;
-
3807int localptr;
never executed (the execution status of this line is deduced): int localptr;
-
3808fallback_common altfallback;
never executed (the execution status of this line is deduced): fallback_common altfallback;
-
3809pcre_uchar *ccbegin;
never executed (the execution status of this line is deduced): pcre_uchar *ccbegin;
-
3810pcre_uchar opcode;
never executed (the execution status of this line is deduced): pcre_uchar opcode;
-
3811pcre_uchar bra = OP_BRA;
never executed (the execution status of this line is deduced): pcre_uchar bra = OP_BRA;
-
3812jump_list *tmp = NULL;
never executed (the execution status of this line is deduced): jump_list *tmp = ((void *)0);
-
3813jump_list **target = (conditional) ? &fallback->condfailed : &fallback->common.topfallbacks;
never evaluated: (conditional)
0
3814jump_list **found;
never executed (the execution status of this line is deduced): jump_list **found;
-
3815/* Saving previous accept variables. */ -
3816struct sljit_label *save_acceptlabel = common->acceptlabel;
never executed (the execution status of this line is deduced): struct sljit_label *save_acceptlabel = common->acceptlabel;
-
3817struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
3818struct sljit_jump *brajump = NULL;
never executed (the execution status of this line is deduced): struct sljit_jump *brajump = ((void *)0);
-
3819jump_list *save_accept = common->accept;
never executed (the execution status of this line is deduced): jump_list *save_accept = common->accept;
-
3820 -
3821if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO)
never evaluated: *cc == OP_BRAZERO
never evaluated: *cc == OP_BRAMINZERO
0
3822 { -
3823 SLJIT_ASSERT(!conditional);
never executed: }
never evaluated: 0
0
3824 bra = *cc;
never executed (the execution status of this line is deduced): bra = *cc;
-
3825 cc++;
never executed (the execution status of this line is deduced): cc++;
-
3826 }
never executed: }
0
3827localptr = PRIV_DATA(cc);
never executed (the execution status of this line is deduced): localptr = (common->localptrs[(cc) - common->start]);
-
3828SLJIT_ASSERT(localptr != 0);
never executed: }
never evaluated: 0
0
3829framesize = get_framesize(common, cc, FALSE);
never executed (the execution status of this line is deduced): framesize = get_framesize(common, cc, 0);
-
3830fallback->framesize = framesize;
never executed (the execution status of this line is deduced): fallback->framesize = framesize;
-
3831fallback->localptr = localptr;
never executed (the execution status of this line is deduced): fallback->localptr = localptr;
-
3832opcode = *cc;
never executed (the execution status of this line is deduced): opcode = *cc;
-
3833SLJIT_ASSERT(opcode >= OP_ASSERT && opcode <= OP_ASSERTBACK_NOT);
never executed: }
never evaluated: 0
0
3834found = (opcode == OP_ASSERT || opcode == OP_ASSERTBACK) ? &tmp : target;
never evaluated: opcode == OP_ASSERT
never evaluated: opcode == OP_ASSERTBACK
0
3835ccbegin = cc;
never executed (the execution status of this line is deduced): ccbegin = cc;
-
3836cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
3837 -
3838if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3839 { -
3840 /* This is a braminzero fallback path. */ -
3841 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
3842 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
3843 brajump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): brajump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0));
-
3844 }
never executed: }
0
3845 -
3846if (framesize < 0)
never evaluated: framesize < 0
0
3847 { -
3848 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
-
3849 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
3850 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3851 }
never executed: }
0
3852else -
3853 { -
3854 allocate_stack(common, framesize + 2);
never executed (the execution status of this line is deduced): allocate_stack(common, framesize + 2);
-
3855 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
3856 OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, -STACK(framesize + 1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(framesize + 1) - 1) * (int)sizeof(sljit_w))));
-
3857 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0));
-
3858 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
3859 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
3860 init_frame(common, ccbegin, framesize + 1, 2, FALSE);
never executed (the execution status of this line is deduced): init_frame(common, ccbegin, framesize + 1, 2, 0);
-
3861 }
never executed: }
0
3862 -
3863memset(&altfallback, 0, sizeof(fallback_common));
never executed (the execution status of this line is deduced): memset(&altfallback, 0, sizeof(fallback_common));
-
3864while (1)
never evaluated: 1
0
3865 { -
3866 common->acceptlabel = NULL;
never executed (the execution status of this line is deduced): common->acceptlabel = ((void *)0);
-
3867 common->accept = NULL;
never executed (the execution status of this line is deduced): common->accept = ((void *)0);
-
3868 altfallback.top = NULL;
never executed (the execution status of this line is deduced): altfallback.top = ((void *)0);
-
3869 altfallback.topfallbacks = NULL;
never executed (the execution status of this line is deduced): altfallback.topfallbacks = ((void *)0);
-
3870 -
3871 if (*ccbegin == OP_ALT)
never evaluated: *ccbegin == OP_ALT
0
3872 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
3873 -
3874 altfallback.cc = ccbegin;
never executed (the execution status of this line is deduced): altfallback.cc = ccbegin;
-
3875 compile_hotpath(common, ccbegin + 1 + LINK_SIZE, cc, &altfallback);
never executed (the execution status of this line is deduced): compile_hotpath(common, ccbegin + 1 + 1, cc, &altfallback);
-
3876 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3877 { -
3878 common->acceptlabel = save_acceptlabel;
never executed (the execution status of this line is deduced): common->acceptlabel = save_acceptlabel;
-
3879 common->accept = save_accept;
never executed (the execution status of this line is deduced): common->accept = save_accept;
-
3880 return NULL;
never executed: return ((void *)0);
0
3881 } -
3882 common->acceptlabel = LABEL();
never executed (the execution status of this line is deduced): common->acceptlabel = sljit_emit_label(compiler);
-
3883 if (common->accept != NULL)
never evaluated: common->accept != ((void *)0)
0
3884 set_jumps(common->accept, common->acceptlabel);
never executed: set_jumps(common->accept, common->acceptlabel);
0
3885 -
3886 /* Reset stack. */ -
3887 if (framesize < 0)
never evaluated: framesize < 0
0
3888 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed: sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
0
3889 else { -
3890 if ((opcode != OP_ASSERT_NOT && opcode != OP_ASSERTBACK_NOT) || conditional)
never evaluated: opcode != OP_ASSERT_NOT
never evaluated: opcode != OP_ASSERTBACK_NOT
never evaluated: conditional
0
3891 { -
3892 /* We don't need to keep the STR_PTR, only the previous localptr. */ -
3893 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 1) * sizeof(sljit_w)));
-
3894 }
never executed: }
0
3895 else -
3896 { -
3897 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
3898 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
3899 }
never executed: }
0
3900 } -
3901 -
3902 if (opcode == OP_ASSERT_NOT || opcode == OP_ASSERTBACK_NOT)
never evaluated: opcode == OP_ASSERT_NOT
never evaluated: opcode == OP_ASSERTBACK_NOT
0
3903 { -
3904 /* We know that STR_PTR was stored on the top of the stack. */ -
3905 if (conditional)
never evaluated: conditional
0
3906 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
0
3907 else if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3908 { -
3909 if (framesize < 0)
never evaluated: framesize < 0
0
3910 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
0
3911 else -
3912 { -
3913 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (framesize * sizeof(sljit_w)));
-
3914 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), (framesize + 1) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), ((framesize + 1) * sizeof(sljit_w)));
-
3915 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0));
-
3916 }
never executed: }
0
3917 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
3918 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3919 }
never executed: }
0
3920 else if (framesize >= 0)
never evaluated: framesize >= 0
0
3921 { -
3922 /* For OP_BRA and OP_BRAMINZERO. */ -
3923 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (framesize * sizeof(sljit_w)));
-
3924 }
never executed: }
0
3925 } -
3926 add_jump(compiler, found, JUMP(SLJIT_JUMP));
never executed (the execution status of this line is deduced): add_jump(compiler, found, sljit_emit_jump(compiler, (22)));
-
3927 -
3928 compile_fallbackpath(common, altfallback.top);
never executed (the execution status of this line is deduced): compile_fallbackpath(common, altfallback.top);
-
3929 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3930 { -
3931 common->acceptlabel = save_acceptlabel;
never executed (the execution status of this line is deduced): common->acceptlabel = save_acceptlabel;
-
3932 common->accept = save_accept;
never executed (the execution status of this line is deduced): common->accept = save_accept;
-
3933 return NULL;
never executed: return ((void *)0);
0
3934 } -
3935 set_jumps(altfallback.topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(altfallback.topfallbacks, sljit_emit_label(compiler));
-
3936 -
3937 if (*cc != OP_ALT)
never evaluated: *cc != OP_ALT
0
3938 break;
never executed: break;
0
3939 -
3940 ccbegin = cc;
never executed (the execution status of this line is deduced): ccbegin = cc;
-
3941 cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
3942 }
never executed: }
0
3943/* None of them matched. */ -
3944 -
3945if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
never evaluated: opcode == OP_ASSERT
never evaluated: opcode == OP_ASSERTBACK
0
3946 { -
3947 /* Assert is failed. */ -
3948 if (conditional || bra == OP_BRAZERO)
never evaluated: conditional
never evaluated: bra == OP_BRAZERO
0
3949 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
3950 -
3951 if (framesize < 0)
never evaluated: framesize < 0
0
3952 { -
3953 /* The topmost item should be 0. */ -
3954 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3955 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
3956 else -
3957 free_stack(common, 1);
never executed: free_stack(common, 1);
0
3958 } -
3959 else -
3960 { -
3961 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
3962 /* The topmost item should be 0. */ -
3963 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3964 { -
3965 free_stack(common, framesize + 1);
never executed (the execution status of this line is deduced): free_stack(common, framesize + 1);
-
3966 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3967 }
never executed: }
0
3968 else -
3969 free_stack(common, framesize + 2);
never executed: free_stack(common, framesize + 2);
0
3970 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0));
-
3971 }
never executed: }
0
3972 jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
3973 if (bra != OP_BRAZERO)
never evaluated: bra != OP_BRAZERO
0
3974 add_jump(compiler, target, jump);
never executed: add_jump(compiler, target, jump);
0
3975 -
3976 /* Assert is successful. */ -
3977 set_jumps(tmp, LABEL());
never executed (the execution status of this line is deduced): set_jumps(tmp, sljit_emit_label(compiler));
-
3978 if (framesize < 0)
never evaluated: framesize < 0
0
3979 { -
3980 /* We know that STR_PTR was stored on the top of the stack. */ -
3981 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
-
3982 /* Keep the STR_PTR on the top of the stack. */ -
3983 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3984 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed: sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
0
3985 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3986 { -
3987 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
3988 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
3989 }
never executed: }
0
3990 } -
3991 else -
3992 { -
3993 if (bra == OP_BRA)
never evaluated: bra == OP_BRA
0
3994 { -
3995 /* We don't need to keep the STR_PTR, only the previous localptr. */ -
3996 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, (framesize + 1) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 1) * sizeof(sljit_w)));
-
3997 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
-
3998 }
never executed: }
0
3999 else -
4000 { -
4001 /* We don't need to keep the STR_PTR, only the previous localptr. */ -
4002 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, (framesize + 2) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 2) * sizeof(sljit_w)));
-
4003 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
4004 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), bra == OP_BRAZERO ? STR_PTR : SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (bra == OP_BRAZERO ? 6 : 0x200), (0));
-
4005 }
never executed: }
0
4006 } -
4007 -
4008 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
4009 { -
4010 fallback->hotpath = LABEL();
never executed (the execution status of this line is deduced): fallback->hotpath = sljit_emit_label(compiler);
-
4011 sljit_set_label(jump, fallback->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(jump, fallback->hotpath);
-
4012 }
never executed: }
0
4013 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
4014 { -
4015 JUMPTO(SLJIT_JUMP, fallback->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (fallback->hotpath));
-
4016 JUMPHERE(brajump);
never executed (the execution status of this line is deduced): sljit_set_label((brajump), sljit_emit_label(compiler));
-
4017 if (framesize >= 0)
never evaluated: framesize >= 0
0
4018 { -
4019 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
4020 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
4021 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (framesize * sizeof(sljit_w)));
-
4022 }
never executed: }
0
4023 set_jumps(fallback->common.topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(fallback->common.topfallbacks, sljit_emit_label(compiler));
-
4024 }
never executed: }
0
4025 } -
4026else -
4027 { -
4028 /* AssertNot is successful. */ -
4029 if (framesize < 0)
never evaluated: framesize < 0
0
4030 { -
4031 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
4032 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
4033 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4034 else -
4035 free_stack(common, 1);
never executed: free_stack(common, 1);
0
4036 } -
4037 else -
4038 { -
4039 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
4040 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
4041 /* The topmost item should be 0. */ -
4042 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
4043 { -
4044 free_stack(common, framesize + 1);
never executed (the execution status of this line is deduced): free_stack(common, framesize + 1);
-
4045 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
4046 }
never executed: }
0
4047 else -
4048 free_stack(common, framesize + 2);
never executed: free_stack(common, framesize + 2);
0
4049 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0));
-
4050 }
never executed: }
0
4051 -
4052 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
4053 fallback->hotpath = LABEL();
never executed: fallback->hotpath = sljit_emit_label(compiler);
0
4054 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
4055 { -
4056 JUMPTO(SLJIT_JUMP, fallback->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (fallback->hotpath));
-
4057 JUMPHERE(brajump);
never executed (the execution status of this line is deduced): sljit_set_label((brajump), sljit_emit_label(compiler));
-
4058 }
never executed: }
0
4059 -
4060 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
4061 { -
4062 SLJIT_ASSERT(found == &fallback->common.topfallbacks);
never executed: }
never evaluated: 0
0
4063 set_jumps(fallback->common.topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(fallback->common.topfallbacks, sljit_emit_label(compiler));
-
4064 fallback->common.topfallbacks = NULL;
never executed (the execution status of this line is deduced): fallback->common.topfallbacks = ((void *)0);
-
4065 }
never executed: }
0
4066 }
never executed: }
0
4067 -
4068common->acceptlabel = save_acceptlabel;
never executed (the execution status of this line is deduced): common->acceptlabel = save_acceptlabel;
-
4069common->accept = save_accept;
never executed (the execution status of this line is deduced): common->accept = save_accept;
-
4070return cc + 1 + LINK_SIZE;
never executed: return cc + 1 + 1;
0
4071} -
4072 -
4073static sljit_w SLJIT_CALL do_searchovector(sljit_w refno, sljit_w* locals, pcre_uchar *name_table) -
4074{ -
4075int condition = FALSE;
never executed (the execution status of this line is deduced): int condition = 0;
-
4076pcre_uchar *slotA = name_table;
never executed (the execution status of this line is deduced): pcre_uchar *slotA = name_table;
-
4077pcre_uchar *slotB;
never executed (the execution status of this line is deduced): pcre_uchar *slotB;
-
4078sljit_w name_count = locals[LOCALS0 / sizeof(sljit_w)];
never executed (the execution status of this line is deduced): sljit_w name_count = locals[(0 * sizeof(sljit_w)) / sizeof(sljit_w)];
-
4079sljit_w name_entry_size = locals[LOCALS1 / sizeof(sljit_w)];
never executed (the execution status of this line is deduced): sljit_w name_entry_size = locals[(1 * sizeof(sljit_w)) / sizeof(sljit_w)];
-
4080sljit_w no_capture;
never executed (the execution status of this line is deduced): sljit_w no_capture;
-
4081int i;
never executed (the execution status of this line is deduced): int i;
-
4082 -
4083locals += OVECTOR_START / sizeof(sljit_w);
never executed (the execution status of this line is deduced): locals += (8 * sizeof(sljit_w)) / sizeof(sljit_w);
-
4084no_capture = locals[1];
never executed (the execution status of this line is deduced): no_capture = locals[1];
-
4085 -
4086for (i = 0; i < name_count; i++)
never evaluated: i < name_count
0
4087 { -
4088 if (GET2(slotA, 0) == refno) break;
never executed: break;
never evaluated: slotA[0] == refno
0
4089 slotA += name_entry_size;
never executed (the execution status of this line is deduced): slotA += name_entry_size;
-
4090 }
never executed: }
0
4091 -
4092if (i < name_count)
never evaluated: i < name_count
0
4093 { -
4094 /* Found a name for the number - there can be only one; duplicate names -
4095 for different numbers are allowed, but not vice versa. First scan down -
4096 for duplicates. */ -
4097 -
4098 slotB = slotA;
never executed (the execution status of this line is deduced): slotB = slotA;
-
4099 while (slotB > name_table)
never evaluated: slotB > name_table
0
4100 { -
4101 slotB -= name_entry_size;
never executed (the execution status of this line is deduced): slotB -= name_entry_size;
-
4102 if (STRCMP_UC_UC(slotA + IMM2_SIZE, slotB + IMM2_SIZE) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
4103 { -
4104 condition = locals[GET2(slotB, 0) << 1] != no_capture;
never executed (the execution status of this line is deduced): condition = locals[slotB[0] << 1] != no_capture;
-
4105 if (condition) break;
never executed: break;
never evaluated: condition
0
4106 }
never executed: }
0
4107 else break;
never executed: break;
0
4108 } -
4109 -
4110 /* Scan up for duplicates */ -
4111 if (!condition)
never evaluated: !condition
0
4112 { -
4113 slotB = slotA;
never executed (the execution status of this line is deduced): slotB = slotA;
-
4114 for (i++; i < name_count; i++)
never evaluated: i < name_count
0
4115 { -
4116 slotB += name_entry_size;
never executed (the execution status of this line is deduced): slotB += name_entry_size;
-
4117 if (STRCMP_UC_UC(slotA + IMM2_SIZE, slotB + IMM2_SIZE) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
4118 { -
4119 condition = locals[GET2(slotB, 0) << 1] != no_capture;
never executed (the execution status of this line is deduced): condition = locals[slotB[0] << 1] != no_capture;
-
4120 if (condition) break;
never executed: break;
never evaluated: condition
0
4121 }
never executed: }
0
4122 else break;
never executed: break;
0
4123 } -
4124 }
never executed: }
0
4125 }
never executed: }
0
4126return condition;
never executed: return condition;
0
4127} -
4128 -
4129static sljit_w SLJIT_CALL do_searchgroups(sljit_w recno, sljit_w* locals, pcre_uchar *name_table) -
4130{ -
4131int condition = FALSE;
never executed (the execution status of this line is deduced): int condition = 0;
-
4132pcre_uchar *slotA = name_table;
never executed (the execution status of this line is deduced): pcre_uchar *slotA = name_table;
-
4133pcre_uchar *slotB;
never executed (the execution status of this line is deduced): pcre_uchar *slotB;
-
4134sljit_w name_count = locals[LOCALS0 / sizeof(sljit_w)];
never executed (the execution status of this line is deduced): sljit_w name_count = locals[(0 * sizeof(sljit_w)) / sizeof(sljit_w)];
-
4135sljit_w name_entry_size = locals[LOCALS1 / sizeof(sljit_w)];
never executed (the execution status of this line is deduced): sljit_w name_entry_size = locals[(1 * sizeof(sljit_w)) / sizeof(sljit_w)];
-
4136sljit_w group_num = locals[POSSESSIVE0 / sizeof(sljit_w)];
never executed (the execution status of this line is deduced): sljit_w group_num = locals[(2 * sizeof(sljit_w)) / sizeof(sljit_w)];
-
4137int i;
never executed (the execution status of this line is deduced): int i;
-
4138 -
4139for (i = 0; i < name_count; i++)
never evaluated: i < name_count
0
4140 { -
4141 if (GET2(slotA, 0) == recno) break;
never executed: break;
never evaluated: slotA[0] == recno
0
4142 slotA += name_entry_size;
never executed (the execution status of this line is deduced): slotA += name_entry_size;
-
4143 }
never executed: }
0
4144 -
4145if (i < name_count)
never evaluated: i < name_count
0
4146 { -
4147 /* Found a name for the number - there can be only one; duplicate -
4148 names for different numbers are allowed, but not vice versa. First -
4149 scan down for duplicates. */ -
4150 -
4151 slotB = slotA;
never executed (the execution status of this line is deduced): slotB = slotA;
-
4152 while (slotB > name_table)
never evaluated: slotB > name_table
0
4153 { -
4154 slotB -= name_entry_size;
never executed (the execution status of this line is deduced): slotB -= name_entry_size;
-
4155 if (STRCMP_UC_UC(slotA + IMM2_SIZE, slotB + IMM2_SIZE) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
4156 { -
4157 condition = GET2(slotB, 0) == group_num;
never executed (the execution status of this line is deduced): condition = slotB[0] == group_num;
-
4158 if (condition) break;
never executed: break;
never evaluated: condition
0
4159 }
never executed: }
0
4160 else break;
never executed: break;
0
4161 } -
4162 -
4163 /* Scan up for duplicates */ -
4164 if (!condition)
never evaluated: !condition
0
4165 { -
4166 slotB = slotA;
never executed (the execution status of this line is deduced): slotB = slotA;
-
4167 for (i++; i < name_count; i++)
never evaluated: i < name_count
0
4168 { -
4169 slotB += name_entry_size;
never executed (the execution status of this line is deduced): slotB += name_entry_size;
-
4170 if (STRCMP_UC_UC(slotA + IMM2_SIZE, slotB + IMM2_SIZE) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
4171 { -
4172 condition = GET2(slotB, 0) == group_num;
never executed (the execution status of this line is deduced): condition = slotB[0] == group_num;
-
4173 if (condition) break;
never executed: break;
never evaluated: condition
0
4174 }
never executed: }
0
4175 else break;
never executed: break;
0
4176 } -
4177 }
never executed: }
0
4178 }
never executed: }
0
4179return condition;
never executed: return condition;
0
4180} -
4181 -
4182/* -
4183 Handling bracketed expressions is probably the most complex part. -
4184 -
4185 Stack layout naming characters: -
4186 S - Push the current STR_PTR -
4187 0 - Push a 0 (NULL) -
4188 A - Push the current STR_PTR. Needed for restoring the STR_PTR -
4189 before the next alternative. Not pushed if there are no alternatives. -
4190 M - Any values pushed by the current alternative. Can be empty, or anything. -
4191 C - Push the previous OVECTOR(i), OVECTOR(i+1) and OVECTOR_PRIV(i) to the stack. -
4192 L - Push the previous local (pointed by localptr) to the stack -
4193 () - opional values stored on the stack -
4194 ()* - optonal, can be stored multiple times -
4195 -
4196 The following list shows the regular expression templates, their PCRE byte codes -
4197 and stack layout supported by pcre-sljit. -
4198 -
4199 (?:) OP_BRA | OP_KET A M -
4200 () OP_CBRA | OP_KET C M -
4201 (?:)+ OP_BRA | OP_KETRMAX 0 A M S ( A M S )* -
4202 OP_SBRA | OP_KETRMAX 0 L M S ( L M S )* -
4203 (?:)+? OP_BRA | OP_KETRMIN 0 A M S ( A M S )* -
4204 OP_SBRA | OP_KETRMIN 0 L M S ( L M S )* -
4205 ()+ OP_CBRA | OP_KETRMAX 0 C M S ( C M S )* -
4206 OP_SCBRA | OP_KETRMAX 0 C M S ( C M S )* -
4207 ()+? OP_CBRA | OP_KETRMIN 0 C M S ( C M S )* -
4208 OP_SCBRA | OP_KETRMIN 0 C M S ( C M S )* -
4209 (?:)? OP_BRAZERO | OP_BRA | OP_KET S ( A M 0 ) -
4210 (?:)?? OP_BRAMINZERO | OP_BRA | OP_KET S ( A M 0 ) -
4211 ()? OP_BRAZERO | OP_CBRA | OP_KET S ( C M 0 ) -
4212 ()?? OP_BRAMINZERO | OP_CBRA | OP_KET S ( C M 0 ) -
4213 (?:)* OP_BRAZERO | OP_BRA | OP_KETRMAX S 0 ( A M S )* -
4214 OP_BRAZERO | OP_SBRA | OP_KETRMAX S 0 ( L M S )* -
4215 (?:)*? OP_BRAMINZERO | OP_BRA | OP_KETRMIN S 0 ( A M S )* -
4216 OP_BRAMINZERO | OP_SBRA | OP_KETRMIN S 0 ( L M S )* -
4217 ()* OP_BRAZERO | OP_CBRA | OP_KETRMAX S 0 ( C M S )* -
4218 OP_BRAZERO | OP_SCBRA | OP_KETRMAX S 0 ( C M S )* -
4219 ()*? OP_BRAMINZERO | OP_CBRA | OP_KETRMIN S 0 ( C M S )* -
4220 OP_BRAMINZERO | OP_SCBRA | OP_KETRMIN S 0 ( C M S )* -
4221 -
4222 -
4223 Stack layout naming characters: -
4224 A - Push the alternative index (starting from 0) on the stack. -
4225 Not pushed if there is no alternatives. -
4226 M - Any values pushed by the current alternative. Can be empty, or anything. -
4227 -
4228 The next list shows the possible content of a bracket: -
4229 (|) OP_*BRA | OP_ALT ... M A -
4230 (?()|) OP_*COND | OP_ALT M A -
4231 (?>|) OP_ONCE | OP_ALT ... [stack trace] M A -
4232 (?>|) OP_ONCE_NC | OP_ALT ... [stack trace] M A -
4233 Or nothing, if trace is unnecessary -
4234*/ -
4235 -
4236static pcre_uchar *compile_bracket_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4237{ -
4238DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
4239fallback_common *fallback;
executed (the execution status of this line is deduced): fallback_common *fallback;
-
4240pcre_uchar opcode;
executed (the execution status of this line is deduced): pcre_uchar opcode;
-
4241int localptr = 0;
executed (the execution status of this line is deduced): int localptr = 0;
-
4242int offset = 0;
executed (the execution status of this line is deduced): int offset = 0;
-
4243int stacksize;
executed (the execution status of this line is deduced): int stacksize;
-
4244pcre_uchar *ccbegin;
executed (the execution status of this line is deduced): pcre_uchar *ccbegin;
-
4245pcre_uchar *hotpath;
executed (the execution status of this line is deduced): pcre_uchar *hotpath;
-
4246pcre_uchar bra = OP_BRA;
executed (the execution status of this line is deduced): pcre_uchar bra = OP_BRA;
-
4247pcre_uchar ket;
executed (the execution status of this line is deduced): pcre_uchar ket;
-
4248assert_fallback *assert;
executed (the execution status of this line is deduced): assert_fallback *assert;
-
4249BOOL has_alternatives;
executed (the execution status of this line is deduced): BOOL has_alternatives;
-
4250struct sljit_jump *jump;
executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
4251struct sljit_jump *skip;
executed (the execution status of this line is deduced): struct sljit_jump *skip;
-
4252struct sljit_label *rmaxlabel = NULL;
executed (the execution status of this line is deduced): struct sljit_label *rmaxlabel = ((void *)0);
-
4253struct sljit_jump *braminzerojump = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *braminzerojump = ((void *)0);
-
4254 -
4255PUSH_FALLBACK(sizeof(bracket_fallback), cc, NULL);
never executed: return ((void *)0);
executed: }
Execution Count:15
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4256 -
4257if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO)
partially evaluated: *cc == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: *cc == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4258 { -
4259 bra = *cc;
never executed (the execution status of this line is deduced): bra = *cc;
-
4260 cc++;
never executed (the execution status of this line is deduced): cc++;
-
4261 opcode = *cc;
never executed (the execution status of this line is deduced): opcode = *cc;
-
4262 }
never executed: }
0
4263 -
4264opcode = *cc;
executed (the execution status of this line is deduced): opcode = *cc;
-
4265ccbegin = cc;
executed (the execution status of this line is deduced): ccbegin = cc;
-
4266hotpath = ccbegin + 1 + LINK_SIZE;
executed (the execution status of this line is deduced): hotpath = ccbegin + 1 + 1;
-
4267 -
4268if ((opcode == OP_COND || opcode == OP_SCOND) && cc[1 + LINK_SIZE] == OP_DEF)
partially evaluated: opcode == OP_COND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCOND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: cc[1 + 1] == OP_DEF
0-15
4269 { -
4270 /* Drop this bracket_fallback. */ -
4271 parent->top = fallback->prev;
never executed (the execution status of this line is deduced): parent->top = fallback->prev;
-
4272 return bracketend(cc);
never executed: return bracketend(cc);
0
4273 } -
4274 -
4275ket = *(bracketend(cc) - 1 - LINK_SIZE);
executed (the execution status of this line is deduced): ket = *(bracketend(cc) - 1 - 1);
-
4276SLJIT_ASSERT(ket == OP_KET || ket == OP_KETRMAX || ket == OP_KETRMIN);
executed: }
Execution Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4277SLJIT_ASSERT(!((bra == OP_BRAZERO && ket == OP_KETRMIN) || (bra == OP_BRAMINZERO && ket == OP_KETRMAX)));
executed: }
Execution Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4278cc += GET(cc, 1);
executed (the execution status of this line is deduced): cc += (cc[1]);
-
4279 -
4280has_alternatives = *cc == OP_ALT;
executed (the execution status of this line is deduced): has_alternatives = *cc == OP_ALT;
-
4281if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: __builtin_expect((opcode == OP_SCOND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4282 { -
4283 has_alternatives = (*hotpath == OP_RREF) ? FALSE : TRUE;
never evaluated: (*hotpath == OP_RREF)
0
4284 if (*hotpath == OP_NRREF)
never evaluated: *hotpath == OP_NRREF
0
4285 { -
4286 stacksize = GET2(hotpath, 1);
never executed (the execution status of this line is deduced): stacksize = hotpath[1];
-
4287 if (common->currententry == NULL || stacksize == RREF_ANY)
never evaluated: common->currententry == ((void *)0)
never evaluated: stacksize == 0xffff
0
4288 has_alternatives = FALSE;
never executed: has_alternatives = 0;
0
4289 else if (common->currententry->start == 0)
never evaluated: common->currententry->start == 0
0
4290 has_alternatives = stacksize != 0;
never executed: has_alternatives = stacksize != 0;
0
4291 else -
4292 has_alternatives = stacksize != GET2(common->start, common->currententry->start + 1 + LINK_SIZE);
never executed: has_alternatives = stacksize != common->start[common->currententry->start + 1 + 1];
0
4293 } -
4294 }
never executed: }
0
4295 -
4296if (SLJIT_UNLIKELY(opcode == OP_COND) && (*cc == OP_KETRMAX || *cc == OP_KETRMIN))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: *cc == OP_KETRMAX
never evaluated: *cc == OP_KETRMIN
0-15
4297 opcode = OP_SCOND;
never executed: opcode = OP_SCOND;
0
4298if (SLJIT_UNLIKELY(opcode == OP_ONCE_NC))
partially evaluated: __builtin_expect((opcode == OP_ONCE_NC), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4299 opcode = OP_ONCE;
never executed: opcode = OP_ONCE;
0
4300 -
4301if (opcode == OP_CBRA || opcode == OP_SCBRA)
partially evaluated: opcode == OP_CBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4302 { -
4303 /* Capturing brackets has a pre-allocated space. */ -
4304 offset = GET2(ccbegin, 1 + LINK_SIZE);
never executed (the execution status of this line is deduced): offset = ccbegin[1 + 1];
-
4305 localptr = OVECTOR_PRIV(offset);
never executed (the execution status of this line is deduced): localptr = (common->cbraptr + (offset) * sizeof(sljit_w));
-
4306 offset <<= 1;
never executed (the execution status of this line is deduced): offset <<= 1;
-
4307 FALLBACK_AS(bracket_fallback)->localptr = localptr;
never executed (the execution status of this line is deduced): ((bracket_fallback*)fallback)->localptr = localptr;
-
4308 hotpath += IMM2_SIZE;
never executed (the execution status of this line is deduced): hotpath += 1;
-
4309 }
never executed: }
0
4310else if (opcode == OP_ONCE || opcode == OP_SBRA || opcode == OP_SCOND)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCOND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4311 { -
4312 /* Other brackets simply allocate the next entry. */ -
4313 localptr = PRIV_DATA(ccbegin);
never executed (the execution status of this line is deduced): localptr = (common->localptrs[(ccbegin) - common->start]);
-
4314 SLJIT_ASSERT(localptr != 0);
never executed: }
never evaluated: 0
0
4315 FALLBACK_AS(bracket_fallback)->localptr = localptr;
never executed (the execution status of this line is deduced): ((bracket_fallback*)fallback)->localptr = localptr;
-
4316 if (opcode == OP_ONCE)
never evaluated: opcode == OP_ONCE
0
4317 FALLBACK_AS(bracket_fallback)->u.framesize = get_framesize(common, ccbegin, FALSE);
never executed: ((bracket_fallback*)fallback)->u.framesize = get_framesize(common, ccbegin, 0);
0
4318 }
never executed: }
0
4319 -
4320/* Instructions before the first alternative. */ -
4321stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
4322if ((ket == OP_KETRMAX) || (ket == OP_KETRMIN && bra != OP_BRAMINZERO))
partially evaluated: (ket == OP_KETRMAX)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: bra != OP_BRAMINZERO
0-15
4323 stacksize++;
never executed: stacksize++;
0
4324if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4325 stacksize++;
never executed: stacksize++;
0
4326 -
4327if (stacksize > 0)
partially evaluated: stacksize > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4328 allocate_stack(common, stacksize);
never executed: allocate_stack(common, stacksize);
0
4329 -
4330stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
4331if ((ket == OP_KETRMAX) || (ket == OP_KETRMIN && bra != OP_BRAMINZERO))
partially evaluated: (ket == OP_KETRMAX)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: bra != OP_BRAMINZERO
0-15
4332 { -
4333 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
4334 stacksize++;
never executed (the execution status of this line is deduced): stacksize++;
-
4335 }
never executed: }
0
4336 -
4337if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4338 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
4339 -
4340if (bra == OP_BRAMINZERO)
partially evaluated: bra == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4341 { -
4342 /* This is a fallback path! (Since the hot-path of OP_BRAMINZERO matches to the empty string) */ -
4343 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
4344 if (ket != OP_KETRMIN)
never evaluated: ket != OP_KETRMIN
0
4345 { -
4346 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
4347 braminzerojump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0));
-
4348 }
never executed: }
0
4349 else -
4350 { -
4351 if (opcode == OP_ONCE || opcode >= OP_SBRA)
never evaluated: opcode == OP_ONCE
never evaluated: opcode >= OP_SBRA
0
4352 { -
4353 jump = CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0));
-
4354 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
4355 /* Nothing stored during the first run. */ -
4356 skip = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): skip = sljit_emit_jump(compiler, (22));
-
4357 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
4358 /* Checking zero-length iteration. */ -
4359 if (opcode != OP_ONCE || FALLBACK_AS(bracket_fallback)->u.framesize < 0)
never evaluated: opcode != OP_ONCE
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
4360 { -
4361 /* When we come from outside, localptr contains the previous STR_PTR. */ -
4362 braminzerojump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (11))), (localptr));
-
4363 }
never executed: }
0
4364 else -
4365 { -
4366 /* Except when the whole stack frame must be saved. */ -
4367 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4368 braminzerojump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (FALLBACK_AS(bracket_fallback)->u.framesize + 1) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (1))), ((((bracket_fallback*)fallback)->u.framesize + 1) * sizeof(sljit_w)));
-
4369 }
never executed: }
0
4370 JUMPHERE(skip);
never executed (the execution status of this line is deduced): sljit_set_label((skip), sljit_emit_label(compiler));
-
4371 }
never executed: }
0
4372 else -
4373 { -
4374 jump = CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0));
-
4375 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
4376 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
4377 }
never executed: }
0
4378 } -
4379 } -
4380 -
4381if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4382 FALLBACK_AS(bracket_fallback)->recursivehotpath = LABEL();
never executed: ((bracket_fallback*)fallback)->recursivehotpath = sljit_emit_label(compiler);
0
4383 -
4384if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4385 { -
4386 rmaxlabel = LABEL();
never executed (the execution status of this line is deduced): rmaxlabel = sljit_emit_label(compiler);
-
4387 if (has_alternatives && opcode != OP_ONCE && opcode < OP_SBRA)
never evaluated: has_alternatives
never evaluated: opcode != OP_ONCE
never evaluated: opcode < OP_SBRA
0
4388 FALLBACK_AS(bracket_fallback)->althotpath = rmaxlabel;
never executed: ((bracket_fallback*)fallback)->althotpath = rmaxlabel;
0
4389 }
never executed: }
0
4390 -
4391/* Handling capturing brackets and alternatives. */ -
4392if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4393 { -
4394 if (FALLBACK_AS(bracket_fallback)->u.framesize < 0)
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
4395 { -
4396 /* Neither capturing brackets nor recursions are not found in the block. */ -
4397 if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
4398 { -
4399 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
-
4400 allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
4401 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4402 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
4403 OP2(SLJIT_SUB, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), ((0x100 | (11))), (localptr), (2), (0), (0x200), (sizeof(sljit_w)));
-
4404 }
never executed: }
0
4405 else if (ket == OP_KETRMAX || has_alternatives)
never evaluated: ket == OP_KETRMAX
never evaluated: has_alternatives
0
4406 { -
4407 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
-
4408 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
4409 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4410 }
never executed: }
0
4411 else -
4412 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STACK_TOP, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
0
4413 } -
4414 else -
4415 { -
4416 if (ket == OP_KETRMIN || ket == OP_KETRMAX || has_alternatives)
never evaluated: ket == OP_KETRMIN
never evaluated: ket == OP_KETRMAX
never evaluated: has_alternatives
0
4417 { -
4418 allocate_stack(common, FALLBACK_AS(bracket_fallback)->u.framesize + 2);
never executed (the execution status of this line is deduced): allocate_stack(common, ((bracket_fallback*)fallback)->u.framesize + 2);
-
4419 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4420 OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, -STACK(FALLBACK_AS(bracket_fallback)->u.framesize + 1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(((bracket_fallback*)fallback)->u.framesize + 1) - 1) * (int)sizeof(sljit_w))));
-
4421 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4422 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0));
-
4423 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4424 init_frame(common, ccbegin, FALLBACK_AS(bracket_fallback)->u.framesize + 1, 2, FALSE);
never executed (the execution status of this line is deduced): init_frame(common, ccbegin, ((bracket_fallback*)fallback)->u.framesize + 1, 2, 0);
-
4425 }
never executed: }
0
4426 else -
4427 { -
4428 allocate_stack(common, FALLBACK_AS(bracket_fallback)->u.framesize + 1);
never executed (the execution status of this line is deduced): allocate_stack(common, ((bracket_fallback*)fallback)->u.framesize + 1);
-
4429 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4430 OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, -STACK(FALLBACK_AS(bracket_fallback)->u.framesize));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(((bracket_fallback*)fallback)->u.framesize) - 1) * (int)sizeof(sljit_w))));
-
4431 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0));
-
4432 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4433 init_frame(common, ccbegin, FALLBACK_AS(bracket_fallback)->u.framesize, 1, FALSE);
never executed (the execution status of this line is deduced): init_frame(common, ccbegin, ((bracket_fallback*)fallback)->u.framesize, 1, 0);
-
4434 }
never executed: }
0
4435 } -
4436 } -
4437else if (opcode == OP_CBRA || opcode == OP_SCBRA)
partially evaluated: opcode == OP_CBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4438 { -
4439 /* Saving the previous values. */ -
4440 allocate_stack(common, 3);
never executed (the execution status of this line is deduced): allocate_stack(common, 3);
-
4441 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
4442 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
-
4443 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4444 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
4445 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4446 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (6), (0));
-
4447 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(2) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4448 }
never executed: }
0
4449else if (opcode == OP_SBRA || opcode == OP_SCOND)
partially evaluated: opcode == OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCOND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4450 { -
4451 /* Saving the previous value. */ -
4452 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
-
4453 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
4454 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (6), (0));
-
4455 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
4456 }
never executed: }
0
4457else if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
4458 { -
4459 /* Pushing the starting string pointer. */ -
4460 allocate_stack(common, 1);
executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
4461 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4462 }
executed: }
Execution Count:1
1
4463 -
4464/* Generating code for the first alternative. */ -
4465if (opcode == OP_COND || opcode == OP_SCOND)
partially evaluated: opcode == OP_COND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCOND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4466 { -
4467 if (*hotpath == OP_CREF)
never evaluated: *hotpath == OP_CREF
0
4468 { -
4469 SLJIT_ASSERT(has_alternatives);
never executed: }
never evaluated: 0
0
4470 add_jump(compiler, &(FALLBACK_AS(bracket_fallback)->u.condfailed),
never executed (the execution status of this line is deduced): add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed),
-
4471 CMP(SLJIT_C_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(GET2(hotpath, 1) << 1), SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1)));
never executed (the execution status of this line is deduced): sljit_emit_cmp(compiler, (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (hotpath[1] << 1) * sizeof(sljit_w))), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))));
-
4472 hotpath += 1 + IMM2_SIZE;
never executed (the execution status of this line is deduced): hotpath += 1 + 1;
-
4473 }
never executed: }
0
4474 else if (*hotpath == OP_NCREF)
never evaluated: *hotpath == OP_NCREF
0
4475 { -
4476 SLJIT_ASSERT(has_alternatives);
never executed: }
never evaluated: 0
0
4477 stacksize = GET2(hotpath, 1);
never executed (the execution status of this line is deduced): stacksize = hotpath[1];
-
4478 jump = CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(stacksize << 1), SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (1), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (stacksize << 1) * sizeof(sljit_w))), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))));
-
4479 -
4480 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (2), (0));
-
4481 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, SLJIT_IMM, common->name_count);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (0x200), (common->name_count));
-
4482 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, SLJIT_IMM, common->name_entry_size);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (common->name_entry_size));
-
4483 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG1, 0, SLJIT_IMM, stacksize);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), (stacksize));
-
4484 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG2, 0, SLJIT_LOCALS_REG, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), (11), (0));
-
4485 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG3, 0, SLJIT_IMM, common->name_table);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (common->name_table));
-
4486 sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_searchovector));
never executed (the execution status of this line is deduced): sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_searchovector));
-
4487 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w))));
-
4488 add_jump(compiler, &(FALLBACK_AS(bracket_fallback)->u.condfailed), CMP(SLJIT_C_EQUAL, SLJIT_TEMPORARY_REG1, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed), sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0)));
-
4489 -
4490 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
4491 hotpath += 1 + IMM2_SIZE;
never executed (the execution status of this line is deduced): hotpath += 1 + 1;
-
4492 }
never executed: }
0
4493 else if (*hotpath == OP_RREF || *hotpath == OP_NRREF)
never evaluated: *hotpath == OP_RREF
never evaluated: *hotpath == OP_NRREF
0
4494 { -
4495 /* Never has other case. */ -
4496 FALLBACK_AS(bracket_fallback)->u.condfailed = NULL;
never executed (the execution status of this line is deduced): ((bracket_fallback*)fallback)->u.condfailed = ((void *)0);
-
4497 -
4498 stacksize = GET2(hotpath, 1);
never executed (the execution status of this line is deduced): stacksize = hotpath[1];
-
4499 if (common->currententry == NULL)
never evaluated: common->currententry == ((void *)0)
0
4500 stacksize = 0;
never executed: stacksize = 0;
0
4501 else if (stacksize == RREF_ANY)
never evaluated: stacksize == 0xffff
0
4502 stacksize = 1;
never executed: stacksize = 1;
0
4503 else if (common->currententry->start == 0)
never evaluated: common->currententry->start == 0
0
4504 stacksize = stacksize == 0;
never executed: stacksize = stacksize == 0;
0
4505 else -
4506 stacksize = stacksize == GET2(common->start, common->currententry->start + 1 + LINK_SIZE);
never executed: stacksize = stacksize == common->start[common->currententry->start + 1 + 1];
0
4507 -
4508 if (*hotpath == OP_RREF || stacksize || common->currententry == NULL)
never evaluated: *hotpath == OP_RREF
never evaluated: stacksize
never evaluated: common->currententry == ((void *)0)
0
4509 { -
4510 SLJIT_ASSERT(!has_alternatives);
never executed: }
never evaluated: 0
0
4511 if (stacksize != 0)
never evaluated: stacksize != 0
0
4512 hotpath += 1 + IMM2_SIZE;
never executed: hotpath += 1 + 1;
0
4513 else -
4514 { -
4515 if (*cc == OP_ALT)
never evaluated: *cc == OP_ALT
0
4516 { -
4517 hotpath = cc + 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): hotpath = cc + 1 + 1;
-
4518 cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
4519 }
never executed: }
0
4520 else -
4521 hotpath = cc;
never executed: hotpath = cc;
0
4522 } -
4523 } -
4524 else -
4525 { -
4526 SLJIT_ASSERT(has_alternatives);
never executed: }
never evaluated: 0
0
4527 -
4528 stacksize = GET2(hotpath, 1);
never executed (the execution status of this line is deduced): stacksize = hotpath[1];
-
4529 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (2), (0));
-
4530 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, SLJIT_IMM, common->name_count);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (0x200), (common->name_count));
-
4531 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, SLJIT_IMM, common->name_entry_size);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (common->name_entry_size));
-
4532 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, GET2(common->start, common->currententry->start + 1 + LINK_SIZE));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (common->start[common->currententry->start + 1 + 1]));
-
4533 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG1, 0, SLJIT_IMM, stacksize);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), (stacksize));
-
4534 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG2, 0, SLJIT_LOCALS_REG, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), (11), (0));
-
4535 OP1(SLJIT_MOV, SLJIT_TEMPORARY_REG3, 0, SLJIT_IMM, common->name_table);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), (0x200), (common->name_table));
-
4536 sljit_emit_ijump(compiler, SLJIT_CALL3, SLJIT_IMM, SLJIT_FUNC_OFFSET(do_searchgroups));
never executed (the execution status of this line is deduced): sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_searchgroups));
-
4537 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w))));
-
4538 add_jump(compiler, &(FALLBACK_AS(bracket_fallback)->u.condfailed), CMP(SLJIT_C_EQUAL, SLJIT_TEMPORARY_REG1, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed), sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0)));
-
4539 hotpath += 1 + IMM2_SIZE;
never executed (the execution status of this line is deduced): hotpath += 1 + 1;
-
4540 }
never executed: }
0
4541 } -
4542 else -
4543 { -
4544 SLJIT_ASSERT(has_alternatives && *hotpath >= OP_ASSERT && *hotpath <= OP_ASSERTBACK_NOT);
never executed: }
never evaluated: 0
0
4545 /* Similar code as PUSH_FALLBACK macro. */ -
4546 assert = sljit_alloc_memory(compiler, sizeof(assert_fallback));
never executed (the execution status of this line is deduced): assert = sljit_alloc_memory(compiler, sizeof(assert_fallback));
-
4547 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
4548 return NULL;
never executed: return ((void *)0);
0
4549 memset(assert, 0, sizeof(assert_fallback));
never executed (the execution status of this line is deduced): memset(assert, 0, sizeof(assert_fallback));
-
4550 assert->common.cc = hotpath;
never executed (the execution status of this line is deduced): assert->common.cc = hotpath;
-
4551 FALLBACK_AS(bracket_fallback)->u.assert = assert;
never executed (the execution status of this line is deduced): ((bracket_fallback*)fallback)->u.assert = assert;
-
4552 hotpath = compile_assert_hotpath(common, hotpath, assert, TRUE);
never executed (the execution status of this line is deduced): hotpath = compile_assert_hotpath(common, hotpath, assert, 1);
-
4553 }
never executed: }
0
4554 } -
4555 -
4556compile_hotpath(common, hotpath, cc, fallback);
executed (the execution status of this line is deduced): compile_hotpath(common, hotpath, cc, fallback);
-
4557if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4558 return NULL;
never executed: return ((void *)0);
0
4559 -
4560if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4561 { -
4562 if (FALLBACK_AS(bracket_fallback)->u.framesize < 0)
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
4563 { -
4564 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
4565 /* TMP2 which is set here used by OP_KETRMAX below. */ -
4566 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
4567 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
0
4568 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
4569 { -
4570 /* Move the STR_PTR to the localptr. */ -
4571 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (0));
-
4572 }
never executed: }
0
4573 } -
4574 else -
4575 { -
4576 stacksize = (ket == OP_KETRMIN || ket == OP_KETRMAX || has_alternatives) ? 2 : 1;
never evaluated: ket == OP_KETRMIN
never evaluated: ket == OP_KETRMAX
never evaluated: has_alternatives
0
4577 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, (FALLBACK_AS(bracket_fallback)->u.framesize + stacksize) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((((bracket_fallback*)fallback)->u.framesize + stacksize) * sizeof(sljit_w)));
-
4578 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
4579 { -
4580 /* TMP2 which is set here used by OP_KETRMAX below. */ -
4581 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
4582 }
never executed: }
0
4583 }
never executed: }
0
4584 } -
4585 -
4586stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
4587if (ket != OP_KET || bra != OP_BRA)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: bra != OP_BRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4588 stacksize++;
never executed: stacksize++;
0
4589if (has_alternatives && opcode != OP_ONCE)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-14
4590 stacksize++;
executed: stacksize++;
Execution Count:1
1
4591 -
4592if (stacksize > 0)
evaluated: stacksize > 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
4593 allocate_stack(common, stacksize);
executed: allocate_stack(common, stacksize);
Execution Count:1
1
4594 -
4595stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
4596if (ket != OP_KET)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4597 { -
4598 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4599 stacksize++;
never executed (the execution status of this line is deduced): stacksize++;
-
4600 }
never executed: }
0
4601else if (bra != OP_BRA)
partially evaluated: bra != OP_BRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4602 { -
4603 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
4604 stacksize++;
never executed (the execution status of this line is deduced): stacksize++;
-
4605 }
never executed: }
0
4606 -
4607if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
4608 { -
4609 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
4610 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), SLJIT_IMM, 0);
executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
Execution Count:1
1
4611 if (ket != OP_KETRMAX)
partially evaluated: ket != OP_KETRMAX
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
4612 FALLBACK_AS(bracket_fallback)->althotpath = LABEL();
executed: ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
Execution Count:1
1
4613 }
executed: }
Execution Count:1
1
4614 -
4615/* Must be after the hotpath label. */ -
4616if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4617 { -
4618 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4619 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0));
-
4620 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 0) * sizeof(sljit_w))), (1), (0));
-
4621 }
never executed: }
0
4622 -
4623if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4624 { -
4625 if (opcode == OP_ONCE || opcode >= OP_SBRA)
never evaluated: opcode == OP_ONCE
never evaluated: opcode >= OP_SBRA
0
4626 { -
4627 if (has_alternatives)
never evaluated: has_alternatives
0
4628 FALLBACK_AS(bracket_fallback)->althotpath = LABEL();
never executed: ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
0
4629 /* Checking zero-length iteration. */ -
4630 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
4631 CMPTO(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STR_PTR, 0, rmaxlabel);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), ((0x100 | (11))), (localptr), (6), (0)), (rmaxlabel));
0
4632 else -
4633 /* TMP2 must contain the starting STR_PTR. */ -
4634 CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, rmaxlabel);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (rmaxlabel));
0
4635 } -
4636 else -
4637 JUMPTO(SLJIT_JUMP, rmaxlabel);
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (rmaxlabel));
0
4638 FALLBACK_AS(bracket_fallback)->recursivehotpath = LABEL();
never executed (the execution status of this line is deduced): ((bracket_fallback*)fallback)->recursivehotpath = sljit_emit_label(compiler);
-
4639 }
never executed: }
0
4640 -
4641if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4642 FALLBACK_AS(bracket_fallback)->zerohotpath = LABEL();
never executed: ((bracket_fallback*)fallback)->zerohotpath = sljit_emit_label(compiler);
0
4643 -
4644if (bra == OP_BRAMINZERO)
partially evaluated: bra == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4645 { -
4646 /* This is a fallback path! (From the viewpoint of OP_BRAMINZERO) */ -
4647 JUMPTO(SLJIT_JUMP, ((braminzero_fallback*)parent)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((braminzero_fallback*)parent)->hotpath));
-
4648 if (braminzerojump != NULL)
never evaluated: braminzerojump != ((void *)0)
0
4649 { -
4650 JUMPHERE(braminzerojump);
never executed (the execution status of this line is deduced): sljit_set_label((braminzerojump), sljit_emit_label(compiler));
-
4651 /* We need to release the end pointer to perform the -
4652 fallback for the zero-length iteration. When -
4653 framesize is < 0, OP_ONCE will do the release itself. */ -
4654 if (opcode == OP_ONCE && FALLBACK_AS(bracket_fallback)->u.framesize >= 0)
never evaluated: opcode == OP_ONCE
never evaluated: ((bracket_fallback*)fallback)->u.framesize >= 0
0
4655 { -
4656 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
4657 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
4658 }
never executed: }
0
4659 else if (ket == OP_KETRMIN && opcode != OP_ONCE)
never evaluated: ket == OP_KETRMIN
never evaluated: opcode != OP_ONCE
0
4660 free_stack(common, 1);
never executed: free_stack(common, 1);
0
4661 } -
4662 /* Continue to the normal fallback. */ -
4663 }
never executed: }
0
4664 -
4665if ((ket != OP_KET && bra != OP_BRAMINZERO) || bra == OP_BRAZERO)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: bra != OP_BRAMINZERO
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4666 decrease_call_count(common);
never executed: decrease_call_count(common);
0
4667 -
4668/* Skip the other alternatives. */ -
4669while (*cc == OP_ALT)
evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:15
1-15
4670 cc += GET(cc, 1);
executed: cc += (cc[1]);
Execution Count:1
1
4671cc += 1 + LINK_SIZE;
executed (the execution status of this line is deduced): cc += 1 + 1;
-
4672return cc;
executed: return cc;
Execution Count:15
15
4673} -
4674 -
4675static pcre_uchar *compile_bracketpos_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4676{ -
4677DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
4678fallback_common *fallback;
never executed (the execution status of this line is deduced): fallback_common *fallback;
-
4679pcre_uchar opcode;
never executed (the execution status of this line is deduced): pcre_uchar opcode;
-
4680int localptr;
never executed (the execution status of this line is deduced): int localptr;
-
4681int cbraprivptr = 0;
never executed (the execution status of this line is deduced): int cbraprivptr = 0;
-
4682int framesize;
never executed (the execution status of this line is deduced): int framesize;
-
4683int stacksize;
never executed (the execution status of this line is deduced): int stacksize;
-
4684int offset = 0;
never executed (the execution status of this line is deduced): int offset = 0;
-
4685BOOL zero = FALSE;
never executed (the execution status of this line is deduced): BOOL zero = 0;
-
4686pcre_uchar *ccbegin = NULL;
never executed (the execution status of this line is deduced): pcre_uchar *ccbegin = ((void *)0);
-
4687int stack;
never executed (the execution status of this line is deduced): int stack;
-
4688struct sljit_label *loop = NULL;
never executed (the execution status of this line is deduced): struct sljit_label *loop = ((void *)0);
-
4689struct jump_list *emptymatch = NULL;
never executed (the execution status of this line is deduced): struct jump_list *emptymatch = ((void *)0);
-
4690 -
4691PUSH_FALLBACK(sizeof(bracketpos_fallback), cc, NULL);
never executed: return ((void *)0);
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
4692if (*cc == OP_BRAPOSZERO)
never evaluated: *cc == OP_BRAPOSZERO
0
4693 { -
4694 zero = TRUE;
never executed (the execution status of this line is deduced): zero = 1;
-
4695 cc++;
never executed (the execution status of this line is deduced): cc++;
-
4696 }
never executed: }
0
4697 -
4698opcode = *cc;
never executed (the execution status of this line is deduced): opcode = *cc;
-
4699localptr = PRIV_DATA(cc);
never executed (the execution status of this line is deduced): localptr = (common->localptrs[(cc) - common->start]);
-
4700SLJIT_ASSERT(localptr != 0);
never executed: }
never evaluated: 0
0
4701FALLBACK_AS(bracketpos_fallback)->localptr = localptr;
never executed (the execution status of this line is deduced): ((bracketpos_fallback*)fallback)->localptr = localptr;
-
4702switch(opcode) -
4703 { -
4704 case OP_BRAPOS: -
4705 case OP_SBRAPOS: -
4706 ccbegin = cc + 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): ccbegin = cc + 1 + 1;
-
4707 break;
never executed: break;
0
4708 -
4709 case OP_CBRAPOS: -
4710 case OP_SCBRAPOS: -
4711 offset = GET2(cc, 1 + LINK_SIZE);
never executed (the execution status of this line is deduced): offset = cc[1 + 1];
-
4712 cbraprivptr = OVECTOR_PRIV(offset);
never executed (the execution status of this line is deduced): cbraprivptr = (common->cbraptr + (offset) * sizeof(sljit_w));
-
4713 offset <<= 1;
never executed (the execution status of this line is deduced): offset <<= 1;
-
4714 ccbegin = cc + 1 + LINK_SIZE + IMM2_SIZE;
never executed (the execution status of this line is deduced): ccbegin = cc + 1 + 1 + 1;
-
4715 break;
never executed: break;
0
4716 -
4717 default: -
4718 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
4719 break;
never executed: break;
0
4720 } -
4721 -
4722framesize = get_framesize(common, cc, FALSE);
never executed (the execution status of this line is deduced): framesize = get_framesize(common, cc, 0);
-
4723FALLBACK_AS(bracketpos_fallback)->framesize = framesize;
never executed (the execution status of this line is deduced): ((bracketpos_fallback*)fallback)->framesize = framesize;
-
4724if (framesize < 0)
never evaluated: framesize < 0
0
4725 { -
4726 stacksize = (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS) ? 2 : 1;
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4727 if (!zero)
never evaluated: !zero
0
4728 stacksize++;
never executed: stacksize++;
0
4729 FALLBACK_AS(bracketpos_fallback)->stacksize = stacksize;
never executed (the execution status of this line is deduced): ((bracketpos_fallback*)fallback)->stacksize = stacksize;
-
4730 allocate_stack(common, stacksize);
never executed (the execution status of this line is deduced): allocate_stack(common, stacksize);
-
4731 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
-
4732 -
4733 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4734 { -
4735 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))));
-
4736 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
-
4737 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4738 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
4739 }
never executed: }
0
4740 else -
4741 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
4742 -
4743 if (!zero)
never evaluated: !zero
0
4744 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 1);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
0
4745 }
never executed: }
0
4746else -
4747 { -
4748 stacksize = framesize + 1;
never executed (the execution status of this line is deduced): stacksize = framesize + 1;
-
4749 if (!zero)
never evaluated: !zero
0
4750 stacksize++;
never executed: stacksize++;
0
4751 if (opcode == OP_BRAPOS || opcode == OP_SBRAPOS)
never evaluated: opcode == OP_BRAPOS
never evaluated: opcode == OP_SBRAPOS
0
4752 stacksize++;
never executed: stacksize++;
0
4753 FALLBACK_AS(bracketpos_fallback)->stacksize = stacksize;
never executed (the execution status of this line is deduced): ((bracketpos_fallback*)fallback)->stacksize = stacksize;
-
4754 allocate_stack(common, stacksize);
never executed (the execution status of this line is deduced): allocate_stack(common, stacksize);
-
4755 -
4756 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
4757 OP2(SLJIT_SUB, TMP2, 0, STACK_TOP, 0, SLJIT_IMM, -STACK(stacksize - 1));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))));
-
4758 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0));
-
4759 stack = 0;
never executed (the execution status of this line is deduced): stack = 0;
-
4760 if (!zero)
never evaluated: !zero
0
4761 { -
4762 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
-
4763 stack++;
never executed (the execution status of this line is deduced): stack++;
-
4764 }
never executed: }
0
4765 if (opcode == OP_BRAPOS || opcode == OP_SBRAPOS)
never evaluated: opcode == OP_BRAPOS
never evaluated: opcode == OP_SBRAPOS
0
4766 { -
4767 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stack), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stack) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4768 stack++;
never executed (the execution status of this line is deduced): stack++;
-
4769 }
never executed: }
0
4770 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stack), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stack) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
4771 init_frame(common, cc, stacksize - 1, stacksize - framesize, FALSE);
never executed (the execution status of this line is deduced): init_frame(common, cc, stacksize - 1, stacksize - framesize, 0);
-
4772 }
never executed: }
0
4773 -
4774if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4775 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0));
0
4776 -
4777loop = LABEL();
never executed (the execution status of this line is deduced): loop = sljit_emit_label(compiler);
-
4778while (*cc != OP_KETRPOS)
never evaluated: *cc != OP_KETRPOS
0
4779 { -
4780 fallback->top = NULL;
never executed (the execution status of this line is deduced): fallback->top = ((void *)0);
-
4781 fallback->topfallbacks = NULL;
never executed (the execution status of this line is deduced): fallback->topfallbacks = ((void *)0);
-
4782 cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
4783 -
4784 compile_hotpath(common, ccbegin, cc, fallback);
never executed (the execution status of this line is deduced): compile_hotpath(common, ccbegin, cc, fallback);
-
4785 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
4786 return NULL;
never executed: return ((void *)0);
0
4787 -
4788 if (framesize < 0)
never evaluated: framesize < 0
0
4789 { -
4790 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
4791 -
4792 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4793 { -
4794 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (cbraprivptr));
-
4795 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0));
-
4796 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0));
-
4797 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0));
-
4798 }
never executed: }
0
4799 else -
4800 { -
4801 if (opcode == OP_SBRAPOS)
never evaluated: opcode == OP_SBRAPOS
0
4802 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed: sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
4803 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
4804 }
never executed: }
0
4805 -
4806 if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_SBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4807 add_jump(compiler, &emptymatch, CMP(SLJIT_C_EQUAL, TMP1, 0, STR_PTR, 0));
never executed: add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
0
4808 -
4809 if (!zero)
never evaluated: !zero
0
4810 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4811 }
never executed: }
0
4812 else -
4813 { -
4814 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4815 { -
4816 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, stacksize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), (stacksize * sizeof(sljit_w)));
-
4817 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (cbraprivptr));
-
4818 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0));
-
4819 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0));
-
4820 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0));
-
4821 }
never executed: }
0
4822 else -
4823 { -
4824 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
-
4825 OP2(SLJIT_ADD, STACK_TOP, 0, TMP2, 0, SLJIT_IMM, stacksize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (3), (0), (0x200), (stacksize * sizeof(sljit_w)));
-
4826 if (opcode == OP_SBRAPOS)
never evaluated: opcode == OP_SBRAPOS
0
4827 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_w));
never executed: sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)));
0
4828 OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_w), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)), (6), (0));
-
4829 }
never executed: }
0
4830 -
4831 if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_SBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4832 add_jump(compiler, &emptymatch, CMP(SLJIT_C_EQUAL, TMP1, 0, STR_PTR, 0));
never executed: add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
0
4833 -
4834 if (!zero)
never evaluated: !zero
0
4835 { -
4836 if (framesize < 0)
never evaluated: framesize < 0
0
4837 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4838 else -
4839 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4840 } -
4841 }
never executed: }
0
4842 JUMPTO(SLJIT_JUMP, loop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (loop));
-
4843 flush_stubs(common);
never executed (the execution status of this line is deduced): flush_stubs(common);
-
4844 -
4845 compile_fallbackpath(common, fallback->top);
never executed (the execution status of this line is deduced): compile_fallbackpath(common, fallback->top);
-
4846 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
4847 return NULL;
never executed: return ((void *)0);
0
4848 set_jumps(fallback->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(fallback->topfallbacks, sljit_emit_label(compiler));
-
4849 -
4850 if (framesize < 0)
never evaluated: framesize < 0
0
4851 { -
4852 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4853 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (cbraprivptr));
0
4854 else -
4855 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
4856 } -
4857 else -
4858 { -
4859 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4860 { -
4861 /* Last alternative. */ -
4862 if (*cc == OP_KETRPOS)
never evaluated: *cc == OP_KETRPOS
0
4863 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
0
4864 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), cbraprivptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (cbraprivptr));
-
4865 }
never executed: }
0
4866 else -
4867 { -
4868 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
-
4869 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)));
-
4870 }
never executed: }
0
4871 } -
4872 -
4873 if (*cc == OP_KETRPOS)
never evaluated: *cc == OP_KETRPOS
0
4874 break;
never executed: break;
0
4875 ccbegin = cc + 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): ccbegin = cc + 1 + 1;
-
4876 }
never executed: }
0
4877 -
4878fallback->topfallbacks = NULL;
never executed (the execution status of this line is deduced): fallback->topfallbacks = ((void *)0);
-
4879if (!zero)
never evaluated: !zero
0
4880 { -
4881 if (framesize < 0)
never evaluated: framesize < 0
0
4882 add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0)));
0
4883 else /* TMP2 is set to [localptr] above. */ -
4884 add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_NOT_EQUAL, SLJIT_MEM1(TMP2), (stacksize - 1) * sizeof(sljit_w), SLJIT_IMM, 0));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), ((0x100 | (3))), ((stacksize - 1) * sizeof(sljit_w)), (0x200), (0)));
0
4885 } -
4886 -
4887/* None of them matched. */ -
4888set_jumps(emptymatch, LABEL());
never executed (the execution status of this line is deduced): set_jumps(emptymatch, sljit_emit_label(compiler));
-
4889decrease_call_count(common);
never executed (the execution status of this line is deduced): decrease_call_count(common);
-
4890return cc + 1 + LINK_SIZE;
never executed: return cc + 1 + 1;
0
4891} -
4892 -
4893static SLJIT_INLINE pcre_uchar *get_iterator_parameters(compiler_common *common, pcre_uchar *cc, pcre_uchar *opcode, pcre_uchar *type, int *arg1, int *arg2, pcre_uchar **end) -
4894{ -
4895int class_len;
executed (the execution status of this line is deduced): int class_len;
-
4896 -
4897*opcode = *cc;
executed (the execution status of this line is deduced): *opcode = *cc;
-
4898if (*opcode >= OP_STAR && *opcode <= OP_POSUPTO)
partially evaluated: *opcode >= OP_STAR
TRUEFALSE
yes
Evaluation Count:16
no
Evaluation Count:0
evaluated: *opcode <= OP_POSUPTO
TRUEFALSE
yes
Evaluation Count:4
yes
Evaluation Count:12
0-16
4899 { -
4900 cc++;
executed (the execution status of this line is deduced): cc++;
-
4901 *type = OP_CHAR;
executed (the execution status of this line is deduced): *type = OP_CHAR;
-
4902 }
executed: }
Execution Count:4
4
4903else if (*opcode >= OP_STARI && *opcode <= OP_POSUPTOI)
partially evaluated: *opcode >= OP_STARI
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
partially evaluated: *opcode <= OP_POSUPTOI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
4904 { -
4905 cc++;
never executed (the execution status of this line is deduced): cc++;
-
4906 *type = OP_CHARI;
never executed (the execution status of this line is deduced): *type = OP_CHARI;
-
4907 *opcode -= OP_STARI - OP_STAR;
never executed (the execution status of this line is deduced): *opcode -= OP_STARI - OP_STAR;
-
4908 }
never executed: }
0
4909else if (*opcode >= OP_NOTSTAR && *opcode <= OP_NOTPOSUPTO)
partially evaluated: *opcode >= OP_NOTSTAR
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
partially evaluated: *opcode <= OP_NOTPOSUPTO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
4910 { -
4911 cc++;
never executed (the execution status of this line is deduced): cc++;
-
4912 *type = OP_NOT;
never executed (the execution status of this line is deduced): *type = OP_NOT;
-
4913 *opcode -= OP_NOTSTAR - OP_STAR;
never executed (the execution status of this line is deduced): *opcode -= OP_NOTSTAR - OP_STAR;
-
4914 }
never executed: }
0
4915else if (*opcode >= OP_NOTSTARI && *opcode <= OP_NOTPOSUPTOI)
partially evaluated: *opcode >= OP_NOTSTARI
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
partially evaluated: *opcode <= OP_NOTPOSUPTOI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:12
0-12
4916 { -
4917 cc++;
never executed (the execution status of this line is deduced): cc++;
-
4918 *type = OP_NOTI;
never executed (the execution status of this line is deduced): *type = OP_NOTI;
-
4919 *opcode -= OP_NOTSTARI - OP_STAR;
never executed (the execution status of this line is deduced): *opcode -= OP_NOTSTARI - OP_STAR;
-
4920 }
never executed: }
0
4921else if (*opcode >= OP_TYPESTAR && *opcode <= OP_TYPEPOSUPTO)
partially evaluated: *opcode >= OP_TYPESTAR
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
evaluated: *opcode <= OP_TYPEPOSUPTO
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:2
0-12
4922 { -
4923 cc++;
executed (the execution status of this line is deduced): cc++;
-
4924 *opcode -= OP_TYPESTAR - OP_STAR;
executed (the execution status of this line is deduced): *opcode -= OP_TYPESTAR - OP_STAR;
-
4925 *type = 0;
executed (the execution status of this line is deduced): *type = 0;
-
4926 }
executed: }
Execution Count:10
10
4927else -
4928 { -
4929 SLJIT_ASSERT(*opcode >= OP_CLASS || *opcode <= OP_XCLASS);
executed: }
Execution Count:2
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4930 *type = *opcode;
executed (the execution status of this line is deduced): *type = *opcode;
-
4931 cc++;
executed (the execution status of this line is deduced): cc++;
-
4932 class_len = (*type < OP_XCLASS) ? (int)(1 + (32 / sizeof(pcre_uchar))) : GET(cc, 0);
partially evaluated: (*type < OP_XCLASS)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4933 *opcode = cc[class_len - 1];
executed (the execution status of this line is deduced): *opcode = cc[class_len - 1];
-
4934 if (*opcode >= OP_CRSTAR && *opcode <= OP_CRMINQUERY)
partially evaluated: *opcode >= OP_CRSTAR
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: *opcode <= OP_CRMINQUERY
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
4935 { -
4936 *opcode -= OP_CRSTAR - OP_STAR;
executed (the execution status of this line is deduced): *opcode -= OP_CRSTAR - OP_STAR;
-
4937 if (end != NULL)
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
4938 *end = cc + class_len;
executed: *end = cc + class_len;
Execution Count:1
1
4939 }
executed: }
Execution Count:2
2
4940 else -
4941 { -
4942 SLJIT_ASSERT(*opcode == OP_CRRANGE || *opcode == OP_CRMINRANGE);
never executed: }
never evaluated: 0
0
4943 *arg1 = GET2(cc, (class_len + IMM2_SIZE));
never executed (the execution status of this line is deduced): *arg1 = cc[(class_len + 1)];
-
4944 *arg2 = GET2(cc, class_len);
never executed (the execution status of this line is deduced): *arg2 = cc[class_len];
-
4945 -
4946 if (*arg2 == 0)
never evaluated: *arg2 == 0
0
4947 { -
4948 SLJIT_ASSERT(*arg1 != 0);
never executed: }
never evaluated: 0
0
4949 *opcode = (*opcode == OP_CRRANGE) ? OP_UPTO : OP_MINUPTO;
never evaluated: (*opcode == OP_CRRANGE)
0
4950 }
never executed: }
0
4951 if (*arg1 == *arg2)
never evaluated: *arg1 == *arg2
0
4952 *opcode = OP_EXACT;
never executed: *opcode = OP_EXACT;
0
4953 -
4954 if (end != NULL)
never evaluated: end != ((void *)0)
0
4955 *end = cc + class_len + 2 * IMM2_SIZE;
never executed: *end = cc + class_len + 2 * 1;
0
4956 }
never executed: }
0
4957 return cc;
executed: return cc;
Execution Count:2
2
4958 } -
4959 -
4960if (*opcode == OP_UPTO || *opcode == OP_MINUPTO || *opcode == OP_EXACT || *opcode == OP_POSUPTO)
partially evaluated: *opcode == OP_UPTO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
partially evaluated: *opcode == OP_MINUPTO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
partially evaluated: *opcode == OP_EXACT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
partially evaluated: *opcode == OP_POSUPTO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
0-14
4961 { -
4962 *arg1 = GET2(cc, 0);
never executed (the execution status of this line is deduced): *arg1 = cc[0];
-
4963 cc += IMM2_SIZE;
never executed (the execution status of this line is deduced): cc += 1;
-
4964 }
never executed: }
0
4965 -
4966if (*type == 0)
evaluated: *type == 0
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:4
4-10
4967 { -
4968 *type = *cc;
executed (the execution status of this line is deduced): *type = *cc;
-
4969 if (end != NULL)
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:5
5
4970 *end = next_opcode(common, cc);
executed: *end = next_opcode(common, cc);
Execution Count:5
5
4971 cc++;
executed (the execution status of this line is deduced): cc++;
-
4972 return cc;
executed: return cc;
Execution Count:10
10
4973 } -
4974 -
4975if (end != NULL)
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
2
4976 { -
4977 *end = cc + 1;
executed (the execution status of this line is deduced): *end = cc + 1;
-
4978#ifdef SUPPORT_UTF -
4979 if (common->utf && HAS_EXTRALEN(*cc)) *end += GET_EXTRALEN(*cc);
never executed: *end += 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: (((*cc) & 0xfc00) == 0xd800)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4980#endif -
4981 }
executed: }
Execution Count:2
2
4982return cc;
executed: return cc;
Execution Count:4
4
4983} -
4984 -
4985static pcre_uchar *compile_iterator_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4986{ -
4987DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
4988fallback_common *fallback;
executed (the execution status of this line is deduced): fallback_common *fallback;
-
4989pcre_uchar opcode;
executed (the execution status of this line is deduced): pcre_uchar opcode;
-
4990pcre_uchar type;
executed (the execution status of this line is deduced): pcre_uchar type;
-
4991int arg1 = -1, arg2 = -1;
executed (the execution status of this line is deduced): int arg1 = -1, arg2 = -1;
-
4992pcre_uchar* end;
executed (the execution status of this line is deduced): pcre_uchar* end;
-
4993jump_list *nomatch = NULL;
executed (the execution status of this line is deduced): jump_list *nomatch = ((void *)0);
-
4994struct sljit_jump *jump = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *jump = ((void *)0);
-
4995struct sljit_label *label;
executed (the execution status of this line is deduced): struct sljit_label *label;
-
4996 -
4997PUSH_FALLBACK(sizeof(iterator_fallback), cc, NULL);
never executed: return ((void *)0);
executed: }
Execution Count:8
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
4998 -
4999cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, &end);
executed (the execution status of this line is deduced): cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, &end);
-
5000 -
5001switch(opcode) -
5002 { -
5003 case OP_STAR: -
5004 case OP_PLUS: -
5005 case OP_UPTO: -
5006 case OP_CRRANGE: -
5007 if (type == OP_ANYNL || type == OP_EXTUNI)
partially evaluated: type == OP_ANYNL
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
partially evaluated: type == OP_EXTUNI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
5008 { -
5009 if (opcode == OP_STAR || opcode == OP_UPTO)
never evaluated: opcode == OP_STAR
never evaluated: opcode == OP_UPTO
0
5010 { -
5011 allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
5012 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5013 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5014 }
never executed: }
0
5015 else -
5016 { -
5017 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5018 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5019 }
never executed: }
0
5020 if (opcode == OP_UPTO || opcode == OP_CRRANGE)
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
0
5021 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
0
5022 -
5023 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
5024 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
-
5025 if (opcode == OP_UPTO || opcode == OP_CRRANGE)
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
0
5026 { -
5027 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
-
5028 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
5029 if (opcode == OP_CRRANGE && arg2 > 0)
never evaluated: opcode == OP_CRRANGE
never evaluated: arg2 > 0
0
5030 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg2, label);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2)), (label));
0
5031 if (opcode == OP_UPTO || (opcode == OP_CRRANGE && arg1 > 0))
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
never evaluated: arg1 > 0
0
5032 jump = CMP(SLJIT_C_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, arg1);
never executed: jump = sljit_emit_cmp(compiler, (3), (1), (0), (0x200), (arg1));
0
5033 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0));
-
5034 }
never executed: }
0
5035 -
5036 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5037 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5038 JUMPTO(SLJIT_JUMP, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (label));
-
5039 if (jump != NULL)
never evaluated: jump != ((void *)0)
0
5040 JUMPHERE(jump);
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
5041 }
never executed: }
0
5042 else -
5043 { -
5044 allocate_stack(common, 2);
executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
5045 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5046 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
-
5047 label = LABEL();
executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
5048 compile_char1_hotpath(common, type, cc, &nomatch);
executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &nomatch);
-
5049 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5050 if (opcode <= OP_PLUS || (opcode == OP_CRRANGE && arg1 == 0))
partially evaluated: opcode <= OP_PLUS
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
never evaluated: opcode == OP_CRRANGE
never evaluated: arg1 == 0
0-8
5051 { -
5052 OP2(SLJIT_ADD, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
-
5053 JUMPTO(SLJIT_JUMP, label);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (label));
-
5054 }
executed: }
Execution Count:8
8
5055 else -
5056 { -
5057 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
5058 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
5059 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
5060 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg1 + 1, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label));
-
5061 }
never executed: }
0
5062 set_jumps(nomatch, LABEL());
executed (the execution status of this line is deduced): set_jumps(nomatch, sljit_emit_label(compiler));
-
5063 if (opcode == OP_PLUS || opcode == OP_CRRANGE)
partially evaluated: opcode == OP_PLUS
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
partially evaluated: opcode == OP_CRRANGE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
5064 add_jump(compiler, &fallback->topfallbacks,
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (2), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (opcode == OP_PLUS ? 2 : arg2 + 1)));
0
5065 CMP(SLJIT_C_LESS, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, opcode == OP_PLUS ? 2 : arg2 + 1));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (2), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (opcode == OP_PLUS ? 2 : arg2 + 1)));
0
5066 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5067 }
executed: }
Execution Count:8
8
5068 FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
5069 break;
executed: break;
Execution Count:8
8
5070 -
5071 case OP_MINSTAR: -
5072 case OP_MINPLUS: -
5073 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5074 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5075 if (opcode == OP_MINPLUS)
never evaluated: opcode == OP_MINPLUS
0
5076 add_jump(compiler, &fallback->topfallbacks, JUMP(SLJIT_JUMP));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
0
5077 FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
5078 break;
never executed: break;
0
5079 -
5080 case OP_MINUPTO: -
5081 case OP_CRMINRANGE: -
5082 allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
5083 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5084 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
-
5085 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
5086 add_jump(compiler, &fallback->topfallbacks, JUMP(SLJIT_JUMP));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
0
5087 FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
5088 break;
never executed: break;
0
5089 -
5090 case OP_QUERY: -
5091 case OP_MINQUERY: -
5092 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5093 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5094 if (opcode == OP_QUERY)
never evaluated: opcode == OP_QUERY
0
5095 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
never executed: compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
0
5096 FALLBACK_AS(iterator_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
5097 break;
never executed: break;
0
5098 -
5099 case OP_EXACT: -
5100 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (1));
-
5101 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
5102 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
-
5103 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
-
5104 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
5105 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0));
-
5106 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg1 + 1, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label));
-
5107 break;
never executed: break;
0
5108 -
5109 case OP_POSSTAR: -
5110 case OP_POSPLUS: -
5111 case OP_POSUPTO: -
5112 if (opcode != OP_POSSTAR)
never evaluated: opcode != OP_POSSTAR
0
5113 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 1);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (1));
0
5114 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0));
-
5115 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
5116 compile_char1_hotpath(common, type, cc, &nomatch);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &nomatch);
-
5117 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0));
-
5118 if (opcode != OP_POSUPTO)
never evaluated: opcode != OP_POSUPTO
0
5119 { -
5120 if (opcode == OP_POSPLUS)
never evaluated: opcode == OP_POSPLUS
0
5121 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 2);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2));
0
5122 JUMPTO(SLJIT_JUMP, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (label));
-
5123 }
never executed: }
0
5124 else -
5125 { -
5126 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
-
5127 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
5128 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0));
-
5129 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg1 + 1, label);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label));
-
5130 }
never executed: }
0
5131 set_jumps(nomatch, LABEL());
never executed (the execution status of this line is deduced): set_jumps(nomatch, sljit_emit_label(compiler));
-
5132 if (opcode == OP_POSPLUS)
never evaluated: opcode == OP_POSPLUS
0
5133 add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_LESS, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE0, SLJIT_IMM, 2));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (2), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2)));
0
5134 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w))));
-
5135 break;
never executed: break;
0
5136 -
5137 case OP_POSQUERY: -
5138 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0));
-
5139 compile_char1_hotpath(common, type, cc, &nomatch);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &nomatch);
-
5140 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1, STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0));
-
5141 set_jumps(nomatch, LABEL());
never executed (the execution status of this line is deduced): set_jumps(nomatch, sljit_emit_label(compiler));
-
5142 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), POSSESSIVE1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w))));
-
5143 break;
never executed: break;
0
5144 -
5145 default: -
5146 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
5147 break;
never executed: break;
0
5148 } -
5149 -
5150decrease_call_count(common);
executed (the execution status of this line is deduced): decrease_call_count(common);
-
5151return end;
executed: return end;
Execution Count:8
8
5152} -
5153 -
5154static SLJIT_INLINE pcre_uchar *compile_fail_accept_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
5155{ -
5156DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5157fallback_common *fallback;
never executed (the execution status of this line is deduced): fallback_common *fallback;
-
5158 -
5159PUSH_FALLBACK(sizeof(bracket_fallback), cc, NULL);
never executed: return ((void *)0);
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
5160 -
5161if (*cc == OP_FAIL)
never evaluated: *cc == OP_FAIL
0
5162 { -
5163 add_jump(compiler, &fallback->topfallbacks, JUMP(SLJIT_JUMP));
never executed (the execution status of this line is deduced): add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
-
5164 return cc + 1;
never executed: return cc + 1;
0
5165 } -
5166 -
5167if (*cc == OP_ASSERT_ACCEPT || common->currententry != NULL)
never evaluated: *cc == OP_ASSERT_ACCEPT
never evaluated: common->currententry != ((void *)0)
0
5168 { -
5169 /* No need to check notempty conditions. */ -
5170 if (common->acceptlabel == NULL)
never evaluated: common->acceptlabel == ((void *)0)
0
5171 add_jump(compiler, &common->accept, JUMP(SLJIT_JUMP));
never executed: add_jump(compiler, &common->accept, sljit_emit_jump(compiler, (22)));
0
5172 else -
5173 JUMPTO(SLJIT_JUMP, common->acceptlabel);
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (common->acceptlabel));
0
5174 return cc + 1;
never executed: return cc + 1;
0
5175 } -
5176 -
5177if (common->acceptlabel == NULL)
never evaluated: common->acceptlabel == ((void *)0)
0
5178 add_jump(compiler, &common->accept, CMP(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0)));
never executed: add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))));
0
5179else -
5180 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), common->acceptlabel);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))), (common->acceptlabel));
0
5181OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
5182OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty) - 0x10)));
-
5183add_jump(compiler, &fallback->topfallbacks, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed (the execution status of this line is deduced): add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)));
-
5184OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty_atstart));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty_atstart) - 0x10)));
-
5185if (common->acceptlabel == NULL)
never evaluated: common->acceptlabel == ((void *)0)
0
5186 add_jump(compiler, &common->accept, CMP(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0));
never executed: add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)));
0
5187else -
5188 CMPTO(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0, common->acceptlabel);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)), (common->acceptlabel));
0
5189OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
5190if (common->acceptlabel == NULL)
never evaluated: common->acceptlabel == ((void *)0)
0
5191 add_jump(compiler, &common->accept, CMP(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0));
never executed: add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)));
0
5192else -
5193 CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, common->acceptlabel);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (common->acceptlabel));
0
5194add_jump(compiler, &fallback->topfallbacks, JUMP(SLJIT_JUMP));
never executed (the execution status of this line is deduced): add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
-
5195return cc + 1;
never executed: return cc + 1;
0
5196} -
5197 -
5198static SLJIT_INLINE pcre_uchar *compile_close_hotpath(compiler_common *common, pcre_uchar *cc) -
5199{ -
5200DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5201int offset = GET2(cc, 1);
never executed (the execution status of this line is deduced): int offset = cc[1];
-
5202 -
5203/* Data will be discarded anyway... */ -
5204if (common->currententry != NULL)
never evaluated: common->currententry != ((void *)0)
0
5205 return cc + 1 + IMM2_SIZE;
never executed: return cc + 1 + 1;
0
5206 -
5207OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR_PRIV(offset));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((common->cbraptr + (offset) * sizeof(sljit_w))));
-
5208offset <<= 1;
never executed (the execution status of this line is deduced): offset <<= 1;
-
5209OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0));
-
5210OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0));
-
5211return cc + 1 + IMM2_SIZE;
never executed: return cc + 1 + 1;
0
5212} -
5213 -
5214static void compile_hotpath(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, fallback_common *parent) -
5215{ -
5216DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5217fallback_common *fallback;
executed (the execution status of this line is deduced): fallback_common *fallback;
-
5218 -
5219while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:31
yes
Evaluation Count:31
31
5220 { -
5221 switch(*cc) -
5222 { -
5223 case OP_SOD: -
5224 case OP_SOM: -
5225 case OP_NOT_WORD_BOUNDARY: -
5226 case OP_WORD_BOUNDARY: -
5227 case OP_NOT_DIGIT: -
5228 case OP_DIGIT: -
5229 case OP_NOT_WHITESPACE: -
5230 case OP_WHITESPACE: -
5231 case OP_NOT_WORDCHAR: -
5232 case OP_WORDCHAR: -
5233 case OP_ANY: -
5234 case OP_ALLANY: -
5235 case OP_ANYBYTE: -
5236 case OP_NOTPROP: -
5237 case OP_PROP: -
5238 case OP_ANYNL: -
5239 case OP_NOT_HSPACE: -
5240 case OP_HSPACE: -
5241 case OP_NOT_VSPACE: -
5242 case OP_VSPACE: -
5243 case OP_EXTUNI: -
5244 case OP_EODN: -
5245 case OP_EOD: -
5246 case OP_CIRC: -
5247 case OP_CIRCM: -
5248 case OP_DOLL: -
5249 case OP_DOLLM: -
5250 case OP_NOT: -
5251 case OP_NOTI: -
5252 case OP_REVERSE: -
5253 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextfallbacks : &parent->topfallbacks);
executed (the execution status of this line is deduced): cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks);
-
5254 break;
executed: break;
Execution Count:1
1
5255 -
5256 case OP_SET_SOM: -
5257 PUSH_FALLBACK_NOVALUE(sizeof(fallback_common), cc);
never executed: return;
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
5258 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5259 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
5260 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (6), (0));
-
5261 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
5262 cc++;
never executed (the execution status of this line is deduced): cc++;
-
5263 break;
never executed: break;
0
5264 -
5265 case OP_CHAR: -
5266 case OP_CHARI: -
5267 cc = compile_charn_hotpath(common, cc, ccend, parent->top != NULL ? &parent->top->nextfallbacks : &parent->topfallbacks);
executed (the execution status of this line is deduced): cc = compile_charn_hotpath(common, cc, ccend, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks);
-
5268 break;
executed: break;
Execution Count:7
7
5269 -
5270 case OP_STAR: -
5271 case OP_MINSTAR: -
5272 case OP_PLUS: -
5273 case OP_MINPLUS: -
5274 case OP_QUERY: -
5275 case OP_MINQUERY: -
5276 case OP_UPTO: -
5277 case OP_MINUPTO: -
5278 case OP_EXACT: -
5279 case OP_POSSTAR: -
5280 case OP_POSPLUS: -
5281 case OP_POSQUERY: -
5282 case OP_POSUPTO: -
5283 case OP_STARI: -
5284 case OP_MINSTARI: -
5285 case OP_PLUSI: -
5286 case OP_MINPLUSI: -
5287 case OP_QUERYI: -
5288 case OP_MINQUERYI: -
5289 case OP_UPTOI: -
5290 case OP_MINUPTOI: -
5291 case OP_EXACTI: -
5292 case OP_POSSTARI: -
5293 case OP_POSPLUSI: -
5294 case OP_POSQUERYI: -
5295 case OP_POSUPTOI: -
5296 case OP_NOTSTAR: -
5297 case OP_NOTMINSTAR: -
5298 case OP_NOTPLUS: -
5299 case OP_NOTMINPLUS: -
5300 case OP_NOTQUERY: -
5301 case OP_NOTMINQUERY: -
5302 case OP_NOTUPTO: -
5303 case OP_NOTMINUPTO: -
5304 case OP_NOTEXACT: -
5305 case OP_NOTPOSSTAR: -
5306 case OP_NOTPOSPLUS: -
5307 case OP_NOTPOSQUERY: -
5308 case OP_NOTPOSUPTO: -
5309 case OP_NOTSTARI: -
5310 case OP_NOTMINSTARI: -
5311 case OP_NOTPLUSI: -
5312 case OP_NOTMINPLUSI: -
5313 case OP_NOTQUERYI: -
5314 case OP_NOTMINQUERYI: -
5315 case OP_NOTUPTOI: -
5316 case OP_NOTMINUPTOI: -
5317 case OP_NOTEXACTI: -
5318 case OP_NOTPOSSTARI: -
5319 case OP_NOTPOSPLUSI: -
5320 case OP_NOTPOSQUERYI: -
5321 case OP_NOTPOSUPTOI: -
5322 case OP_TYPESTAR: -
5323 case OP_TYPEMINSTAR: -
5324 case OP_TYPEPLUS: -
5325 case OP_TYPEMINPLUS: -
5326 case OP_TYPEQUERY: -
5327 case OP_TYPEMINQUERY: -
5328 case OP_TYPEUPTO: -
5329 case OP_TYPEMINUPTO: -
5330 case OP_TYPEEXACT: -
5331 case OP_TYPEPOSSTAR: -
5332 case OP_TYPEPOSPLUS: -
5333 case OP_TYPEPOSQUERY: -
5334 case OP_TYPEPOSUPTO: -
5335 cc = compile_iterator_hotpath(common, cc, parent);
executed (the execution status of this line is deduced): cc = compile_iterator_hotpath(common, cc, parent);
-
5336 break;
executed: break;
Execution Count:7
7
5337 -
5338 case OP_CLASS: -
5339 case OP_NCLASS: -
5340 if (cc[1 + (32 / sizeof(pcre_uchar))] >= OP_CRSTAR && cc[1 + (32 / sizeof(pcre_uchar))] <= OP_CRMINRANGE)
never evaluated: cc[1 + (32 / sizeof(pcre_uchar))] >= OP_CRSTAR
never evaluated: cc[1 + (32 / sizeof(pcre_uchar))] <= OP_CRMINRANGE
0
5341 cc = compile_iterator_hotpath(common, cc, parent);
never executed: cc = compile_iterator_hotpath(common, cc, parent);
0
5342 else -
5343 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextfallbacks : &parent->topfallbacks);
never executed: cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks);
0
5344 break;
never executed: break;
0
5345 -
5346#if defined SUPPORT_UTF || defined COMPILE_PCRE16 -
5347 case OP_XCLASS: -
5348 if (*(cc + GET(cc, 1)) >= OP_CRSTAR && *(cc + GET(cc, 1)) <= OP_CRMINRANGE)
partially evaluated: *(cc + (cc[1])) >= OP_CRSTAR
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: *(cc + (cc[1])) <= OP_CRMINRANGE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5349 cc = compile_iterator_hotpath(common, cc, parent);
executed: cc = compile_iterator_hotpath(common, cc, parent);
Execution Count:1
1
5350 else -
5351 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextfallbacks : &parent->topfallbacks);
never executed: cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks);
0
5352 break;
executed: break;
Execution Count:1
1
5353#endif -
5354 -
5355 case OP_REF: -
5356 case OP_REFI: -
5357 if (cc[1 + IMM2_SIZE] >= OP_CRSTAR && cc[1 + IMM2_SIZE] <= OP_CRMINRANGE)
never evaluated: cc[1 + 1] >= OP_CRSTAR
never evaluated: cc[1 + 1] <= OP_CRMINRANGE
0
5358 cc = compile_ref_iterator_hotpath(common, cc, parent);
never executed: cc = compile_ref_iterator_hotpath(common, cc, parent);
0
5359 else -
5360 cc = compile_ref_hotpath(common, cc, parent->top != NULL ? &parent->top->nextfallbacks : &parent->topfallbacks, TRUE, FALSE);
never executed: cc = compile_ref_hotpath(common, cc, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks, 1, 0);
0
5361 break;
never executed: break;
0
5362 -
5363 case OP_RECURSE: -
5364 cc = compile_recurse_hotpath(common, cc, parent);
never executed (the execution status of this line is deduced): cc = compile_recurse_hotpath(common, cc, parent);
-
5365 break;
never executed: break;
0
5366 -
5367 case OP_ASSERT: -
5368 case OP_ASSERT_NOT: -
5369 case OP_ASSERTBACK: -
5370 case OP_ASSERTBACK_NOT: -
5371 PUSH_FALLBACK_NOVALUE(sizeof(assert_fallback), cc);
never executed: return;
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
5372 cc = compile_assert_hotpath(common, cc, FALLBACK_AS(assert_fallback), FALSE);
never executed (the execution status of this line is deduced): cc = compile_assert_hotpath(common, cc, ((assert_fallback*)fallback), 0);
-
5373 break;
never executed: break;
0
5374 -
5375 case OP_BRAMINZERO: -
5376 PUSH_FALLBACK_NOVALUE(sizeof(braminzero_fallback), cc);
never executed: return;
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
5377 cc = bracketend(cc + 1);
never executed (the execution status of this line is deduced): cc = bracketend(cc + 1);
-
5378 if (*(cc - 1 - LINK_SIZE) != OP_KETRMIN)
never evaluated: *(cc - 1 - 1) != OP_KETRMIN
0
5379 { -
5380 allocate_stack(common, 1);
never executed (the execution status of this line is deduced): allocate_stack(common, 1);
-
5381 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5382 }
never executed: }
0
5383 else -
5384 { -
5385 allocate_stack(common, 2);
never executed (the execution status of this line is deduced): allocate_stack(common, 2);
-
5386 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5387 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5388 }
never executed: }
0
5389 FALLBACK_AS(braminzero_fallback)->hotpath = LABEL();
never executed (the execution status of this line is deduced): ((braminzero_fallback*)fallback)->hotpath = sljit_emit_label(compiler);
-
5390 if (cc[1] > OP_ASSERTBACK_NOT)
never evaluated: cc[1] > OP_ASSERTBACK_NOT
0
5391 decrease_call_count(common);
never executed: decrease_call_count(common);
0
5392 break;
never executed: break;
0
5393 -
5394 case OP_ONCE: -
5395 case OP_ONCE_NC: -
5396 case OP_BRA: -
5397 case OP_CBRA: -
5398 case OP_COND: -
5399 case OP_SBRA: -
5400 case OP_SCBRA: -
5401 case OP_SCOND: -
5402 cc = compile_bracket_hotpath(common, cc, parent);
executed (the execution status of this line is deduced): cc = compile_bracket_hotpath(common, cc, parent);
-
5403 break;
executed: break;
Execution Count:15
15
5404 -
5405 case OP_BRAZERO: -
5406 if (cc[1] > OP_ASSERTBACK_NOT)
never evaluated: cc[1] > OP_ASSERTBACK_NOT
0
5407 cc = compile_bracket_hotpath(common, cc, parent);
never executed: cc = compile_bracket_hotpath(common, cc, parent);
0
5408 else -
5409 { -
5410 PUSH_FALLBACK_NOVALUE(sizeof(assert_fallback), cc);
never executed: return;
never executed: }
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
0
5411 cc = compile_assert_hotpath(common, cc, FALLBACK_AS(assert_fallback), FALSE);
never executed (the execution status of this line is deduced): cc = compile_assert_hotpath(common, cc, ((assert_fallback*)fallback), 0);
-
5412 }
never executed: }
0
5413 break;
never executed: break;
0
5414 -
5415 case OP_BRAPOS: -
5416 case OP_CBRAPOS: -
5417 case OP_SBRAPOS: -
5418 case OP_SCBRAPOS: -
5419 case OP_BRAPOSZERO: -
5420 cc = compile_bracketpos_hotpath(common, cc, parent);
never executed (the execution status of this line is deduced): cc = compile_bracketpos_hotpath(common, cc, parent);
-
5421 break;
never executed: break;
0
5422 -
5423 case OP_FAIL: -
5424 case OP_ACCEPT: -
5425 case OP_ASSERT_ACCEPT: -
5426 cc = compile_fail_accept_hotpath(common, cc, parent);
never executed (the execution status of this line is deduced): cc = compile_fail_accept_hotpath(common, cc, parent);
-
5427 break;
never executed: break;
0
5428 -
5429 case OP_CLOSE: -
5430 cc = compile_close_hotpath(common, cc);
never executed (the execution status of this line is deduced): cc = compile_close_hotpath(common, cc);
-
5431 break;
never executed: break;
0
5432 -
5433 case OP_SKIPZERO: -
5434 cc = bracketend(cc + 1);
never executed (the execution status of this line is deduced): cc = bracketend(cc + 1);
-
5435 break;
never executed: break;
0
5436 -
5437 default: -
5438 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
5439 return;
never executed: return;
0
5440 } -
5441 if (cc == NULL)
partially evaluated: cc == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:31
0-31
5442 return;
never executed: return;
0
5443 }
executed: }
Execution Count:31
31
5444SLJIT_ASSERT(cc == ccend);
executed: }
Execution Count:31
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:31
0-31
5445}
executed: }
Execution Count:31
31
5446 -
5447#undef PUSH_FALLBACK -
5448#undef PUSH_FALLBACK_NOVALUE -
5449#undef FALLBACK_AS -
5450 -
5451#define COMPILE_FALLBACKPATH(current) \ -
5452 do \ -
5453 { \ -
5454 compile_fallbackpath(common, (current)); \ -
5455 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler))) \ -
5456 return; \ -
5457 } \ -
5458 while (0) -
5459 -
5460#define CURRENT_AS(type) ((type*)current) -
5461 -
5462static void compile_iterator_fallbackpath(compiler_common *common, struct fallback_common *current) -
5463{ -
5464DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5465pcre_uchar *cc = current->cc;
executed (the execution status of this line is deduced): pcre_uchar *cc = current->cc;
-
5466pcre_uchar opcode;
executed (the execution status of this line is deduced): pcre_uchar opcode;
-
5467pcre_uchar type;
executed (the execution status of this line is deduced): pcre_uchar type;
-
5468int arg1 = -1, arg2 = -1;
executed (the execution status of this line is deduced): int arg1 = -1, arg2 = -1;
-
5469struct sljit_label *label = NULL;
executed (the execution status of this line is deduced): struct sljit_label *label = ((void *)0);
-
5470struct sljit_jump *jump = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *jump = ((void *)0);
-
5471 -
5472cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, NULL);
executed (the execution status of this line is deduced): cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, ((void *)0));
-
5473 -
5474switch(opcode) -
5475 { -
5476 case OP_STAR: -
5477 case OP_PLUS: -
5478 case OP_UPTO: -
5479 case OP_CRRANGE: -
5480 if (type == OP_ANYNL || type == OP_EXTUNI)
partially evaluated: type == OP_ANYNL
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
partially evaluated: type == OP_EXTUNI
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
5481 { -
5482 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5483 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5484 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5485 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath));
-
5486 }
never executed: }
0
5487 else -
5488 { -
5489 if (opcode == OP_STAR || opcode == OP_UPTO)
partially evaluated: opcode == OP_STAR
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
never evaluated: opcode == OP_UPTO
0-8
5490 arg2 = 0;
executed: arg2 = 0;
Execution Count:8
8
5491 else if (opcode == OP_PLUS)
never evaluated: opcode == OP_PLUS
0
5492 arg2 = 1;
never executed: arg2 = 1;
0
5493 jump = CMP(SLJIT_C_LESS_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, arg2 + 1);
executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (5), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (arg2 + 1));
-
5494 OP2(SLJIT_SUB, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 1);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
-
5495 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5496 skip_char_back(common);
executed (the execution status of this line is deduced): skip_char_back(common);
-
5497 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5498 JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_fallback)->hotpath);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
-
5499 if (opcode == OP_PLUS || opcode == OP_CRRANGE)
partially evaluated: opcode == OP_PLUS
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
partially evaluated: opcode == OP_CRRANGE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
5500 set_jumps(current->topfallbacks, LABEL());
never executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
0
5501 JUMPHERE(jump);
executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
5502 free_stack(common, 2);
executed (the execution status of this line is deduced): free_stack(common, 2);
-
5503 }
executed: }
Execution Count:8
8
5504 break;
executed: break;
Execution Count:8
8
5505 -
5506 case OP_MINSTAR: -
5507 case OP_MINPLUS: -
5508 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5509 if (opcode == OP_MINPLUS)
never evaluated: opcode == OP_MINPLUS
0
5510 { -
5511 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5512 current->topfallbacks = NULL;
never executed (the execution status of this line is deduced): current->topfallbacks = ((void *)0);
-
5513 }
never executed: }
0
5514 compile_char1_hotpath(common, type, cc, &current->topfallbacks);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &current->topfallbacks);
-
5515 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5516 JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
-
5517 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5518 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5519 break;
never executed: break;
0
5520 -
5521 case OP_MINUPTO: -
5522 case OP_CRMINRANGE: -
5523 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
5524 { -
5525 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5526 current->topfallbacks = NULL;
never executed (the execution status of this line is deduced): current->topfallbacks = ((void *)0);
-
5527 label = LABEL();
never executed (the execution status of this line is deduced): label = sljit_emit_label(compiler);
-
5528 }
never executed: }
0
5529 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5530 compile_char1_hotpath(common, type, cc, &current->topfallbacks);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &current->topfallbacks);
-
5531 -
5532 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
5533 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
-
5534 OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1));
-
5535 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0));
-
5536 -
5537 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
5538 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg2 + 1, label);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2 + 1)), (label));
0
5539 -
5540 if (opcode == OP_CRMINRANGE && arg1 == 0)
never evaluated: opcode == OP_CRMINRANGE
never evaluated: arg1 == 0
0
5541 JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_fallback)->hotpath);
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
0
5542 else -
5543 CMPTO(SLJIT_C_LESS, TMP1, 0, SLJIT_IMM, arg1 + 2, CURRENT_AS(iterator_fallback)->hotpath);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 2)), (((iterator_fallback*)current)->hotpath));
0
5544 -
5545 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5546 free_stack(common, 2);
never executed (the execution status of this line is deduced): free_stack(common, 2);
-
5547 break;
never executed: break;
0
5548 -
5549 case OP_QUERY: -
5550 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5551 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5552 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath));
-
5553 jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
5554 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5555 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5556 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5557 JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
-
5558 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
5559 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5560 break;
never executed: break;
0
5561 -
5562 case OP_MINQUERY: -
5563 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5564 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5565 jump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): jump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0));
-
5566 compile_char1_hotpath(common, type, cc, &current->topfallbacks);
never executed (the execution status of this line is deduced): compile_char1_hotpath(common, type, cc, &current->topfallbacks);
-
5567 JUMPTO(SLJIT_JUMP, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
-
5568 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5569 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
5570 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5571 break;
never executed: break;
0
5572 -
5573 case OP_EXACT: -
5574 case OP_POSPLUS: -
5575 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5576 break;
never executed: break;
0
5577 -
5578 case OP_POSSTAR: -
5579 case OP_POSQUERY: -
5580 case OP_POSUPTO: -
5581 break;
never executed: break;
0
5582 -
5583 default: -
5584 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
5585 break;
never executed: break;
0
5586 } -
5587}
executed: }
Execution Count:8
8
5588 -
5589static void compile_ref_iterator_fallbackpath(compiler_common *common, struct fallback_common *current) -
5590{ -
5591DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5592pcre_uchar *cc = current->cc;
never executed (the execution status of this line is deduced): pcre_uchar *cc = current->cc;
-
5593pcre_uchar type;
never executed (the execution status of this line is deduced): pcre_uchar type;
-
5594 -
5595type = cc[1 + IMM2_SIZE];
never executed (the execution status of this line is deduced): type = cc[1 + 1];
-
5596if ((type & 0x1) == 0)
never evaluated: (type & 0x1) == 0
0
5597 { -
5598 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5599 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5600 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5601 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath));
-
5602 return;
never executed: return;
0
5603 } -
5604 -
5605OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5606CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(iterator_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath));
-
5607set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5608free_stack(common, 2);
never executed (the execution status of this line is deduced): free_stack(common, 2);
-
5609}
never executed: }
0
5610 -
5611static void compile_recurse_fallbackpath(compiler_common *common, struct fallback_common *current) -
5612{ -
5613DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5614 -
5615set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5616OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5617free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5618OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (3), (0));
-
5619}
never executed: }
0
5620 -
5621static void compile_assert_fallbackpath(compiler_common *common, struct fallback_common *current) -
5622{ -
5623DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5624pcre_uchar *cc = current->cc;
never executed (the execution status of this line is deduced): pcre_uchar *cc = current->cc;
-
5625pcre_uchar bra = OP_BRA;
never executed (the execution status of this line is deduced): pcre_uchar bra = OP_BRA;
-
5626struct sljit_jump *brajump = NULL;
never executed (the execution status of this line is deduced): struct sljit_jump *brajump = ((void *)0);
-
5627 -
5628SLJIT_ASSERT(*cc != OP_BRAMINZERO);
never executed: }
never evaluated: 0
0
5629if (*cc == OP_BRAZERO)
never evaluated: *cc == OP_BRAZERO
0
5630 { -
5631 bra = *cc;
never executed (the execution status of this line is deduced): bra = *cc;
-
5632 cc++;
never executed (the execution status of this line is deduced): cc++;
-
5633 }
never executed: }
0
5634 -
5635if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5636 { -
5637 SLJIT_ASSERT(current->topfallbacks == NULL);
never executed: }
never evaluated: 0
0
5638 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5639 }
never executed: }
0
5640 -
5641if (CURRENT_AS(assert_fallback)->framesize < 0)
never evaluated: ((assert_fallback*)current)->framesize < 0
0
5642 { -
5643 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5644 -
5645 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5646 { -
5647 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5648 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((assert_fallback*)current)->hotpath));
-
5649 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5650 }
never executed: }
0
5651 return;
never executed: return;
0
5652 } -
5653 -
5654if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5655 { -
5656 if (*cc == OP_ASSERT_NOT || *cc == OP_ASSERTBACK_NOT)
never evaluated: *cc == OP_ASSERT_NOT
never evaluated: *cc == OP_ASSERTBACK_NOT
0
5657 { -
5658 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5659 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(assert_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((assert_fallback*)current)->hotpath));
-
5660 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5661 return;
never executed: return;
0
5662 } -
5663 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5664 brajump = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): brajump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0));
-
5665 }
never executed: }
0
5666 -
5667if (*cc == OP_ASSERT || *cc == OP_ASSERTBACK)
never evaluated: *cc == OP_ASSERT
never evaluated: *cc == OP_ASSERTBACK
0
5668 { -
5669 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(assert_fallback)->localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (((assert_fallback*)current)->localptr));
-
5670 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
5671 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(assert_fallback)->localptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(assert_fallback)->framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((assert_fallback*)current)->localptr), ((0x100 | (2))), (((assert_fallback*)current)->framesize * sizeof(sljit_w)));
-
5672 -
5673 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
5674 }
never executed: }
0
5675else -
5676 set_jumps(current->topfallbacks, LABEL());
never executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
0
5677 -
5678if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5679 { -
5680 /* We know there is enough place on the stack. */ -
5681 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
5682 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
-
5683 JUMPTO(SLJIT_JUMP, CURRENT_AS(assert_fallback)->hotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((assert_fallback*)current)->hotpath));
-
5684 JUMPHERE(brajump);
never executed (the execution status of this line is deduced): sljit_set_label((brajump), sljit_emit_label(compiler));
-
5685 }
never executed: }
0
5686}
never executed: }
0
5687 -
5688static void compile_bracket_fallbackpath(compiler_common *common, struct fallback_common *current) -
5689{ -
5690DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
5691int opcode;
executed (the execution status of this line is deduced): int opcode;
-
5692int offset = 0;
executed (the execution status of this line is deduced): int offset = 0;
-
5693int localptr = CURRENT_AS(bracket_fallback)->localptr;
executed (the execution status of this line is deduced): int localptr = ((bracket_fallback*)current)->localptr;
-
5694int stacksize;
executed (the execution status of this line is deduced): int stacksize;
-
5695int count;
executed (the execution status of this line is deduced): int count;
-
5696pcre_uchar *cc = current->cc;
executed (the execution status of this line is deduced): pcre_uchar *cc = current->cc;
-
5697pcre_uchar *ccbegin;
executed (the execution status of this line is deduced): pcre_uchar *ccbegin;
-
5698pcre_uchar *ccprev;
executed (the execution status of this line is deduced): pcre_uchar *ccprev;
-
5699jump_list *jumplist = NULL;
executed (the execution status of this line is deduced): jump_list *jumplist = ((void *)0);
-
5700jump_list *jumplistitem = NULL;
executed (the execution status of this line is deduced): jump_list *jumplistitem = ((void *)0);
-
5701pcre_uchar bra = OP_BRA;
executed (the execution status of this line is deduced): pcre_uchar bra = OP_BRA;
-
5702pcre_uchar ket;
executed (the execution status of this line is deduced): pcre_uchar ket;
-
5703assert_fallback *assert;
executed (the execution status of this line is deduced): assert_fallback *assert;
-
5704BOOL has_alternatives;
executed (the execution status of this line is deduced): BOOL has_alternatives;
-
5705struct sljit_jump *brazero = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *brazero = ((void *)0);
-
5706struct sljit_jump *once = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *once = ((void *)0);
-
5707struct sljit_jump *cond = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *cond = ((void *)0);
-
5708struct sljit_label *rminlabel = NULL;
executed (the execution status of this line is deduced): struct sljit_label *rminlabel = ((void *)0);
-
5709 -
5710if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO)
partially evaluated: *cc == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: *cc == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5711 { -
5712 bra = *cc;
never executed (the execution status of this line is deduced): bra = *cc;
-
5713 cc++;
never executed (the execution status of this line is deduced): cc++;
-
5714 }
never executed: }
0
5715 -
5716opcode = *cc;
executed (the execution status of this line is deduced): opcode = *cc;
-
5717ccbegin = cc;
executed (the execution status of this line is deduced): ccbegin = cc;
-
5718ket = *(bracketend(ccbegin) - 1 - LINK_SIZE);
executed (the execution status of this line is deduced): ket = *(bracketend(ccbegin) - 1 - 1);
-
5719cc += GET(cc, 1);
executed (the execution status of this line is deduced): cc += (cc[1]);
-
5720has_alternatives = *cc == OP_ALT;
executed (the execution status of this line is deduced): has_alternatives = *cc == OP_ALT;
-
5721if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: __builtin_expect((opcode == OP_SCOND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5722 has_alternatives = (ccbegin[1 + LINK_SIZE] >= OP_ASSERT && ccbegin[1 + LINK_SIZE] <= OP_ASSERTBACK_NOT) || CURRENT_AS(bracket_fallback)->u.condfailed != NULL;
never executed: has_alternatives = (ccbegin[1 + 1] >= OP_ASSERT && ccbegin[1 + 1] <= OP_ASSERTBACK_NOT) || ((bracket_fallback*)current)->u.condfailed != ((void *)0);
never evaluated: ccbegin[1 + 1] >= OP_ASSERT
never evaluated: ccbegin[1 + 1] <= OP_ASSERTBACK_NOT
never evaluated: ((bracket_fallback*)current)->u.condfailed != ((void *)0)
0
5723if (opcode == OP_CBRA || opcode == OP_SCBRA)
partially evaluated: opcode == OP_CBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5724 offset = (GET2(ccbegin, 1 + LINK_SIZE)) << 1;
never executed: offset = (ccbegin[1 + 1]) << 1;
0
5725if (SLJIT_UNLIKELY(opcode == OP_COND) && (*cc == OP_KETRMAX || *cc == OP_KETRMIN))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: *cc == OP_KETRMAX
never evaluated: *cc == OP_KETRMIN
0-15
5726 opcode = OP_SCOND;
never executed: opcode = OP_SCOND;
0
5727if (SLJIT_UNLIKELY(opcode == OP_ONCE_NC))
partially evaluated: __builtin_expect((opcode == OP_ONCE_NC), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5728 opcode = OP_ONCE;
never executed: opcode = OP_ONCE;
0
5729 -
5730if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5731 { -
5732 if (bra != OP_BRAZERO)
never evaluated: bra != OP_BRAZERO
0
5733 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5734 else -
5735 { -
5736 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5737 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5738 brazero = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): brazero = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0));
-
5739 }
never executed: }
0
5740 } -
5741else if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5742 { -
5743 if (bra != OP_BRAMINZERO)
never evaluated: bra != OP_BRAMINZERO
0
5744 { -
5745 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5746 if (opcode >= OP_SBRA || opcode == OP_ONCE)
never evaluated: opcode >= OP_SBRA
never evaluated: opcode == OP_ONCE
0
5747 { -
5748 /* Checking zero-length iteration. */ -
5749 if (opcode != OP_ONCE || CURRENT_AS(bracket_fallback)->u.framesize < 0)
never evaluated: opcode != OP_ONCE
never evaluated: ((bracket_fallback*)current)->u.framesize < 0
0
5750 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, CURRENT_AS(bracket_fallback)->recursivehotpath);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (localptr)), (((bracket_fallback*)current)->recursivehotpath));
0
5751 else -
5752 { -
5753 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
5754 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_MEM1(TMP1), (CURRENT_AS(bracket_fallback)->u.framesize + 1) * sizeof(sljit_w), CURRENT_AS(bracket_fallback)->recursivehotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (1))), ((((bracket_fallback*)current)->u.framesize + 1) * sizeof(sljit_w))), (((bracket_fallback*)current)->recursivehotpath));
-
5755 }
never executed: }
0
5756 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
5757 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5758 }
never executed: }
0
5759 else -
5760 JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_fallback)->recursivehotpath);
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->recursivehotpath));
0
5761 } -
5762 rminlabel = LABEL();
never executed (the execution status of this line is deduced): rminlabel = sljit_emit_label(compiler);
-
5763 }
never executed: }
0
5764else if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5765 { -
5766 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5767 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5768 brazero = CMP(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): brazero = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0));
-
5769 }
never executed: }
0
5770 -
5771if (SLJIT_UNLIKELY(opcode == OP_ONCE))
partially evaluated: __builtin_expect((opcode == OP_ONCE), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5772 { -
5773 if (CURRENT_AS(bracket_fallback)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
5774 { -
5775 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
5776 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
5777 }
never executed: }
0
5778 once = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): once = sljit_emit_jump(compiler, (22));
-
5779 }
never executed: }
0
5780else if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: __builtin_expect((opcode == OP_SCOND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5781 { -
5782 if (has_alternatives)
never evaluated: has_alternatives
0
5783 { -
5784 /* Always exactly one alternative. */ -
5785 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5786 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5787 -
5788 jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list));
never executed (the execution status of this line is deduced): jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list));
-
5789 if (SLJIT_UNLIKELY(!jumplistitem))
never evaluated: __builtin_expect((!jumplistitem), 0)
0
5790 return;
never executed: return;
0
5791 jumplist = jumplistitem;
never executed (the execution status of this line is deduced): jumplist = jumplistitem;
-
5792 jumplistitem->next = NULL;
never executed (the execution status of this line is deduced): jumplistitem->next = ((void *)0);
-
5793 jumplistitem->jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): jumplistitem->jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (1));
-
5794 }
never executed: }
0
5795 }
never executed: }
0
5796else if (*cc == OP_ALT)
evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
5797 { -
5798 /* Build a jump list. Get the last successfully matched branch index. */ -
5799 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5800 free_stack(common, 1);
executed (the execution status of this line is deduced): free_stack(common, 1);
-
5801 count = 1;
executed (the execution status of this line is deduced): count = 1;
-
5802 do -
5803 { -
5804 /* Append as the last item. */ -
5805 if (jumplist != NULL)
partially evaluated: jumplist != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5806 { -
5807 jumplistitem->next = sljit_alloc_memory(compiler, sizeof(jump_list));
never executed (the execution status of this line is deduced): jumplistitem->next = sljit_alloc_memory(compiler, sizeof(jump_list));
-
5808 jumplistitem = jumplistitem->next;
never executed (the execution status of this line is deduced): jumplistitem = jumplistitem->next;
-
5809 }
never executed: }
0
5810 else -
5811 { -
5812 jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list));
executed (the execution status of this line is deduced): jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list));
-
5813 jumplist = jumplistitem;
executed (the execution status of this line is deduced): jumplist = jumplistitem;
-
5814 }
executed: }
Execution Count:1
1
5815 -
5816 if (SLJIT_UNLIKELY(!jumplistitem))
partially evaluated: __builtin_expect((!jumplistitem), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5817 return;
never executed: return;
0
5818 -
5819 jumplistitem->next = NULL;
executed (the execution status of this line is deduced): jumplistitem->next = ((void *)0);
-
5820 jumplistitem->jump = CMP(SLJIT_C_EQUAL, TMP1, 0, SLJIT_IMM, count++);
executed (the execution status of this line is deduced): jumplistitem->jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (count++));
-
5821 cc += GET(cc, 1);
executed (the execution status of this line is deduced): cc += (cc[1]);
-
5822 }
executed: }
Execution Count:1
1
5823 while (*cc == OP_ALT);
partially evaluated: *cc == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5824 -
5825 cc = ccbegin + GET(ccbegin, 1);
executed (the execution status of this line is deduced): cc = ccbegin + (ccbegin[1]);
-
5826 }
executed: }
Execution Count:1
1
5827 -
5828COMPILE_FALLBACKPATH(current->top);
never executed: return;
executed: }
Execution Count:15
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5829if (current->topfallbacks)
evaluated: current->topfallbacks
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:8
7-8
5830 set_jumps(current->topfallbacks, LABEL());
executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
Execution Count:7
7
5831 -
5832if (SLJIT_UNLIKELY(opcode == OP_COND) || SLJIT_UNLIKELY(opcode == OP_SCOND))
partially evaluated: __builtin_expect((opcode == OP_COND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: __builtin_expect((opcode == OP_SCOND), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5833 { -
5834 /* Conditional block always has at most one alternative. */ -
5835 if (ccbegin[1 + LINK_SIZE] >= OP_ASSERT && ccbegin[1 + LINK_SIZE] <= OP_ASSERTBACK_NOT)
never evaluated: ccbegin[1 + 1] >= OP_ASSERT
never evaluated: ccbegin[1 + 1] <= OP_ASSERTBACK_NOT
0
5836 { -
5837 SLJIT_ASSERT(has_alternatives);
never executed: }
never evaluated: 0
0
5838 assert = CURRENT_AS(bracket_fallback)->u.assert;
never executed (the execution status of this line is deduced): assert = ((bracket_fallback*)current)->u.assert;
-
5839 if (assert->framesize >= 0 && (ccbegin[1 + LINK_SIZE] == OP_ASSERT || ccbegin[1 + LINK_SIZE] == OP_ASSERTBACK))
never evaluated: assert->framesize >= 0
never evaluated: ccbegin[1 + 1] == OP_ASSERT
never evaluated: ccbegin[1 + 1] == OP_ASSERTBACK
0
5840 { -
5841 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (assert->localptr));
-
5842 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
5843 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->localptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (assert->localptr), ((0x100 | (2))), (assert->framesize * sizeof(sljit_w)));
-
5844 }
never executed: }
0
5845 cond = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): cond = sljit_emit_jump(compiler, (22));
-
5846 set_jumps(CURRENT_AS(bracket_fallback)->u.assert->condfailed, LABEL());
never executed (the execution status of this line is deduced): set_jumps(((bracket_fallback*)current)->u.assert->condfailed, sljit_emit_label(compiler));
-
5847 }
never executed: }
0
5848 else if (CURRENT_AS(bracket_fallback)->u.condfailed != NULL)
never evaluated: ((bracket_fallback*)current)->u.condfailed != ((void *)0)
0
5849 { -
5850 SLJIT_ASSERT(has_alternatives);
never executed: }
never evaluated: 0
0
5851 cond = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): cond = sljit_emit_jump(compiler, (22));
-
5852 set_jumps(CURRENT_AS(bracket_fallback)->u.condfailed, LABEL());
never executed (the execution status of this line is deduced): set_jumps(((bracket_fallback*)current)->u.condfailed, sljit_emit_label(compiler));
-
5853 }
never executed: }
0
5854 else -
5855 SLJIT_ASSERT(!has_alternatives);
never executed: }
never evaluated: 0
0
5856 } -
5857 -
5858if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
5859 { -
5860 count = 1;
executed (the execution status of this line is deduced): count = 1;
-
5861 do -
5862 { -
5863 current->top = NULL;
executed (the execution status of this line is deduced): current->top = ((void *)0);
-
5864 current->topfallbacks = NULL;
executed (the execution status of this line is deduced): current->topfallbacks = ((void *)0);
-
5865 current->nextfallbacks = NULL;
executed (the execution status of this line is deduced): current->nextfallbacks = ((void *)0);
-
5866 if (*cc == OP_ALT)
partially evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5867 { -
5868 ccprev = cc + 1 + LINK_SIZE;
executed (the execution status of this line is deduced): ccprev = cc + 1 + 1;
-
5869 cc += GET(cc, 1);
executed (the execution status of this line is deduced): cc += (cc[1]);
-
5870 if (opcode != OP_COND && opcode != OP_SCOND)
partially evaluated: opcode != OP_COND
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: opcode != OP_SCOND
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5871 { -
5872 if (localptr != 0 && opcode != OP_ONCE)
partially evaluated: localptr != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: opcode != OP_ONCE
0-1
5873 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (localptr));
0
5874 else -
5875 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
Execution Count:1
1
5876 } -
5877 compile_hotpath(common, ccprev, cc, current);
executed (the execution status of this line is deduced): compile_hotpath(common, ccprev, cc, current);
-
5878 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5879 return;
never executed: return;
0
5880 }
executed: }
Execution Count:1
1
5881 -
5882 /* Instructions after the current alternative is succesfully matched. */ -
5883 /* There is a similar code in compile_bracket_hotpath. */ -
5884 if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5885 { -
5886 if (CURRENT_AS(bracket_fallback)->u.framesize < 0)
never evaluated: ((bracket_fallback*)current)->u.framesize < 0
0
5887 { -
5888 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
-
5889 /* TMP2 which is set here used by OP_KETRMAX below. */ -
5890 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
5891 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), 0);
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
0
5892 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
5893 { -
5894 /* Move the STR_PTR to the localptr. */ -
5895 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (0));
-
5896 }
never executed: }
0
5897 } -
5898 else -
5899 { -
5900 OP2(SLJIT_ADD, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_IMM, (CURRENT_AS(bracket_fallback)->u.framesize + 2) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((((bracket_fallback*)current)->u.framesize + 2) * sizeof(sljit_w)));
-
5901 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
5902 { -
5903 /* TMP2 which is set here used by OP_KETRMAX below. */ -
5904 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5905 }
never executed: }
0
5906 }
never executed: }
0
5907 } -
5908 -
5909 stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
5910 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5911 stacksize++;
executed: stacksize++;
Execution Count:1
1
5912 if (ket != OP_KET || bra != OP_BRA)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: bra != OP_BRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5913 stacksize++;
never executed: stacksize++;
0
5914 -
5915 if (stacksize > 0) {
partially evaluated: stacksize > 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5916 if (opcode != OP_ONCE || CURRENT_AS(bracket_fallback)->u.framesize >= 0)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0-1
5917 allocate_stack(common, stacksize);
executed: allocate_stack(common, stacksize);
Execution Count:1
1
5918 else -
5919 { -
5920 /* We know we have place at least for one item on the top of the stack. */ -
5921 SLJIT_ASSERT(stacksize == 1);
never executed: }
never evaluated: 0
0
5922 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
-
5923 }
never executed: }
0
5924 } -
5925 -
5926 stacksize = 0;
executed (the execution status of this line is deduced): stacksize = 0;
-
5927 if (ket != OP_KET || bra != OP_BRA)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: bra != OP_BRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5928 { -
5929 if (ket != OP_KET)
never evaluated: ket != OP_KET
0
5930 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
5931 else -
5932 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), SLJIT_IMM, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
5933 stacksize++;
never executed (the execution status of this line is deduced): stacksize++;
-
5934 }
never executed: }
0
5935 -
5936 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5937 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(stacksize), SLJIT_IMM, count++);
executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (count++));
Execution Count:1
1
5938 -
5939 if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5940 { -
5941 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr));
-
5942 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), STR_PTR, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0));
-
5943 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 0) * sizeof(sljit_w))), (1), (0));
-
5944 }
never executed: }
0
5945 -
5946 JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_fallback)->althotpath);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->althotpath));
-
5947 -
5948 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5949 { -
5950 SLJIT_ASSERT(jumplist);
executed: }
Execution Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5951 JUMPHERE(jumplist->jump);
executed (the execution status of this line is deduced): sljit_set_label((jumplist->jump), sljit_emit_label(compiler));
-
5952 jumplist = jumplist->next;
executed (the execution status of this line is deduced): jumplist = jumplist->next;
-
5953 }
executed: }
Execution Count:1
1
5954 -
5955 COMPILE_FALLBACKPATH(current->top);
never executed: return;
executed: }
Execution Count:1
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5956 if (current->topfallbacks)
partially evaluated: current->topfallbacks
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5957 set_jumps(current->topfallbacks, LABEL());
executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
Execution Count:1
1
5958 SLJIT_ASSERT(!current->nextfallbacks);
executed: }
Execution Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5959 }
executed: }
Execution Count:1
1
5960 while (*cc == OP_ALT);
partially evaluated: *cc == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5961 SLJIT_ASSERT(!jumplist);
executed: }
Execution Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5962 -
5963 if (cond != NULL)
partially evaluated: cond != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5964 { -
5965 SLJIT_ASSERT(opcode == OP_COND || opcode == OP_SCOND);
never executed: }
never evaluated: 0
0
5966 assert = CURRENT_AS(bracket_fallback)->u.assert;
never executed (the execution status of this line is deduced): assert = ((bracket_fallback*)current)->u.assert;
-
5967 if ((ccbegin[1 + LINK_SIZE] == OP_ASSERT_NOT || ccbegin[1 + LINK_SIZE] == OP_ASSERTBACK_NOT) && assert->framesize >= 0)
never evaluated: ccbegin[1 + 1] == OP_ASSERT_NOT
never evaluated: ccbegin[1 + 1] == OP_ASSERTBACK_NOT
never evaluated: assert->framesize >= 0
0
5968 -
5969 { -
5970 OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (assert->localptr));
-
5971 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
5972 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), assert->localptr, SLJIT_MEM1(STACK_TOP), assert->framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (assert->localptr), ((0x100 | (2))), (assert->framesize * sizeof(sljit_w)));
-
5973 }
never executed: }
0
5974 JUMPHERE(cond);
never executed (the execution status of this line is deduced): sljit_set_label((cond), sljit_emit_label(compiler));
-
5975 }
never executed: }
0
5976 -
5977 /* Free the STR_PTR. */ -
5978 if (localptr == 0)
partially evaluated: localptr == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5979 free_stack(common, 1);
executed: free_stack(common, 1);
Execution Count:1
1
5980 }
executed: }
Execution Count:1
1
5981 -
5982if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5983 { -
5984 /* Using both tmp register is better for instruction scheduling. */ -
5985 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5986 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
5987 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0));
-
5988 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (3), (0));
-
5989 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), STACK(2));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((-(2) - 1) * (int)sizeof(sljit_w))));
-
5990 free_stack(common, 3);
never executed (the execution status of this line is deduced): free_stack(common, 3);
-
5991 }
never executed: }
0
5992else if (opcode == OP_SBRA || opcode == OP_SCOND)
partially evaluated: opcode == OP_SBRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: opcode == OP_SCOND
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5993 { -
5994 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
5995 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
5996 }
never executed: }
0
5997else if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5998 { -
5999 cc = ccbegin + GET(ccbegin, 1);
never executed (the execution status of this line is deduced): cc = ccbegin + (ccbegin[1]);
-
6000 if (CURRENT_AS(bracket_fallback)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
6001 { -
6002 /* Reset head and drop saved frame. */ -
6003 stacksize = (ket == OP_KETRMAX || ket == OP_KETRMIN || *cc == OP_ALT) ? 2 : 1;
never evaluated: ket == OP_KETRMAX
never evaluated: ket == OP_KETRMIN
never evaluated: *cc == OP_ALT
0
6004 free_stack(common, CURRENT_AS(bracket_fallback)->u.framesize + stacksize);
never executed (the execution status of this line is deduced): free_stack(common, ((bracket_fallback*)current)->u.framesize + stacksize);
-
6005 }
never executed: }
0
6006 else if (ket == OP_KETRMAX || (*cc == OP_ALT && ket != OP_KETRMIN))
never evaluated: ket == OP_KETRMAX
never evaluated: *cc == OP_ALT
never evaluated: ket != OP_KETRMIN
0
6007 { -
6008 /* The STR_PTR must be released. */ -
6009 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
6010 }
never executed: }
0
6011 -
6012 JUMPHERE(once);
never executed (the execution status of this line is deduced): sljit_set_label((once), sljit_emit_label(compiler));
-
6013 /* Restore previous localptr */ -
6014 if (CURRENT_AS(bracket_fallback)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
6015 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracket_fallback)->u.framesize * sizeof(sljit_w));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((bracket_fallback*)current)->u.framesize * sizeof(sljit_w)));
0
6016 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
6017 { -
6018 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
6019 /* See the comment below. */ -
6020 free_stack(common, 2);
never executed (the execution status of this line is deduced): free_stack(common, 2);
-
6021 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), localptr, TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0));
-
6022 }
never executed: }
0
6023 } -
6024 -
6025if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6026 { -
6027 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
6028 CMPTO(SLJIT_C_NOT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0, CURRENT_AS(bracket_fallback)->recursivehotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((bracket_fallback*)current)->recursivehotpath));
-
6029 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
6030 { -
6031 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
6032 JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_fallback)->zerohotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->zerohotpath));
-
6033 JUMPHERE(brazero);
never executed (the execution status of this line is deduced): sljit_set_label((brazero), sljit_emit_label(compiler));
-
6034 }
never executed: }
0
6035 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
6036 }
never executed: }
0
6037else if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6038 { -
6039 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
6040 -
6041 /* OP_ONCE removes everything in case of a fallback, so we don't -
6042 need to explicitly release the STR_PTR. The extra release would -
6043 affect badly the free_stack(2) above. */ -
6044 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
6045 free_stack(common, 1);
never executed: free_stack(common, 1);
0
6046 CMPTO(SLJIT_C_NOT_EQUAL, TMP1, 0, SLJIT_IMM, 0, rminlabel);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0)), (rminlabel));
-
6047 if (opcode == OP_ONCE)
never evaluated: opcode == OP_ONCE
0
6048 free_stack(common, bra == OP_BRAMINZERO ? 2 : 1);
never executed: free_stack(common, bra == OP_BRAMINZERO ? 2 : 1);
0
6049 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
6050 free_stack(common, 1);
never executed: free_stack(common, 1);
0
6051 } -
6052else if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6053 { -
6054 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
6055 JUMPTO(SLJIT_JUMP, CURRENT_AS(bracket_fallback)->zerohotpath);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->zerohotpath));
-
6056 JUMPHERE(brazero);
never executed (the execution status of this line is deduced): sljit_set_label((brazero), sljit_emit_label(compiler));
-
6057 }
never executed: }
0
6058} -
6059 -
6060static void compile_bracketpos_fallbackpath(compiler_common *common, struct fallback_common *current) -
6061{ -
6062DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
6063int offset;
never executed (the execution status of this line is deduced): int offset;
-
6064struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
6065 -
6066if (CURRENT_AS(bracketpos_fallback)->framesize < 0)
never evaluated: ((bracketpos_fallback*)current)->framesize < 0
0
6067 { -
6068 if (*current->cc == OP_CBRAPOS || *current->cc == OP_SCBRAPOS)
never evaluated: *current->cc == OP_CBRAPOS
never evaluated: *current->cc == OP_SCBRAPOS
0
6069 { -
6070 offset = (GET2(current->cc, 1 + LINK_SIZE)) << 1;
never executed (the execution status of this line is deduced): offset = (current->cc[1 + 1]) << 1;
-
6071 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
6072 OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), STACK(1));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))));
-
6073 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0));
-
6074 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(offset + 1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (3), (0));
-
6075 }
never executed: }
0
6076 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
6077 free_stack(common, CURRENT_AS(bracketpos_fallback)->stacksize);
never executed (the execution status of this line is deduced): free_stack(common, ((bracketpos_fallback*)current)->stacksize);
-
6078 return;
never executed: return;
0
6079 } -
6080 -
6081OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(bracketpos_fallback)->localptr);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (((bracketpos_fallback*)current)->localptr));
-
6082add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
6083 -
6084if (current->topfallbacks)
never evaluated: current->topfallbacks
0
6085 { -
6086 jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
6087 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
6088 /* Drop the stack frame. */ -
6089 free_stack(common, CURRENT_AS(bracketpos_fallback)->stacksize);
never executed (the execution status of this line is deduced): free_stack(common, ((bracketpos_fallback*)current)->stacksize);
-
6090 JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
6091 }
never executed: }
0
6092OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), CURRENT_AS(bracketpos_fallback)->localptr, SLJIT_MEM1(STACK_TOP), CURRENT_AS(bracketpos_fallback)->framesize * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((bracketpos_fallback*)current)->localptr), ((0x100 | (2))), (((bracketpos_fallback*)current)->framesize * sizeof(sljit_w)));
-
6093}
never executed: }
0
6094 -
6095static void compile_braminzero_fallbackpath(compiler_common *common, struct fallback_common *current) -
6096{ -
6097assert_fallback fallback;
never executed (the execution status of this line is deduced): assert_fallback fallback;
-
6098 -
6099current->top = NULL;
never executed (the execution status of this line is deduced): current->top = ((void *)0);
-
6100current->topfallbacks = NULL;
never executed (the execution status of this line is deduced): current->topfallbacks = ((void *)0);
-
6101current->nextfallbacks = NULL;
never executed (the execution status of this line is deduced): current->nextfallbacks = ((void *)0);
-
6102if (current->cc[1] > OP_ASSERTBACK_NOT)
never evaluated: current->cc[1] > OP_ASSERTBACK_NOT
0
6103 { -
6104 /* Manual call of compile_bracket_hotpath and compile_bracket_fallbackpath. */ -
6105 compile_bracket_hotpath(common, current->cc, current);
never executed (the execution status of this line is deduced): compile_bracket_hotpath(common, current->cc, current);
-
6106 compile_bracket_fallbackpath(common, current->top);
never executed (the execution status of this line is deduced): compile_bracket_fallbackpath(common, current->top);
-
6107 }
never executed: }
0
6108else -
6109 { -
6110 memset(&fallback, 0, sizeof(fallback));
never executed (the execution status of this line is deduced): memset(&fallback, 0, sizeof(fallback));
-
6111 fallback.common.cc = current->cc;
never executed (the execution status of this line is deduced): fallback.common.cc = current->cc;
-
6112 fallback.hotpath = CURRENT_AS(braminzero_fallback)->hotpath;
never executed (the execution status of this line is deduced): fallback.hotpath = ((braminzero_fallback*)current)->hotpath;
-
6113 /* Manual call of compile_assert_hotpath. */ -
6114 compile_assert_hotpath(common, current->cc, &fallback, FALSE);
never executed (the execution status of this line is deduced): compile_assert_hotpath(common, current->cc, &fallback, 0);
-
6115 }
never executed: }
0
6116SLJIT_ASSERT(!current->nextfallbacks && !current->topfallbacks);
never executed: }
never evaluated: 0
0
6117}
never executed: }
0
6118 -
6119static void compile_fallbackpath(compiler_common *common, struct fallback_common *current) -
6120{ -
6121DEFINE_COMPILER;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
6122 -
6123while (current)
evaluated: current
TRUEFALSE
yes
Evaluation Count:23
yes
Evaluation Count:31
23-31
6124 { -
6125 if (current->nextfallbacks != NULL)
partially evaluated: current->nextfallbacks != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:23
0-23
6126 set_jumps(current->nextfallbacks, LABEL());
never executed: set_jumps(current->nextfallbacks, sljit_emit_label(compiler));
0
6127 switch(*current->cc) -
6128 { -
6129 case OP_SET_SOM: -
6130 OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
-
6131 free_stack(common, 1);
never executed (the execution status of this line is deduced): free_stack(common, 1);
-
6132 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP1, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (1), (0));
-
6133 break;
never executed: break;
0
6134 -
6135 case OP_STAR: -
6136 case OP_MINSTAR: -
6137 case OP_PLUS: -
6138 case OP_MINPLUS: -
6139 case OP_QUERY: -
6140 case OP_MINQUERY: -
6141 case OP_UPTO: -
6142 case OP_MINUPTO: -
6143 case OP_EXACT: -
6144 case OP_POSSTAR: -
6145 case OP_POSPLUS: -
6146 case OP_POSQUERY: -
6147 case OP_POSUPTO: -
6148 case OP_STARI: -
6149 case OP_MINSTARI: -
6150 case OP_PLUSI: -
6151 case OP_MINPLUSI: -
6152 case OP_QUERYI: -
6153 case OP_MINQUERYI: -
6154 case OP_UPTOI: -
6155 case OP_MINUPTOI: -
6156 case OP_EXACTI: -
6157 case OP_POSSTARI: -
6158 case OP_POSPLUSI: -
6159 case OP_POSQUERYI: -
6160 case OP_POSUPTOI: -
6161 case OP_NOTSTAR: -
6162 case OP_NOTMINSTAR: -
6163 case OP_NOTPLUS: -
6164 case OP_NOTMINPLUS: -
6165 case OP_NOTQUERY: -
6166 case OP_NOTMINQUERY: -
6167 case OP_NOTUPTO: -
6168 case OP_NOTMINUPTO: -
6169 case OP_NOTEXACT: -
6170 case OP_NOTPOSSTAR: -
6171 case OP_NOTPOSPLUS: -
6172 case OP_NOTPOSQUERY: -
6173 case OP_NOTPOSUPTO: -
6174 case OP_NOTSTARI: -
6175 case OP_NOTMINSTARI: -
6176 case OP_NOTPLUSI: -
6177 case OP_NOTMINPLUSI: -
6178 case OP_NOTQUERYI: -
6179 case OP_NOTMINQUERYI: -
6180 case OP_NOTUPTOI: -
6181 case OP_NOTMINUPTOI: -
6182 case OP_NOTEXACTI: -
6183 case OP_NOTPOSSTARI: -
6184 case OP_NOTPOSPLUSI: -
6185 case OP_NOTPOSQUERYI: -
6186 case OP_NOTPOSUPTOI: -
6187 case OP_TYPESTAR: -
6188 case OP_TYPEMINSTAR: -
6189 case OP_TYPEPLUS: -
6190 case OP_TYPEMINPLUS: -
6191 case OP_TYPEQUERY: -
6192 case OP_TYPEMINQUERY: -
6193 case OP_TYPEUPTO: -
6194 case OP_TYPEMINUPTO: -
6195 case OP_TYPEEXACT: -
6196 case OP_TYPEPOSSTAR: -
6197 case OP_TYPEPOSPLUS: -
6198 case OP_TYPEPOSQUERY: -
6199 case OP_TYPEPOSUPTO: -
6200 case OP_CLASS: -
6201 case OP_NCLASS: -
6202#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 -
6203 case OP_XCLASS: -
6204#endif -
6205 compile_iterator_fallbackpath(common, current);
executed (the execution status of this line is deduced): compile_iterator_fallbackpath(common, current);
-
6206 break;
executed: break;
Execution Count:8
8
6207 -
6208 case OP_REF: -
6209 case OP_REFI: -
6210 compile_ref_iterator_fallbackpath(common, current);
never executed (the execution status of this line is deduced): compile_ref_iterator_fallbackpath(common, current);
-
6211 break;
never executed: break;
0
6212 -
6213 case OP_RECURSE: -
6214 compile_recurse_fallbackpath(common, current);
never executed (the execution status of this line is deduced): compile_recurse_fallbackpath(common, current);
-
6215 break;
never executed: break;
0
6216 -
6217 case OP_ASSERT: -
6218 case OP_ASSERT_NOT: -
6219 case OP_ASSERTBACK: -
6220 case OP_ASSERTBACK_NOT: -
6221 compile_assert_fallbackpath(common, current);
never executed (the execution status of this line is deduced): compile_assert_fallbackpath(common, current);
-
6222 break;
never executed: break;
0
6223 -
6224 case OP_ONCE: -
6225 case OP_ONCE_NC: -
6226 case OP_BRA: -
6227 case OP_CBRA: -
6228 case OP_COND: -
6229 case OP_SBRA: -
6230 case OP_SCBRA: -
6231 case OP_SCOND: -
6232 compile_bracket_fallbackpath(common, current);
executed (the execution status of this line is deduced): compile_bracket_fallbackpath(common, current);
-
6233 break;
executed: break;
Execution Count:15
15
6234 -
6235 case OP_BRAZERO: -
6236 if (current->cc[1] > OP_ASSERTBACK_NOT)
never evaluated: current->cc[1] > OP_ASSERTBACK_NOT
0
6237 compile_bracket_fallbackpath(common, current);
never executed: compile_bracket_fallbackpath(common, current);
0
6238 else -
6239 compile_assert_fallbackpath(common, current);
never executed: compile_assert_fallbackpath(common, current);
0
6240 break;
never executed: break;
0
6241 -
6242 case OP_BRAPOS: -
6243 case OP_CBRAPOS: -
6244 case OP_SBRAPOS: -
6245 case OP_SCBRAPOS: -
6246 case OP_BRAPOSZERO: -
6247 compile_bracketpos_fallbackpath(common, current);
never executed (the execution status of this line is deduced): compile_bracketpos_fallbackpath(common, current);
-
6248 break;
never executed: break;
0
6249 -
6250 case OP_BRAMINZERO: -
6251 compile_braminzero_fallbackpath(common, current);
never executed (the execution status of this line is deduced): compile_braminzero_fallbackpath(common, current);
-
6252 break;
never executed: break;
0
6253 -
6254 case OP_FAIL: -
6255 case OP_ACCEPT: -
6256 case OP_ASSERT_ACCEPT: -
6257 set_jumps(current->topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(current->topfallbacks, sljit_emit_label(compiler));
-
6258 break;
never executed: break;
0
6259 -
6260 default: -
6261 SLJIT_ASSERT_STOP();
never executed: }
never evaluated: 0
0
6262 break;
never executed: break;
0
6263 } -
6264 current = current->prev;
executed (the execution status of this line is deduced): current = current->prev;
-
6265 }
executed: }
Execution Count:23
23
6266}
executed: }
Execution Count:31
31
6267 -
6268static SLJIT_INLINE void compile_recurse(compiler_common *common) -
6269{ -
6270DEFINE_COMPILER;
never executed (the execution status of this line is deduced): struct sljit_compiler *compiler = common->compiler;
-
6271pcre_uchar *cc = common->start + common->currententry->start;
never executed (the execution status of this line is deduced): pcre_uchar *cc = common->start + common->currententry->start;
-
6272pcre_uchar *ccbegin = cc + 1 + LINK_SIZE + (*cc == OP_BRA ? 0 : IMM2_SIZE);
never evaluated: *cc == OP_BRA
0
6273pcre_uchar *ccend = bracketend(cc);
never executed (the execution status of this line is deduced): pcre_uchar *ccend = bracketend(cc);
-
6274int localsize = get_localsize(common, ccbegin, ccend);
never executed (the execution status of this line is deduced): int localsize = get_localsize(common, ccbegin, ccend);
-
6275int framesize = get_framesize(common, cc, TRUE);
never executed (the execution status of this line is deduced): int framesize = get_framesize(common, cc, 1);
-
6276int alternativesize;
never executed (the execution status of this line is deduced): int alternativesize;
-
6277BOOL needsframe;
never executed (the execution status of this line is deduced): BOOL needsframe;
-
6278fallback_common altfallback;
never executed (the execution status of this line is deduced): fallback_common altfallback;
-
6279struct sljit_jump *jump;
never executed (the execution status of this line is deduced): struct sljit_jump *jump;
-
6280 -
6281SLJIT_ASSERT(*cc == OP_BRA || *cc == OP_CBRA || *cc == OP_CBRAPOS || *cc == OP_SCBRA || *cc == OP_SCBRAPOS);
never executed: }
never evaluated: 0
0
6282needsframe = framesize >= 0;
never executed (the execution status of this line is deduced): needsframe = framesize >= 0;
-
6283if (!needsframe)
never evaluated: !needsframe
0
6284 framesize = 0;
never executed: framesize = 0;
0
6285alternativesize = *(cc + GET(cc, 1)) == OP_ALT ? 1 : 0;
never evaluated: *(cc + (cc[1])) == OP_ALT
0
6286 -
6287SLJIT_ASSERT(common->currententry->entry == NULL);
never executed: }
never evaluated: 0
0
6288common->currententry->entry = LABEL();
never executed (the execution status of this line is deduced): common->currententry->entry = sljit_emit_label(compiler);
-
6289set_jumps(common->currententry->calls, common->currententry->entry);
never executed (the execution status of this line is deduced): set_jumps(common->currententry->calls, common->currententry->entry);
-
6290 -
6291sljit_emit_fast_enter(compiler, TMP2, 0, 1, 5, 5, common->localsize);
never executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, 3, 0, 1, 5, 5, common->localsize);
-
6292allocate_stack(common, localsize + framesize + alternativesize);
never executed (the execution status of this line is deduced): allocate_stack(common, localsize + framesize + alternativesize);
-
6293OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(localsize + framesize + alternativesize - 1), TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(localsize + framesize + alternativesize - 1) - 1) * (int)sizeof(sljit_w))), (3), (0));
-
6294copy_locals(common, ccbegin, ccend, TRUE, localsize + framesize + alternativesize, framesize + alternativesize);
never executed (the execution status of this line is deduced): copy_locals(common, ccbegin, ccend, 1, localsize + framesize + alternativesize, framesize + alternativesize);
-
6295OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), RECURSIVE_HEAD, STACK_TOP, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((4 * sizeof(sljit_w))), (2), (0));
-
6296if (needsframe)
never evaluated: needsframe
0
6297 init_frame(common, cc, framesize + alternativesize - 1, alternativesize, FALSE);
never executed: init_frame(common, cc, framesize + alternativesize - 1, alternativesize, 0);
0
6298 -
6299if (alternativesize > 0)
never evaluated: alternativesize > 0
0
6300 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
6301 -
6302memset(&altfallback, 0, sizeof(fallback_common));
never executed (the execution status of this line is deduced): memset(&altfallback, 0, sizeof(fallback_common));
-
6303common->acceptlabel = NULL;
never executed (the execution status of this line is deduced): common->acceptlabel = ((void *)0);
-
6304common->accept = NULL;
never executed (the execution status of this line is deduced): common->accept = ((void *)0);
-
6305altfallback.cc = ccbegin;
never executed (the execution status of this line is deduced): altfallback.cc = ccbegin;
-
6306cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
6307while (1)
never evaluated: 1
0
6308 { -
6309 altfallback.top = NULL;
never executed (the execution status of this line is deduced): altfallback.top = ((void *)0);
-
6310 altfallback.topfallbacks = NULL;
never executed (the execution status of this line is deduced): altfallback.topfallbacks = ((void *)0);
-
6311 -
6312 if (altfallback.cc != ccbegin)
never evaluated: altfallback.cc != ccbegin
0
6313 OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(STACK_TOP), STACK(0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
6314 -
6315 compile_hotpath(common, altfallback.cc, cc, &altfallback);
never executed (the execution status of this line is deduced): compile_hotpath(common, altfallback.cc, cc, &altfallback);
-
6316 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
6317 return;
never executed: return;
0
6318 -
6319 add_jump(compiler, &common->accept, JUMP(SLJIT_JUMP));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->accept, sljit_emit_jump(compiler, (22)));
-
6320 -
6321 compile_fallbackpath(common, altfallback.top);
never executed (the execution status of this line is deduced): compile_fallbackpath(common, altfallback.top);
-
6322 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
6323 return;
never executed: return;
0
6324 set_jumps(altfallback.topfallbacks, LABEL());
never executed (the execution status of this line is deduced): set_jumps(altfallback.topfallbacks, sljit_emit_label(compiler));
-
6325 -
6326 if (*cc != OP_ALT)
never evaluated: *cc != OP_ALT
0
6327 break;
never executed: break;
0
6328 -
6329 altfallback.cc = cc + 1 + LINK_SIZE;
never executed (the execution status of this line is deduced): altfallback.cc = cc + 1 + 1;
-
6330 cc += GET(cc, 1);
never executed (the execution status of this line is deduced): cc += (cc[1]);
-
6331 }
never executed: }
0
6332/* None of them matched. */ -
6333OP1(SLJIT_MOV, TMP3, 0, SLJIT_IMM, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (0x200), (0));
-
6334jump = JUMP(SLJIT_JUMP);
never executed (the execution status of this line is deduced): jump = sljit_emit_jump(compiler, (22));
-
6335 -
6336set_jumps(common->accept, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->accept, sljit_emit_label(compiler));
-
6337OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), RECURSIVE_HEAD);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((4 * sizeof(sljit_w))));
-
6338if (needsframe)
never evaluated: needsframe
0
6339 { -
6340 OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
6341 OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + alternativesize) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), ((framesize + alternativesize) * sizeof(sljit_w)));
-
6342 add_jump(compiler, &common->revertframes, JUMP(SLJIT_FAST_CALL));
never executed (the execution status of this line is deduced): add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23)));
-
6343 OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, (framesize + alternativesize) * sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), ((framesize + alternativesize) * sizeof(sljit_w)));
-
6344 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (5), (0));
-
6345 }
never executed: }
0
6346OP1(SLJIT_MOV, TMP3, 0, SLJIT_IMM, 1);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (5), (0), (0x200), (1));
-
6347 -
6348JUMPHERE(jump);
never executed (the execution status of this line is deduced): sljit_set_label((jump), sljit_emit_label(compiler));
-
6349copy_locals(common, ccbegin, ccend, FALSE, localsize + framesize + alternativesize, framesize + alternativesize);
never executed (the execution status of this line is deduced): copy_locals(common, ccbegin, ccend, 0, localsize + framesize + alternativesize, framesize + alternativesize);
-
6350free_stack(common, localsize + framesize + alternativesize);
never executed (the execution status of this line is deduced): free_stack(common, localsize + framesize + alternativesize);
-
6351OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), sizeof(sljit_w));
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (sizeof(sljit_w)));
-
6352OP1(SLJIT_MOV, TMP1, 0, TMP3, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
-
6353OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), RECURSIVE_HEAD, TMP2, 0);
never executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((4 * sizeof(sljit_w))), (3), (0));
-
6354sljit_emit_fast_return(compiler, SLJIT_MEM1(STACK_TOP), 0);
never executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, (0x100 | (2)), 0);
-
6355}
never executed: }
0
6356 -
6357#undef COMPILE_FALLBACKPATH -
6358#undef CURRENT_AS -
6359 -
6360void -
6361PRIV(jit_compile)(const REAL_PCRE *re, PUBL(extra) *extra) -
6362{ -
6363struct sljit_compiler *compiler;
executed (the execution status of this line is deduced): struct sljit_compiler *compiler;
-
6364fallback_common rootfallback;
executed (the execution status of this line is deduced): fallback_common rootfallback;
-
6365compiler_common common_data;
executed (the execution status of this line is deduced): compiler_common common_data;
-
6366compiler_common *common = &common_data;
executed (the execution status of this line is deduced): compiler_common *common = &common_data;
-
6367const pcre_uint8 *tables = re->tables;
executed (the execution status of this line is deduced): const pcre_uint8 *tables = re->tables;
-
6368pcre_study_data *study;
executed (the execution status of this line is deduced): pcre_study_data *study;
-
6369pcre_uchar *ccend;
executed (the execution status of this line is deduced): pcre_uchar *ccend;
-
6370executable_function *function;
executed (the execution status of this line is deduced): executable_function *function;
-
6371void *executable_func;
executed (the execution status of this line is deduced): void *executable_func;
-
6372sljit_uw executable_size;
executed (the execution status of this line is deduced): sljit_uw executable_size;
-
6373struct sljit_label *leave;
executed (the execution status of this line is deduced): struct sljit_label *leave;
-
6374struct sljit_label *mainloop = NULL;
executed (the execution status of this line is deduced): struct sljit_label *mainloop = ((void *)0);
-
6375struct sljit_label *empty_match_found;
executed (the execution status of this line is deduced): struct sljit_label *empty_match_found;
-
6376struct sljit_label *empty_match_fallback;
executed (the execution status of this line is deduced): struct sljit_label *empty_match_fallback;
-
6377struct sljit_jump *alloc_error;
executed (the execution status of this line is deduced): struct sljit_jump *alloc_error;
-
6378struct sljit_jump *reqbyte_notfound = NULL;
executed (the execution status of this line is deduced): struct sljit_jump *reqbyte_notfound = ((void *)0);
-
6379struct sljit_jump *empty_match;
executed (the execution status of this line is deduced): struct sljit_jump *empty_match;
-
6380 -
6381SLJIT_ASSERT((extra->flags & PCRE_EXTRA_STUDY_DATA) != 0);
executed: }
Execution Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6382study = extra->study_data;
executed (the execution status of this line is deduced): study = extra->study_data;
-
6383 -
6384if (!tables)
partially evaluated: !tables
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6385 tables = PRIV(default_tables);
executed: tables = _pcre16_default_tables;
Execution Count:15
15
6386 -
6387memset(&rootfallback, 0, sizeof(fallback_common));
executed (the execution status of this line is deduced): memset(&rootfallback, 0, sizeof(fallback_common));
-
6388rootfallback.cc = (pcre_uchar *)re + re->name_table_offset + re->name_count * re->name_entry_size;
executed (the execution status of this line is deduced): rootfallback.cc = (pcre_uchar *)re + re->name_table_offset + re->name_count * re->name_entry_size;
-
6389 -
6390common->compiler = NULL;
executed (the execution status of this line is deduced): common->compiler = ((void *)0);
-
6391common->start = rootfallback.cc;
executed (the execution status of this line is deduced): common->start = rootfallback.cc;
-
6392common->cbraptr = OVECTOR_START + (re->top_bracket + 1) * 2 * sizeof(sljit_w);
executed (the execution status of this line is deduced): common->cbraptr = (8 * sizeof(sljit_w)) + (re->top_bracket + 1) * 2 * sizeof(sljit_w);
-
6393common->fcc = tables + fcc_offset;
executed (the execution status of this line is deduced): common->fcc = tables + 256;
-
6394common->lcc = (sljit_w)(tables + lcc_offset);
executed (the execution status of this line is deduced): common->lcc = (sljit_w)(tables + 0);
-
6395common->nltype = NLTYPE_FIXED;
executed (the execution status of this line is deduced): common->nltype = 0;
-
6396switch(re->options & PCRE_NEWLINE_BITS) -
6397 { -
6398 case 0: -
6399 /* Compile-time default */ -
6400 switch (NEWLINE) -
6401 { -
6402 case -1: common->newline = (CHAR_CR << 8) | CHAR_NL; common->nltype = NLTYPE_ANY; break;
never executed: break;
0
6403 case -2: common->newline = (CHAR_CR << 8) | CHAR_NL; common->nltype = NLTYPE_ANYCRLF; break;
never executed: break;
0
6404 default: common->newline = NEWLINE; break;
executed: break;
Execution Count:12
12
6405 } -
6406 break;
executed: break;
Execution Count:12
12
6407 case PCRE_NEWLINE_CR: common->newline = CHAR_CR; break;
never executed: break;
0
6408 case PCRE_NEWLINE_LF: common->newline = CHAR_NL; break;
never executed: break;
0
6409 case PCRE_NEWLINE_CR+ -
6410 PCRE_NEWLINE_LF: common->newline = (CHAR_CR << 8) | CHAR_NL; break;
executed: break;
Execution Count:2
2
6411 case PCRE_NEWLINE_ANY: common->newline = (CHAR_CR << 8) | CHAR_NL; common->nltype = NLTYPE_ANY; break;
never executed: break;
0
6412 case PCRE_NEWLINE_ANYCRLF: common->newline = (CHAR_CR << 8) | CHAR_NL; common->nltype = NLTYPE_ANYCRLF; break;
executed: break;
Execution Count:1
1
6413 default: return;
never executed: return;
0
6414 } -
6415if ((re->options & PCRE_BSR_ANYCRLF) != 0)
partially evaluated: (re->options & 0x00800000) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6416 common->bsr_nltype = NLTYPE_ANYCRLF;
never executed: common->bsr_nltype = 2;
0
6417else if ((re->options & PCRE_BSR_UNICODE) != 0)
partially evaluated: (re->options & 0x01000000) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6418 common->bsr_nltype = NLTYPE_ANY;
never executed: common->bsr_nltype = 1;
0
6419else -
6420 { -
6421#ifdef BSR_ANYCRLF -
6422 common->bsr_nltype = NLTYPE_ANYCRLF; -
6423#else -
6424 common->bsr_nltype = NLTYPE_ANY;
executed (the execution status of this line is deduced): common->bsr_nltype = 1;
-
6425#endif -
6426 }
executed: }
Execution Count:15
15
6427common->endonly = (re->options & PCRE_DOLLAR_ENDONLY) != 0;
executed (the execution status of this line is deduced): common->endonly = (re->options & 0x00000020) != 0;
-
6428common->ctypes = (sljit_w)(tables + ctypes_offset);
executed (the execution status of this line is deduced): common->ctypes = (sljit_w)(tables + (512 + 320));
-
6429common->name_table = (sljit_w)((pcre_uchar *)re + re->name_table_offset);
executed (the execution status of this line is deduced): common->name_table = (sljit_w)((pcre_uchar *)re + re->name_table_offset);
-
6430common->name_count = re->name_count;
executed (the execution status of this line is deduced): common->name_count = re->name_count;
-
6431common->name_entry_size = re->name_entry_size;
executed (the execution status of this line is deduced): common->name_entry_size = re->name_entry_size;
-
6432common->acceptlabel = NULL;
executed (the execution status of this line is deduced): common->acceptlabel = ((void *)0);
-
6433common->stubs = NULL;
executed (the execution status of this line is deduced): common->stubs = ((void *)0);
-
6434common->entries = NULL;
executed (the execution status of this line is deduced): common->entries = ((void *)0);
-
6435common->currententry = NULL;
executed (the execution status of this line is deduced): common->currententry = ((void *)0);
-
6436common->accept = NULL;
executed (the execution status of this line is deduced): common->accept = ((void *)0);
-
6437common->calllimit = NULL;
executed (the execution status of this line is deduced): common->calllimit = ((void *)0);
-
6438common->stackalloc = NULL;
executed (the execution status of this line is deduced): common->stackalloc = ((void *)0);
-
6439common->revertframes = NULL;
executed (the execution status of this line is deduced): common->revertframes = ((void *)0);
-
6440common->wordboundary = NULL;
executed (the execution status of this line is deduced): common->wordboundary = ((void *)0);
-
6441common->anynewline = NULL;
executed (the execution status of this line is deduced): common->anynewline = ((void *)0);
-
6442common->hspace = NULL;
executed (the execution status of this line is deduced): common->hspace = ((void *)0);
-
6443common->vspace = NULL;
executed (the execution status of this line is deduced): common->vspace = ((void *)0);
-
6444common->casefulcmp = NULL;
executed (the execution status of this line is deduced): common->casefulcmp = ((void *)0);
-
6445common->caselesscmp = NULL;
executed (the execution status of this line is deduced): common->caselesscmp = ((void *)0);
-
6446common->jscript_compat = (re->options & PCRE_JAVASCRIPT_COMPAT) != 0;
executed (the execution status of this line is deduced): common->jscript_compat = (re->options & 0x02000000) != 0;
-
6447#ifdef SUPPORT_UTF -
6448/* PCRE_UTF16 has the same value as PCRE_UTF8. */ -
6449common->utf = (re->options & PCRE_UTF8) != 0;
executed (the execution status of this line is deduced): common->utf = (re->options & 0x00000800) != 0;
-
6450#ifdef SUPPORT_UCP -
6451common->use_ucp = (re->options & PCRE_UCP) != 0;
executed (the execution status of this line is deduced): common->use_ucp = (re->options & 0x20000000) != 0;
-
6452#endif -
6453common->utfreadchar = NULL;
executed (the execution status of this line is deduced): common->utfreadchar = ((void *)0);
-
6454#ifdef COMPILE_PCRE8 -
6455common->utfreadtype8 = NULL; -
6456#endif -
6457#endif /* SUPPORT_UTF */ -
6458#ifdef SUPPORT_UCP -
6459common->getucd = NULL;
executed (the execution status of this line is deduced): common->getucd = ((void *)0);
-
6460#endif -
6461ccend = bracketend(rootfallback.cc);
executed (the execution status of this line is deduced): ccend = bracketend(rootfallback.cc);
-
6462SLJIT_ASSERT(*rootfallback.cc == OP_BRA && ccend[-(1 + LINK_SIZE)] == OP_KET);
executed: }
Execution Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6463common->localsize = get_localspace(common, rootfallback.cc, ccend);
executed (the execution status of this line is deduced): common->localsize = get_localspace(common, rootfallback.cc, ccend);
-
6464if (common->localsize < 0)
partially evaluated: common->localsize < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6465 return;
never executed: return;
0
6466common->localsize += common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w);
executed (the execution status of this line is deduced): common->localsize += common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w);
-
6467if (common->localsize > SLJIT_MAX_LOCAL_SIZE)
partially evaluated: common->localsize > 65536
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6468 return;
never executed: return;
0
6469common->localptrs = (int*)SLJIT_MALLOC((ccend - rootfallback.cc) * sizeof(int));
executed (the execution status of this line is deduced): common->localptrs = (int*)(pcre16_malloc)((ccend - rootfallback.cc) * sizeof(int));
-
6470if (!common->localptrs)
partially evaluated: !common->localptrs
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6471 return;
never executed: return;
0
6472memset(common->localptrs, 0, (ccend - rootfallback.cc) * sizeof(int));
executed (the execution status of this line is deduced): memset(common->localptrs, 0, (ccend - rootfallback.cc) * sizeof(int));
-
6473set_localptrs(common, common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w), ccend);
executed (the execution status of this line is deduced): set_localptrs(common, common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w), ccend);
-
6474 -
6475compiler = sljit_create_compiler();
executed (the execution status of this line is deduced): compiler = sljit_create_compiler();
-
6476if (!compiler)
partially evaluated: !compiler
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6477 { -
6478 SLJIT_FREE(common->localptrs);
never executed (the execution status of this line is deduced): (pcre16_free)(common->localptrs);
-
6479 return;
never executed: return;
0
6480 } -
6481common->compiler = compiler;
executed (the execution status of this line is deduced): common->compiler = compiler;
-
6482 -
6483/* Main pcre_jit_exec entry. */ -
6484sljit_emit_enter(compiler, 1, 5, 5, common->localsize);
executed (the execution status of this line is deduced): sljit_emit_enter(compiler, 1, 5, 5, common->localsize);
-
6485 -
6486/* Register init. */ -
6487reset_ovector(common, (re->top_bracket + 1) * 2);
executed (the execution status of this line is deduced): reset_ovector(common, (re->top_bracket + 1) * 2);
-
6488if ((re->flags & PCRE_REQCHSET) != 0)
partially evaluated: (re->flags & 0x0040) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6489 OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), REQ_CHAR_PTR, SLJIT_TEMPORARY_REG1, 0);
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((6 * sizeof(sljit_w))), (1), (0));
0
6490 -
6491OP1(SLJIT_MOV, ARGUMENTS, 0, SLJIT_SAVED_REG1, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (9), (0), (6), (0));
-
6492OP1(SLJIT_MOV, TMP1, 0, SLJIT_SAVED_REG1, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (6), (0));
-
6493OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
6494OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, end));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->end) - 0x10)));
-
6495OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10)));
-
6496OP1(SLJIT_MOV_SI, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, calllimit));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (12), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->calllimit) - 0x10)));
-
6497OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, base));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (3))), (((sljit_w)(&((struct sljit_stack*)0x10)->base) - 0x10)));
-
6498OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, limit));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (3))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10)));
-
6499OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), CALL_LIMIT, TMP1, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((5 * sizeof(sljit_w))), (1), (0));
-
6500 -
6501/* Main part of the matching */ -
6502if ((re->options & PCRE_ANCHORED) == 0)
partially evaluated: (re->options & 0x00000010) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6503 { -
6504 mainloop = mainloop_entry(common, (re->flags & PCRE_HASCRORLF) != 0, (re->options & PCRE_FIRSTLINE) != 0);
executed (the execution status of this line is deduced): mainloop = mainloop_entry(common, (re->flags & 0x0800) != 0, (re->options & 0x00040000) != 0);
-
6505 /* Forward search if possible. */ -
6506 if ((re->flags & PCRE_FIRSTSET) != 0)
evaluated: (re->flags & 0x0010) != 0
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:9
6-9
6507 fast_forward_first_char(common, re->first_char, (re->flags & PCRE_FCH_CASELESS) != 0, (re->options & PCRE_FIRSTLINE) != 0);
executed: fast_forward_first_char(common, re->first_char, (re->flags & 0x0020) != 0, (re->options & 0x00040000) != 0);
Execution Count:6
6
6508 else if ((re->flags & PCRE_STARTLINE) != 0)
evaluated: (re->flags & 0x0100) != 0
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:4
4-5
6509 fast_forward_newline(common, (re->options & PCRE_FIRSTLINE) != 0);
executed: fast_forward_newline(common, (re->options & 0x00040000) != 0);
Execution Count:5
5
6510 else if ((re->flags & PCRE_STARTLINE) == 0 && study != NULL && (study->flags & PCRE_STUDY_MAPPED) != 0)
partially evaluated: (re->flags & 0x0100) == 0
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
partially evaluated: study != ((void *)0)
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
partially evaluated: (study->flags & 0x0001) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
6511 fast_forward_start_bits(common, (sljit_uw)study->start_bits, (re->options & PCRE_FIRSTLINE) != 0);
never executed: fast_forward_start_bits(common, (sljit_uw)study->start_bits, (re->options & 0x00040000) != 0);
0
6512 } -
6513if ((re->flags & PCRE_REQCHSET) != 0)
partially evaluated: (re->flags & 0x0040) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6514 reqbyte_notfound = search_requested_char(common, re->req_char, (re->flags & PCRE_RCH_CASELESS) != 0, (re->flags & PCRE_FIRSTSET) != 0);
never executed: reqbyte_notfound = search_requested_char(common, re->req_char, (re->flags & 0x0080) != 0, (re->flags & 0x0010) != 0);
0
6515 -
6516/* Store the current STR_PTR in OVECTOR(0). */ -
6517OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), STR_PTR, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (6), (0));
-
6518/* Copy the limit of allowed recursions. */ -
6519OP1(SLJIT_MOV, CALL_COUNT, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), CALL_LIMIT);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (10), (0), ((0x100 | (11))), ((5 * sizeof(sljit_w))));
-
6520 -
6521compile_hotpath(common, rootfallback.cc, ccend, &rootfallback);
executed (the execution status of this line is deduced): compile_hotpath(common, rootfallback.cc, ccend, &rootfallback);
-
6522if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6523 { -
6524 sljit_free_compiler(compiler);
never executed (the execution status of this line is deduced): sljit_free_compiler(compiler);
-
6525 SLJIT_FREE(common->localptrs);
never executed (the execution status of this line is deduced): (pcre16_free)(common->localptrs);
-
6526 return;
never executed: return;
0
6527 } -
6528 -
6529empty_match = CMP(SLJIT_C_EQUAL, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
executed (the execution status of this line is deduced): empty_match = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
6530empty_match_found = LABEL();
executed (the execution status of this line is deduced): empty_match_found = sljit_emit_label(compiler);
-
6531 -
6532common->acceptlabel = LABEL();
executed (the execution status of this line is deduced): common->acceptlabel = sljit_emit_label(compiler);
-
6533if (common->accept != NULL)
partially evaluated: common->accept != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6534 set_jumps(common->accept, common->acceptlabel);
never executed: set_jumps(common->accept, common->acceptlabel);
0
6535 -
6536/* This means we have a match. Update the ovector. */ -
6537copy_ovector(common, re->top_bracket + 1);
executed (the execution status of this line is deduced): copy_ovector(common, re->top_bracket + 1);
-
6538leave = LABEL();
executed (the execution status of this line is deduced): leave = sljit_emit_label(compiler);
-
6539sljit_emit_return(compiler, SLJIT_MOV, SLJIT_RETURN_REG, 0);
executed (the execution status of this line is deduced): sljit_emit_return(compiler, 6, 1, 0);
-
6540 -
6541empty_match_fallback = LABEL();
executed (the execution status of this line is deduced): empty_match_fallback = sljit_emit_label(compiler);
-
6542compile_fallbackpath(common, rootfallback.top);
executed (the execution status of this line is deduced): compile_fallbackpath(common, rootfallback.top);
-
6543if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6544 { -
6545 sljit_free_compiler(compiler);
never executed (the execution status of this line is deduced): sljit_free_compiler(compiler);
-
6546 SLJIT_FREE(common->localptrs);
never executed (the execution status of this line is deduced): (pcre16_free)(common->localptrs);
-
6547 return;
never executed: return;
0
6548 } -
6549 -
6550SLJIT_ASSERT(rootfallback.prev == NULL);
executed: }
Execution Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6551 -
6552/* Check we have remaining characters. */ -
6553OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))));
-
6554 -
6555if ((re->options & PCRE_ANCHORED) == 0)
partially evaluated: (re->options & 0x00000010) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6556 { -
6557 if ((re->options & PCRE_FIRSTLINE) == 0)
partially evaluated: (re->options & 0x00040000) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6558 { -
6559 if (study != NULL && study->minlength > 1)
partially evaluated: study != ((void *)0)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: study->minlength > 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6560 { -
6561 OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(study->minlength));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((study->minlength) << 1)));
-
6562 CMPTO(SLJIT_C_LESS_EQUAL, TMP1, 0, STR_END, 0, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (5), (1), (0), (7), (0)), (mainloop));
-
6563 }
never executed: }
0
6564 else -
6565 CMPTO(SLJIT_C_LESS, STR_PTR, 0, STR_END, 0, mainloop);
executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)), (mainloop));
Execution Count:15
15
6566 } -
6567 else -
6568 { -
6569 if (study != NULL && study->minlength > 1)
never evaluated: study != ((void *)0)
never evaluated: study->minlength > 1
0
6570 { -
6571 OP2(SLJIT_ADD, TMP1, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(study->minlength));
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((study->minlength) << 1)));
-
6572 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, TMP1, 0, STR_END, 0);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (7), (0));
-
6573 COND_VALUE(SLJIT_MOV, TMP2, 0, SLJIT_C_GREATER);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (6), (3), (0), (4));
-
6574 OP2(SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END);
never executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (6), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w))));
-
6575 COND_VALUE(SLJIT_OR | SLJIT_SET_E, TMP2, 0, SLJIT_C_GREATER_EQUAL);
never executed (the execution status of this line is deduced): sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (3));
-
6576 JUMPTO(SLJIT_C_ZERO, mainloop);
never executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (0)), (mainloop));
-
6577 }
never executed: }
0
6578 else -
6579 CMPTO(SLJIT_C_LESS, STR_PTR, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), FIRSTLINE_END, mainloop);
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))), (mainloop));
0
6580 } -
6581 } -
6582 -
6583if (reqbyte_notfound != NULL)
partially evaluated: reqbyte_notfound != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6584 JUMPHERE(reqbyte_notfound);
never executed: sljit_set_label((reqbyte_notfound), sljit_emit_label(compiler));
0
6585/* Copy OVECTOR(1) to OVECTOR(0) */ -
6586OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(0), SLJIT_MEM1(SLJIT_LOCALS_REG), OVECTOR(1));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))));
-
6587OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_NOMATCH);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-1)));
-
6588JUMPTO(SLJIT_JUMP, leave);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (leave));
-
6589 -
6590flush_stubs(common);
executed (the execution status of this line is deduced): flush_stubs(common);
-
6591 -
6592JUMPHERE(empty_match);
executed (the execution status of this line is deduced): sljit_set_label((empty_match), sljit_emit_label(compiler));
-
6593OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
6594OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty) - 0x10)));
-
6595CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_fallback);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)), (empty_match_fallback));
-
6596OP1(SLJIT_MOV_UB, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, notempty_atstart));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty_atstart) - 0x10)));
-
6597CMPTO(SLJIT_C_EQUAL, TMP2, 0, SLJIT_IMM, 0, empty_match_found);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)), (empty_match_found));
-
6598OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, str));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10)));
-
6599CMPTO(SLJIT_C_NOT_EQUAL, TMP2, 0, STR_PTR, 0, empty_match_found);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (empty_match_found));
-
6600JUMPTO(SLJIT_JUMP, empty_match_fallback);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (empty_match_fallback));
-
6601 -
6602common->currententry = common->entries;
executed (the execution status of this line is deduced): common->currententry = common->entries;
-
6603while (common->currententry != NULL)
partially evaluated: common->currententry != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6604 { -
6605 /* Might add new entries. */ -
6606 compile_recurse(common);
never executed (the execution status of this line is deduced): compile_recurse(common);
-
6607 if (SLJIT_UNLIKELY(sljit_get_compiler_error(compiler)))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
6608 { -
6609 sljit_free_compiler(compiler);
never executed (the execution status of this line is deduced): sljit_free_compiler(compiler);
-
6610 SLJIT_FREE(common->localptrs);
never executed (the execution status of this line is deduced): (pcre16_free)(common->localptrs);
-
6611 return;
never executed: return;
0
6612 } -
6613 flush_stubs(common);
never executed (the execution status of this line is deduced): flush_stubs(common);
-
6614 common->currententry = common->currententry->next;
never executed (the execution status of this line is deduced): common->currententry = common->currententry->next;
-
6615 }
never executed: }
0
6616 -
6617/* Allocating stack, returns with PCRE_ERROR_JIT_STACKLIMIT if fails. */ -
6618/* This is a (really) rare case. */ -
6619set_jumps(common->stackalloc, LABEL());
executed (the execution status of this line is deduced): set_jumps(common->stackalloc, sljit_emit_label(compiler));
-
6620/* RETURN_ADDR is not a saved register. */ -
6621sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0, 1, 5, 5, common->localsize);
executed (the execution status of this line is deduced): sljit_emit_fast_enter(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)), 1, 5, 5, common->localsize);
-
6622OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1, TMP2, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (3), (0));
-
6623OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
6624OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10)));
-
6625OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top), STACK_TOP, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->top) - 0x10)), (2), (0));
-
6626OP2(SLJIT_ADD, TMP2, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit), SLJIT_IMM, STACK_GROWTH_RATE);
executed (the execution status of this line is deduced): sljit_emit_op2(compiler, (23), (3), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10)), (0x200), (8192));
-
6627 -
6628sljit_emit_ijump(compiler, SLJIT_CALL2, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_stack_resize));
executed (the execution status of this line is deduced): sljit_emit_ijump(compiler, 26, 0x200, ((sljit_w)sljit_stack_resize));
-
6629alloc_error = CMP(SLJIT_C_NOT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0);
executed (the execution status of this line is deduced): alloc_error = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0));
-
6630OP1(SLJIT_MOV, TMP1, 0, ARGUMENTS, 0);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (9), (0));
-
6631OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, stack));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10)));
-
6632OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, top));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->top) - 0x10)));
-
6633OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(struct sljit_stack, limit));
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10)));
-
6634OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS1);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w))));
-
6635sljit_emit_fast_return(compiler, SLJIT_MEM1(SLJIT_LOCALS_REG), LOCALS0);
executed (the execution status of this line is deduced): sljit_emit_fast_return(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)));
-
6636 -
6637/* Allocation failed. */ -
6638JUMPHERE(alloc_error);
executed (the execution status of this line is deduced): sljit_set_label((alloc_error), sljit_emit_label(compiler));
-
6639/* We break the return address cache here, but this is a really rare case. */ -
6640OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_JIT_STACKLIMIT);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-27)));
-
6641JUMPTO(SLJIT_JUMP, leave);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (leave));
-
6642 -
6643/* Call limit reached. */ -
6644set_jumps(common->calllimit, LABEL());
executed (the execution status of this line is deduced): set_jumps(common->calllimit, sljit_emit_label(compiler));
-
6645OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_IMM, PCRE_ERROR_MATCHLIMIT);
executed (the execution status of this line is deduced): sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-8)));
-
6646JUMPTO(SLJIT_JUMP, leave);
executed (the execution status of this line is deduced): sljit_set_label(sljit_emit_jump(compiler, (22)), (leave));
-
6647 -
6648if (common->revertframes != NULL)
partially evaluated: common->revertframes != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6649 { -
6650 set_jumps(common->revertframes, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->revertframes, sljit_emit_label(compiler));
-
6651 do_revertframes(common);
never executed (the execution status of this line is deduced): do_revertframes(common);
-
6652 }
never executed: }
0
6653if (common->wordboundary != NULL)
evaluated: common->wordboundary != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
6654 { -
6655 set_jumps(common->wordboundary, LABEL());
executed (the execution status of this line is deduced): set_jumps(common->wordboundary, sljit_emit_label(compiler));
-
6656 check_wordboundary(common);
executed (the execution status of this line is deduced): check_wordboundary(common);
-
6657 }
executed: }
Execution Count:1
1
6658if (common->anynewline != NULL)
partially evaluated: common->anynewline != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6659 { -
6660 set_jumps(common->anynewline, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->anynewline, sljit_emit_label(compiler));
-
6661 check_anynewline(common);
never executed (the execution status of this line is deduced): check_anynewline(common);
-
6662 }
never executed: }
0
6663if (common->hspace != NULL)
partially evaluated: common->hspace != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6664 { -
6665 set_jumps(common->hspace, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->hspace, sljit_emit_label(compiler));
-
6666 check_hspace(common);
never executed (the execution status of this line is deduced): check_hspace(common);
-
6667 }
never executed: }
0
6668if (common->vspace != NULL)
partially evaluated: common->vspace != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6669 { -
6670 set_jumps(common->vspace, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->vspace, sljit_emit_label(compiler));
-
6671 check_vspace(common);
never executed (the execution status of this line is deduced): check_vspace(common);
-
6672 }
never executed: }
0
6673if (common->casefulcmp != NULL)
partially evaluated: common->casefulcmp != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6674 { -
6675 set_jumps(common->casefulcmp, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->casefulcmp, sljit_emit_label(compiler));
-
6676 do_casefulcmp(common);
never executed (the execution status of this line is deduced): do_casefulcmp(common);
-
6677 }
never executed: }
0
6678if (common->caselesscmp != NULL)
partially evaluated: common->caselesscmp != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6679 { -
6680 set_jumps(common->caselesscmp, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->caselesscmp, sljit_emit_label(compiler));
-
6681 do_caselesscmp(common);
never executed (the execution status of this line is deduced): do_caselesscmp(common);
-
6682 }
never executed: }
0
6683#ifdef SUPPORT_UTF -
6684if (common->utfreadchar != NULL)
evaluated: common->utfreadchar != ((void *)0)
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:8
7-8
6685 { -
6686 set_jumps(common->utfreadchar, LABEL());
executed (the execution status of this line is deduced): set_jumps(common->utfreadchar, sljit_emit_label(compiler));
-
6687 do_utfreadchar(common);
executed (the execution status of this line is deduced): do_utfreadchar(common);
-
6688 }
executed: }
Execution Count:7
7
6689#ifdef COMPILE_PCRE8 -
6690if (common->utfreadtype8 != NULL) -
6691 { -
6692 set_jumps(common->utfreadtype8, LABEL()); -
6693 do_utfreadtype8(common); -
6694 } -
6695#endif -
6696#endif /* COMPILE_PCRE8 */ -
6697#ifdef SUPPORT_UCP -
6698if (common->getucd != NULL)
partially evaluated: common->getucd != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6699 { -
6700 set_jumps(common->getucd, LABEL());
never executed (the execution status of this line is deduced): set_jumps(common->getucd, sljit_emit_label(compiler));
-
6701 do_getucd(common);
never executed (the execution status of this line is deduced): do_getucd(common);
-
6702 }
never executed: }
0
6703#endif -
6704 -
6705SLJIT_FREE(common->localptrs);
executed (the execution status of this line is deduced): (pcre16_free)(common->localptrs);
-
6706executable_func = sljit_generate_code(compiler);
executed (the execution status of this line is deduced): executable_func = sljit_generate_code(compiler);
-
6707executable_size = sljit_get_generated_code_size(compiler);
executed (the execution status of this line is deduced): executable_size = sljit_get_generated_code_size(compiler);
-
6708sljit_free_compiler(compiler);
executed (the execution status of this line is deduced): sljit_free_compiler(compiler);
-
6709if (executable_func == NULL)
partially evaluated: executable_func == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6710 return;
never executed: return;
0
6711 -
6712function = SLJIT_MALLOC(sizeof(executable_function));
executed (the execution status of this line is deduced): function = (pcre16_malloc)(sizeof(executable_function));
-
6713if (function == NULL)
partially evaluated: function == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6714 { -
6715 /* This case is highly unlikely since we just recently -
6716 freed a lot of memory. Although not impossible. */ -
6717 sljit_free_code(executable_func);
never executed (the execution status of this line is deduced): sljit_free_code(executable_func);
-
6718 return;
never executed: return;
0
6719 } -
6720 -
6721function->executable_func = executable_func;
executed (the execution status of this line is deduced): function->executable_func = executable_func;
-
6722function->executable_size = executable_size;
executed (the execution status of this line is deduced): function->executable_size = executable_size;
-
6723function->callback = NULL;
executed (the execution status of this line is deduced): function->callback = ((void *)0);
-
6724function->userdata = NULL;
executed (the execution status of this line is deduced): function->userdata = ((void *)0);
-
6725extra->executable_jit = function;
executed (the execution status of this line is deduced): extra->executable_jit = function;
-
6726extra->flags |= PCRE_EXTRA_EXECUTABLE_JIT;
executed (the execution status of this line is deduced): extra->flags |= 0x0040;
-
6727}
executed: }
Execution Count:15
15
6728 -
6729static int jit_machine_stack_exec(jit_arguments *arguments, executable_function *function) -
6730{ -
6731union {
executed (the execution status of this line is deduced): union {
-
6732 void* executable_func;
executed (the execution status of this line is deduced): void* executable_func;
-
6733 jit_function call_executable_func;
executed (the execution status of this line is deduced): jit_function call_executable_func;
-
6734} convert_executable_func;
executed (the execution status of this line is deduced): } convert_executable_func;
-
6735pcre_uint8 local_area[LOCAL_SPACE_SIZE];
executed (the execution status of this line is deduced): pcre_uint8 local_area[32768];
-
6736struct sljit_stack local_stack;
executed (the execution status of this line is deduced): struct sljit_stack local_stack;
-
6737 -
6738local_stack.top = (sljit_w)&local_area;
executed (the execution status of this line is deduced): local_stack.top = (sljit_w)&local_area;
-
6739local_stack.base = local_stack.top;
executed (the execution status of this line is deduced): local_stack.base = local_stack.top;
-
6740local_stack.limit = local_stack.base + LOCAL_SPACE_SIZE;
executed (the execution status of this line is deduced): local_stack.limit = local_stack.base + 32768;
-
6741local_stack.max_limit = local_stack.limit;
executed (the execution status of this line is deduced): local_stack.max_limit = local_stack.limit;
-
6742arguments->stack = &local_stack;
executed (the execution status of this line is deduced): arguments->stack = &local_stack;
-
6743convert_executable_func.executable_func = function->executable_func;
executed (the execution status of this line is deduced): convert_executable_func.executable_func = function->executable_func;
-
6744return convert_executable_func.call_executable_func(arguments);
executed: return convert_executable_func.call_executable_func(arguments);
Execution Count:172
172
6745} -
6746 -
6747int -
6748PRIV(jit_exec)(const REAL_PCRE *re, void *executable_func, -
6749 const pcre_uchar *subject, int length, int start_offset, int options, -
6750 int match_limit, int *offsets, int offsetcount) -
6751{ -
6752executable_function *function = (executable_function*)executable_func;
executed (the execution status of this line is deduced): executable_function *function = (executable_function*)executable_func;
-
6753union {
executed (the execution status of this line is deduced): union {
-
6754 void* executable_func;
executed (the execution status of this line is deduced): void* executable_func;
-
6755 jit_function call_executable_func;
executed (the execution status of this line is deduced): jit_function call_executable_func;
-
6756} convert_executable_func;
executed (the execution status of this line is deduced): } convert_executable_func;
-
6757jit_arguments arguments;
executed (the execution status of this line is deduced): jit_arguments arguments;
-
6758int maxoffsetcount;
executed (the execution status of this line is deduced): int maxoffsetcount;
-
6759int retval;
executed (the execution status of this line is deduced): int retval;
-
6760 -
6761/* Sanity checks should be handled by pcre_exec. */ -
6762arguments.stack = NULL;
executed (the execution status of this line is deduced): arguments.stack = ((void *)0);
-
6763arguments.str = subject + start_offset;
executed (the execution status of this line is deduced): arguments.str = subject + start_offset;
-
6764arguments.begin = subject;
executed (the execution status of this line is deduced): arguments.begin = subject;
-
6765arguments.end = subject + length;
executed (the execution status of this line is deduced): arguments.end = subject + length;
-
6766arguments.calllimit = match_limit; /* JIT decreases this value less times. */
executed (the execution status of this line is deduced): arguments.calllimit = match_limit;
-
6767arguments.notbol = (options & PCRE_NOTBOL) != 0;
executed (the execution status of this line is deduced): arguments.notbol = (options & 0x00000080) != 0;
-
6768arguments.noteol = (options & PCRE_NOTEOL) != 0;
executed (the execution status of this line is deduced): arguments.noteol = (options & 0x00000100) != 0;
-
6769arguments.notempty = (options & PCRE_NOTEMPTY) != 0;
executed (the execution status of this line is deduced): arguments.notempty = (options & 0x00000400) != 0;
-
6770arguments.notempty_atstart = (options & PCRE_NOTEMPTY_ATSTART) != 0;
executed (the execution status of this line is deduced): arguments.notempty_atstart = (options & 0x10000000) != 0;
-
6771arguments.offsets = offsets;
executed (the execution status of this line is deduced): arguments.offsets = offsets;
-
6772 -
6773/* pcre_exec() rounds offsetcount to a multiple of 3, and then uses only 2/3 of -
6774the output vector for storing captured strings, with the remainder used as -
6775workspace. We don't need the workspace here. For compatibility, we limit the -
6776number of captured strings in the same way as pcre_exec(), so that the user -
6777gets the same result with and without JIT. */ -
6778 -
6779if (offsetcount != 2)
partially evaluated: offsetcount != 2
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6780 offsetcount = ((offsetcount - (offsetcount % 3)) * 2) / 3;
executed: offsetcount = ((offsetcount - (offsetcount % 3)) * 2) / 3;
Execution Count:172
172
6781maxoffsetcount = (re->top_bracket + 1) * 2;
executed (the execution status of this line is deduced): maxoffsetcount = (re->top_bracket + 1) * 2;
-
6782if (offsetcount > maxoffsetcount)
partially evaluated: offsetcount > maxoffsetcount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:172
0-172
6783 offsetcount = maxoffsetcount;
never executed: offsetcount = maxoffsetcount;
0
6784arguments.offsetcount = offsetcount;
executed (the execution status of this line is deduced): arguments.offsetcount = offsetcount;
-
6785 -
6786if (function->callback)
partially evaluated: function->callback
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6787 arguments.stack = (struct sljit_stack*)function->callback(function->userdata);
executed: arguments.stack = (struct sljit_stack*)function->callback(function->userdata);
Execution Count:172
172
6788else -
6789 arguments.stack = (struct sljit_stack*)function->userdata;
never executed: arguments.stack = (struct sljit_stack*)function->userdata;
0
6790 -
6791if (arguments.stack == NULL)
partially evaluated: arguments.stack == ((void *)0)
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6792 retval = jit_machine_stack_exec(&arguments, function);
executed: retval = jit_machine_stack_exec(&arguments, function);
Execution Count:172
172
6793else -
6794 { -
6795 convert_executable_func.executable_func = function->executable_func;
never executed (the execution status of this line is deduced): convert_executable_func.executable_func = function->executable_func;
-
6796 retval = convert_executable_func.call_executable_func(&arguments);
never executed (the execution status of this line is deduced): retval = convert_executable_func.call_executable_func(&arguments);
-
6797 }
never executed: }
0
6798 -
6799if (retval * 2 > offsetcount)
partially evaluated: retval * 2 > offsetcount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:172
0-172
6800 retval = 0;
never executed: retval = 0;
0
6801return retval;
executed: return retval;
Execution Count:172
172
6802} -
6803 -
6804void -
6805PRIV(jit_free)(void *executable_func) -
6806{ -
6807executable_function *function = (executable_function*)executable_func;
executed (the execution status of this line is deduced): executable_function *function = (executable_function*)executable_func;
-
6808sljit_free_code(function->executable_func);
executed (the execution status of this line is deduced): sljit_free_code(function->executable_func);
-
6809SLJIT_FREE(function);
executed (the execution status of this line is deduced): (pcre16_free)(function);
-
6810}
executed: }
Execution Count:15
15
6811 -
6812int -
6813PRIV(jit_get_size)(void *executable_func) -
6814{ -
6815return ((executable_function*)executable_func)->executable_size;
never executed: return ((executable_function*)executable_func)->executable_size;
0
6816} -
6817 -
6818const char* -
6819PRIV(jit_get_target)(void) -
6820{ -
6821return sljit_get_platform_name();
never executed: return sljit_get_platform_name();
0
6822} -
6823 -
6824#ifdef COMPILE_PCRE8 -
6825PCRE_EXP_DECL pcre_jit_stack * -
6826pcre_jit_stack_alloc(int startsize, int maxsize) -
6827#else -
6828PCRE_EXP_DECL pcre16_jit_stack * -
6829pcre16_jit_stack_alloc(int startsize, int maxsize) -
6830#endif -
6831{ -
6832if (startsize < 1 || maxsize < 1)
never evaluated: startsize < 1
never evaluated: maxsize < 1
0
6833 return NULL;
never executed: return ((void *)0);
0
6834if (startsize > maxsize)
never evaluated: startsize > maxsize
0
6835 startsize = maxsize;
never executed: startsize = maxsize;
0
6836startsize = (startsize + STACK_GROWTH_RATE - 1) & ~(STACK_GROWTH_RATE - 1);
never executed (the execution status of this line is deduced): startsize = (startsize + 8192 - 1) & ~(8192 - 1);
-
6837maxsize = (maxsize + STACK_GROWTH_RATE - 1) & ~(STACK_GROWTH_RATE - 1);
never executed (the execution status of this line is deduced): maxsize = (maxsize + 8192 - 1) & ~(8192 - 1);
-
6838return (PUBL(jit_stack)*)sljit_allocate_stack(startsize, maxsize);
never executed: return (pcre16_jit_stack*)sljit_allocate_stack(startsize, maxsize);
0
6839} -
6840 -
6841#ifdef COMPILE_PCRE8 -
6842PCRE_EXP_DECL void -
6843pcre_jit_stack_free(pcre_jit_stack *stack) -
6844#else -
6845PCRE_EXP_DECL void -
6846pcre16_jit_stack_free(pcre16_jit_stack *stack) -
6847#endif -
6848{ -
6849sljit_free_stack((struct sljit_stack*)stack);
never executed (the execution status of this line is deduced): sljit_free_stack((struct sljit_stack*)stack);
-
6850}
never executed: }
0
6851 -
6852#ifdef COMPILE_PCRE8 -
6853PCRE_EXP_DECL void -
6854pcre_assign_jit_stack(pcre_extra *extra, pcre_jit_callback callback, void *userdata) -
6855#else -
6856PCRE_EXP_DECL void -
6857pcre16_assign_jit_stack(pcre16_extra *extra, pcre16_jit_callback callback, void *userdata) -
6858#endif -
6859{ -
6860executable_function *function;
executed (the execution status of this line is deduced): executable_function *function;
-
6861if (extra != NULL &&
partially evaluated: extra != ((void *)0)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6862 (extra->flags & PCRE_EXTRA_EXECUTABLE_JIT) != 0 &&
partially evaluated: (extra->flags & 0x0040) != 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6863 extra->executable_jit != NULL)
partially evaluated: extra->executable_jit != ((void *)0)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6864 { -
6865 function = (executable_function*)extra->executable_jit;
executed (the execution status of this line is deduced): function = (executable_function*)extra->executable_jit;
-
6866 function->callback = callback;
executed (the execution status of this line is deduced): function->callback = callback;
-
6867 function->userdata = userdata;
executed (the execution status of this line is deduced): function->userdata = userdata;
-
6868 }
executed: }
Execution Count:15
15
6869}
executed: }
Execution Count:15
15
6870 -
6871#else /* SUPPORT_JIT */ -
6872 -
6873/* These are dummy functions to avoid linking errors when JIT support is not -
6874being compiled. */ -
6875 -
6876#ifdef COMPILE_PCRE8 -
6877PCRE_EXP_DECL pcre_jit_stack * -
6878pcre_jit_stack_alloc(int startsize, int maxsize) -
6879#else -
6880PCRE_EXP_DECL pcre16_jit_stack * -
6881pcre16_jit_stack_alloc(int startsize, int maxsize) -
6882#endif -
6883{ -
6884(void)startsize; -
6885(void)maxsize; -
6886return NULL; -
6887} -
6888 -
6889#ifdef COMPILE_PCRE8 -
6890PCRE_EXP_DECL void -
6891pcre_jit_stack_free(pcre_jit_stack *stack) -
6892#else -
6893PCRE_EXP_DECL void -
6894pcre16_jit_stack_free(pcre16_jit_stack *stack) -
6895#endif -
6896{ -
6897(void)stack; -
6898} -
6899 -
6900#ifdef COMPILE_PCRE8 -
6901PCRE_EXP_DECL void -
6902pcre_assign_jit_stack(pcre_extra *extra, pcre_jit_callback callback, void *userdata) -
6903#else -
6904PCRE_EXP_DECL void -
6905pcre16_assign_jit_stack(pcre16_extra *extra, pcre16_jit_callback callback, void *userdata) -
6906#endif -
6907{ -
6908(void)extra; -
6909(void)callback; -
6910(void)userdata; -
6911} -
6912 -
6913#endif -
6914 -
6915/* End of pcre_jit_compile.c */ -
6916 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial