../3rdparty/pcre/pcre_jit_compile.c

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3typedef struct jit_arguments { -
4 -
5 struct sljit_stack *stack; -
6 const pcre_uchar *str; -
7 const pcre_uchar *begin; -
8 const pcre_uchar *end; -
9 int *offsets; -
10 pcre_uchar *ptr; -
11 -
12 int offsetcount; -
13 int calllimit; -
14 pcre_uint8 notbol; -
15 pcre_uint8 noteol; -
16 pcre_uint8 notempty; -
17 pcre_uint8 notempty_atstart; -
18} jit_arguments; -
19 -
20typedef struct executable_function { -
21 void *executable_func; -
22 pcre16_jit_callback callback; -
23 void *userdata; -
24 sljit_uw executable_size; -
25} executable_function; -
26 -
27typedef struct jump_list { -
28 struct sljit_jump *jump; -
29 struct jump_list *next; -
30} jump_list; -
31 -
32enum stub_types { stack_alloc }; -
33 -
34typedef struct stub_list { -
35 enum stub_types type; -
36 int data; -
37 struct sljit_jump *start; -
38 struct sljit_label *leave; -
39 struct stub_list *next; -
40} stub_list; -
41 -
42typedef int ( *jit_function)(jit_arguments *args); -
43 -
44 -
45 -
46 -
47 -
48typedef struct fallback_common { -
49 -
50 struct fallback_common *prev; -
51 jump_list *nextfallbacks; -
52 -
53 struct fallback_common *top; -
54 jump_list *topfallbacks; -
55 -
56 pcre_uchar *cc; -
57} fallback_common; -
58 -
59typedef struct assert_fallback { -
60 fallback_common common; -
61 jump_list *condfailed; -
62 -
63 int framesize; -
64 -
65 int localptr; -
66 -
67 struct sljit_label *hotpath; -
68} assert_fallback; -
69 -
70typedef struct bracket_fallback { -
71 fallback_common common; -
72 -
73 struct sljit_label *althotpath; -
74 -
75 struct sljit_label *recursivehotpath; -
76 -
77 struct sljit_label *zerohotpath; -
78 -
79 union { -
80 -
81 jump_list *condfailed; -
82 assert_fallback *assert; -
83 -
84 int framesize; -
85 } u; -
86 -
87 int localptr; -
88} bracket_fallback; -
89 -
90typedef struct bracketpos_fallback { -
91 fallback_common common; -
92 -
93 int localptr; -
94 -
95 int framesize; -
96 -
97 int stacksize; -
98} bracketpos_fallback; -
99 -
100typedef struct braminzero_fallback { -
101 fallback_common common; -
102 struct sljit_label *hotpath; -
103} braminzero_fallback; -
104 -
105typedef struct iterator_fallback { -
106 fallback_common common; -
107 -
108 struct sljit_label *hotpath; -
109} iterator_fallback; -
110 -
111typedef struct recurse_entry { -
112 struct recurse_entry *next; -
113 -
114 struct sljit_label *entry; -
115 -
116 jump_list *calls; -
117 -
118 int start; -
119} recurse_entry; -
120 -
121typedef struct recurse_fallback { -
122 fallback_common common; -
123} recurse_fallback; -
124 -
125typedef struct compiler_common { -
126 struct sljit_compiler *compiler; -
127 pcre_uchar *start; -
128 int localsize; -
129 int *localptrs; -
130 const pcre_uint8 *fcc; -
131 sljit_w lcc; -
132 int cbraptr; -
133 int nltype; -
134 int newline; -
135 int bsr_nltype; -
136 int endonly; -
137 sljit_w ctypes; -
138 sljit_uw name_table; -
139 sljit_w name_count; -
140 sljit_w name_entry_size; -
141 struct sljit_label *acceptlabel; -
142 stub_list *stubs; -
143 recurse_entry *entries; -
144 recurse_entry *currententry; -
145 jump_list *accept; -
146 jump_list *calllimit; -
147 jump_list *stackalloc; -
148 jump_list *revertframes; -
149 jump_list *wordboundary; -
150 jump_list *anynewline; -
151 jump_list *hspace; -
152 jump_list *vspace; -
153 jump_list *casefulcmp; -
154 jump_list *caselesscmp; -
155 BOOL jscript_compat; -
156 -
157 BOOL utf; -
158 -
159 BOOL use_ucp; -
160 -
161 jump_list *utfreadchar; -
162 -
163 -
164 -
165 -
166 -
167 jump_list *getucd; -
168 -
169} compiler_common; -
170 -
171 -
172 -
173typedef struct compare_context { -
174 int length; -
175 int sourcereg; -
176 -
177 int ucharptr; -
178 union { -
179 sljit_i asint; -
180 sljit_uh asushort; -
181 -
182 -
183 -
184 -
185 -
186 sljit_uh asuchars[2]; -
187 -
188 -
189 } c; -
190 union { -
191 sljit_i asint; -
192 sljit_uh asushort; -
193 -
194 -
195 -
196 -
197 -
198 sljit_uh asuchars[2]; -
199 -
200 -
201 } oc; -
202 -
203} compare_context; -
204 -
205enum { -
206 frame_end = 0, -
207 frame_setstrbegin = -1 -
208}; -
209static pcre_uchar* bracketend(pcre_uchar* cc) -
210{ -
211do { } while (0);
executed: }
Execution Count:45
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
212do cc += (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
213do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
executed: }
Execution Count:45
0-45
214cc += 1 + 1; -
215return cc;
executed: return cc;
Execution Count:45
45
216} -
217static pcre_uchar *next_opcode(compiler_common *common, pcre_uchar *cc) -
218{ -
219(void)common; -
220switch(*cc) -
221 { -
222 case OP_SOD: -
223 case OP_SOM: -
224 case OP_SET_SOM: -
225 case OP_NOT_WORD_BOUNDARY: -
226 case OP_WORD_BOUNDARY: -
227 case OP_NOT_DIGIT: -
228 case OP_DIGIT: -
229 case OP_NOT_WHITESPACE: -
230 case OP_WHITESPACE: -
231 case OP_NOT_WORDCHAR: -
232 case OP_WORDCHAR: -
233 case OP_ANY: -
234 case OP_ALLANY: -
235 case OP_ANYNL: -
236 case OP_NOT_HSPACE: -
237 case OP_HSPACE: -
238 case OP_NOT_VSPACE: -
239 case OP_VSPACE: -
240 case OP_EXTUNI: -
241 case OP_EODN: -
242 case OP_EOD: -
243 case OP_CIRC: -
244 case OP_CIRCM: -
245 case OP_DOLL: -
246 case OP_DOLLM: -
247 case OP_TYPESTAR: -
248 case OP_TYPEMINSTAR: -
249 case OP_TYPEPLUS: -
250 case OP_TYPEMINPLUS: -
251 case OP_TYPEQUERY: -
252 case OP_TYPEMINQUERY: -
253 case OP_TYPEPOSSTAR: -
254 case OP_TYPEPOSPLUS: -
255 case OP_TYPEPOSQUERY: -
256 case OP_CRSTAR: -
257 case OP_CRMINSTAR: -
258 case OP_CRPLUS: -
259 case OP_CRMINPLUS: -
260 case OP_CRQUERY: -
261 case OP_CRMINQUERY: -
262 case OP_DEF: -
263 case OP_BRAZERO: -
264 case OP_BRAMINZERO: -
265 case OP_BRAPOSZERO: -
266 case OP_FAIL: -
267 case OP_ACCEPT: -
268 case OP_ASSERT_ACCEPT: -
269 case OP_SKIPZERO: -
270 return cc + 1;
executed: return cc + 1;
Execution Count:29
29
271 -
272 case OP_ANYBYTE: -
273 -
274 if (common->utf) return ((void *)0);
never executed: return ((void *)0);
never evaluated: common->utf
0
275 -
276 return cc + 1;
never executed: return cc + 1;
0
277 -
278 case OP_CHAR: -
279 case OP_CHARI: -
280 case OP_NOT: -
281 case OP_NOTI: -
282 case OP_STAR: -
283 case OP_MINSTAR: -
284 case OP_PLUS: -
285 case OP_MINPLUS: -
286 case OP_QUERY: -
287 case OP_MINQUERY: -
288 case OP_POSSTAR: -
289 case OP_POSPLUS: -
290 case OP_POSQUERY: -
291 case OP_STARI: -
292 case OP_MINSTARI: -
293 case OP_PLUSI: -
294 case OP_MINPLUSI: -
295 case OP_QUERYI: -
296 case OP_MINQUERYI: -
297 case OP_POSSTARI: -
298 case OP_POSPLUSI: -
299 case OP_POSQUERYI: -
300 case OP_NOTSTAR: -
301 case OP_NOTMINSTAR: -
302 case OP_NOTPLUS: -
303 case OP_NOTMINPLUS: -
304 case OP_NOTQUERY: -
305 case OP_NOTMINQUERY: -
306 case OP_NOTPOSSTAR: -
307 case OP_NOTPOSPLUS: -
308 case OP_NOTPOSQUERY: -
309 case OP_NOTSTARI: -
310 case OP_NOTMINSTARI: -
311 case OP_NOTPLUSI: -
312 case OP_NOTMINPLUSI: -
313 case OP_NOTQUERYI: -
314 case OP_NOTMINQUERYI: -
315 case OP_NOTPOSSTARI: -
316 case OP_NOTPOSPLUSI: -
317 case OP_NOTPOSQUERYI: -
318 cc += 2; -
319 -
320 if (common->utf && (((cc[-1]) & 0xfc00) == 0xd800)) 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
never executed: cc += 1;
0-18
321 -
322 return cc;
executed: return cc;
Execution Count:18
18
323 -
324 case OP_UPTO: -
325 case OP_MINUPTO: -
326 case OP_EXACT: -
327 case OP_POSUPTO: -
328 case OP_UPTOI: -
329 case OP_MINUPTOI: -
330 case OP_EXACTI: -
331 case OP_POSUPTOI: -
332 case OP_NOTUPTO: -
333 case OP_NOTMINUPTO: -
334 case OP_NOTEXACT: -
335 case OP_NOTPOSUPTO: -
336 case OP_NOTUPTOI: -
337 case OP_NOTMINUPTOI: -
338 case OP_NOTEXACTI: -
339 case OP_NOTPOSUPTOI: -
340 cc += 2 + 1; -
341 -
342 if (common->utf && (((cc[-1]) & 0xfc00) == 0xd800)) cc += 1;
never evaluated: common->utf
never evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
never executed: cc += 1;
0
343 -
344 return cc;
never executed: return cc;
0
345 -
346 case OP_NOTPROP: -
347 case OP_PROP: -
348 return cc + 1 + 2;
never executed: return cc + 1 + 2;
0
349 -
350 case OP_TYPEUPTO: -
351 case OP_TYPEMINUPTO: -
352 case OP_TYPEEXACT: -
353 case OP_TYPEPOSUPTO: -
354 case OP_REF: -
355 case OP_REFI: -
356 case OP_CREF: -
357 case OP_NCREF: -
358 case OP_RREF: -
359 case OP_NRREF: -
360 case OP_CLOSE: -
361 cc += 1 + 1; -
362 return cc;
never executed: return cc;
0
363 -
364 case OP_CRRANGE: -
365 case OP_CRMINRANGE: -
366 return cc + 1 + 2 * 1;
never executed: return cc + 1 + 2 * 1;
0
367 -
368 case OP_CLASS: -
369 case OP_NCLASS: -
370 return cc + 1 + 32 / sizeof(pcre_uchar);
never executed: return cc + 1 + 32 / sizeof(pcre_uchar);
0
371 -
372 -
373 case OP_XCLASS: -
374 return cc + (cc[1]);
executed: return cc + (cc[1]);
Execution Count:2
2
375 -
376 -
377 case OP_RECURSE: -
378 case OP_ASSERT: -
379 case OP_ASSERT_NOT: -
380 case OP_ASSERTBACK: -
381 case OP_ASSERTBACK_NOT: -
382 case OP_REVERSE: -
383 case OP_ONCE: -
384 case OP_ONCE_NC: -
385 case OP_BRA: -
386 case OP_BRAPOS: -
387 case OP_COND: -
388 case OP_SBRA: -
389 case OP_SBRAPOS: -
390 case OP_SCOND: -
391 case OP_ALT: -
392 case OP_KET: -
393 case OP_KETRMAX: -
394 case OP_KETRMIN: -
395 case OP_KETRPOS: -
396 return cc + 1 + 1;
executed: return cc + 1 + 1;
Execution Count:62
62
397 -
398 case OP_CBRA: -
399 case OP_CBRAPOS: -
400 case OP_SCBRA: -
401 case OP_SCBRAPOS: -
402 return cc + 1 + 1 + 1;
never executed: return cc + 1 + 1 + 1;
0
403 -
404 default: -
405 return ((void *)0);
never executed: return ((void *)0);
0
406 } -
407}
never executed: }
0
408 -
409static int get_localspace(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend) -
410{ -
411int localspace = 0; -
412pcre_uchar *alternative; -
413 -
414while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:53
yes
Evaluation Count:15
15-53
415 { -
416 switch(*cc) -
417 { -
418 case OP_ASSERT: -
419 case OP_ASSERT_NOT: -
420 case OP_ASSERTBACK: -
421 case OP_ASSERTBACK_NOT: -
422 case OP_ONCE: -
423 case OP_ONCE_NC: -
424 case OP_BRAPOS: -
425 case OP_SBRA: -
426 case OP_SBRAPOS: -
427 case OP_SCOND: -
428 localspace += sizeof(sljit_w); -
429 cc += 1 + 1; -
430 break;
never executed: break;
0
431 -
432 case OP_CBRAPOS: -
433 case OP_SCBRAPOS: -
434 localspace += sizeof(sljit_w); -
435 cc += 1 + 1 + 1; -
436 break;
never executed: break;
0
437 -
438 case OP_COND: -
439 -
440 alternative = cc + (cc[1]); -
441 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
442 localspace += sizeof(sljit_w);
never executed: localspace += sizeof(sljit_w);
0
443 cc += 1 + 1; -
444 break;
never executed: break;
0
445 -
446 default: -
447 cc = next_opcode(common, cc); -
448 if (cc == ((void *)0))
partially evaluated: cc == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
0-53
449 return -1;
never executed: return -1;
0
450 break;
executed: break;
Execution Count:53
53
451 } -
452 }
executed: }
Execution Count:53
53
453return localspace;
executed: return localspace;
Execution Count:15
15
454} -
455 -
456static void set_localptrs(compiler_common *common, int localptr, pcre_uchar *ccend) -
457{ -
458pcre_uchar *cc = common->start; -
459pcre_uchar *alternative; -
460while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:53
yes
Evaluation Count:15
15-53
461 { -
462 switch(*cc) -
463 { -
464 case OP_ASSERT: -
465 case OP_ASSERT_NOT: -
466 case OP_ASSERTBACK: -
467 case OP_ASSERTBACK_NOT: -
468 case OP_ONCE: -
469 case OP_ONCE_NC: -
470 case OP_BRAPOS: -
471 case OP_SBRA: -
472 case OP_SBRAPOS: -
473 case OP_SCOND: -
474 common->localptrs[cc - common->start] = localptr; -
475 localptr += sizeof(sljit_w); -
476 cc += 1 + 1; -
477 break;
never executed: break;
0
478 -
479 case OP_CBRAPOS: -
480 case OP_SCBRAPOS: -
481 common->localptrs[cc - common->start] = localptr; -
482 localptr += sizeof(sljit_w); -
483 cc += 1 + 1 + 1; -
484 break;
never executed: break;
0
485 -
486 case OP_COND: -
487 -
488 alternative = cc + (cc[1]); -
489 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
490 { -
491 common->localptrs[cc - common->start] = localptr; -
492 localptr += sizeof(sljit_w); -
493 }
never executed: }
0
494 cc += 1 + 1; -
495 break;
never executed: break;
0
496 -
497 default: -
498 cc = next_opcode(common, cc); -
499 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
executed: }
Execution Count:53
0-53
500 break;
executed: break;
Execution Count:53
53
501 } -
502 }
executed: }
Execution Count:53
53
503}
executed: }
Execution Count:15
15
504 -
505 -
506static int get_framesize(compiler_common *common, pcre_uchar *cc, BOOL recursive) -
507{ -
508pcre_uchar *ccend = bracketend(cc); -
509int length = 0; -
510BOOL possessive = 0; -
511BOOL setsom_found = 0; -
512 -
513if (!recursive && (*cc == OP_CBRAPOS || *cc == OP_SCBRAPOS))
never evaluated: !recursive
never evaluated: *cc == OP_CBRAPOS
never evaluated: *cc == OP_SCBRAPOS
0
514 { -
515 length = 3; -
516 possessive = 1; -
517 }
never executed: }
0
518 -
519cc = next_opcode(common, cc); -
520do { } while (0);
never evaluated: 0
never executed: }
0
521while (cc < ccend)
never evaluated: cc < ccend
0
522 switch(*cc) -
523 { -
524 case OP_SET_SOM: -
525 case OP_RECURSE: -
526 if (!setsom_found)
never evaluated: !setsom_found
0
527 { -
528 length += 2; -
529 setsom_found = 1; -
530 }
never executed: }
0
531 cc += (*cc == OP_SET_SOM) ? 1 : 1 + 1;
never evaluated: (*cc == OP_SET_SOM)
0
532 break;
never executed: break;
0
533 -
534 case OP_CBRA: -
535 case OP_CBRAPOS: -
536 case OP_SCBRA: -
537 case OP_SCBRAPOS: -
538 length += 3; -
539 cc += 1 + 1 + 1; -
540 break;
never executed: break;
0
541 -
542 default: -
543 cc = next_opcode(common, cc); -
544 do { } while (0);
never evaluated: 0
never executed: }
0
545 break;
never executed: break;
0
546 }
never executed: }
0
547 -
548 -
549if (__builtin_expect((possessive), 0) && length == 3)
never evaluated: __builtin_expect((possessive), 0)
never evaluated: length == 3
0
550 return -1;
never executed: return -1;
0
551 -
552if (length > 0)
never evaluated: length > 0
0
553 return length + 1;
never executed: return length + 1;
0
554return -1;
never executed: return -1;
0
555} -
556 -
557static void init_frame(compiler_common *common, pcre_uchar *cc, int stackpos, int stacktop, BOOL recursive) -
558{ -
559struct sljit_compiler *compiler = common->compiler; -
560pcre_uchar *ccend = bracketend(cc); -
561BOOL setsom_found = 0; -
562int offset; -
563 -
564 -
565(void)stacktop; -
566do { } while (0);
never evaluated: 0
never executed: }
0
567 -
568stackpos = ((-(stackpos) - 1) * (int)sizeof(sljit_w)); -
569if (recursive || (*cc != OP_CBRAPOS && *cc != OP_SCBRAPOS))
never evaluated: recursive
never evaluated: *cc != OP_CBRAPOS
never evaluated: *cc != OP_SCBRAPOS
0
570 cc = next_opcode(common, cc);
never executed: cc = next_opcode(common, cc);
0
571do { } while (0);
never evaluated: 0
never executed: }
0
572while (cc < ccend)
never evaluated: cc < ccend
0
573 switch(*cc) -
574 { -
575 case OP_SET_SOM: -
576 case OP_RECURSE: -
577 if (!setsom_found)
never evaluated: !setsom_found
0
578 { -
579 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
580 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (frame_setstrbegin)); -
581 stackpos += (int)sizeof(sljit_w); -
582 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (1), (0)); -
583 stackpos += (int)sizeof(sljit_w); -
584 setsom_found = 1; -
585 }
never executed: }
0
586 cc += (*cc == OP_SET_SOM) ? 1 : 1 + 1;
never evaluated: (*cc == OP_SET_SOM)
0
587 break;
never executed: break;
0
588 -
589 case OP_CBRA: -
590 case OP_CBRAPOS: -
591 case OP_SCBRA: -
592 case OP_SCBRAPOS: -
593 offset = (cc[1 + 1]) << 1; -
594 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
595 stackpos += (int)sizeof(sljit_w); -
596 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
597 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w)))); -
598 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (1), (0)); -
599 stackpos += (int)sizeof(sljit_w); -
600 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (3), (0)); -
601 stackpos += (int)sizeof(sljit_w); -
602 -
603 cc += 1 + 1 + 1; -
604 break;
never executed: break;
0
605 -
606 default: -
607 cc = next_opcode(common, cc); -
608 do { } while (0);
never evaluated: 0
never executed: }
0
609 break;
never executed: break;
0
610 }
never executed: }
0
611 -
612sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackpos), (0x200), (frame_end)); -
613do { } while (0);
never evaluated: 0
never executed: }
0
614}
never executed: }
0
615 -
616static __inline int get_localsize(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend) -
617{ -
618int localsize = 2; -
619pcre_uchar *alternative; -
620 -
621while (cc < ccend)
never evaluated: cc < ccend
0
622 { -
623 switch(*cc) -
624 { -
625 case OP_ASSERT: -
626 case OP_ASSERT_NOT: -
627 case OP_ASSERTBACK: -
628 case OP_ASSERTBACK_NOT: -
629 case OP_ONCE: -
630 case OP_ONCE_NC: -
631 case OP_BRAPOS: -
632 case OP_SBRA: -
633 case OP_SBRAPOS: -
634 case OP_SCOND: -
635 localsize++; -
636 cc += 1 + 1; -
637 break;
never executed: break;
0
638 -
639 case OP_CBRA: -
640 case OP_SCBRA: -
641 localsize++; -
642 cc += 1 + 1 + 1; -
643 break;
never executed: break;
0
644 -
645 case OP_CBRAPOS: -
646 case OP_SCBRAPOS: -
647 localsize += 2; -
648 cc += 1 + 1 + 1; -
649 break;
never executed: break;
0
650 -
651 case OP_COND: -
652 -
653 alternative = cc + (cc[1]); -
654 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
655 localsize++;
never executed: localsize++;
0
656 cc += 1 + 1; -
657 break;
never executed: break;
0
658 -
659 default: -
660 cc = next_opcode(common, cc); -
661 do { } while (0);
never evaluated: 0
never executed: }
0
662 break;
never executed: break;
0
663 } -
664 }
never executed: }
0
665do { } while (0);
never evaluated: 0
never executed: }
0
666return localsize;
never executed: return localsize;
0
667} -
668 -
669static void copy_locals(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, -
670 BOOL save, int stackptr, int stacktop) -
671{ -
672struct sljit_compiler *compiler = common->compiler; -
673int srcw[2]; -
674int count; -
675BOOL tmp1next = 1; -
676BOOL tmp1empty = 1; -
677BOOL tmp2empty = 1; -
678pcre_uchar *alternative; -
679enum { -
680 start, -
681 loop, -
682 end -
683} status; -
684 -
685status = save ? start : loop;
never evaluated: save
0
686stackptr = ((-(stackptr - 2) - 1) * (int)sizeof(sljit_w)); -
687stacktop = ((-(stacktop - 1) - 1) * (int)sizeof(sljit_w)); -
688 -
689if (!save)
never evaluated: !save
0
690 { -
691 stackptr += sizeof(sljit_w); -
692 if (stackptr < stacktop)
never evaluated: stackptr < stacktop
0
693 { -
694 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (stackptr)); -
695 stackptr += sizeof(sljit_w); -
696 tmp1empty = 0; -
697 }
never executed: }
0
698 if (stackptr < stacktop)
never evaluated: stackptr < stacktop
0
699 { -
700 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (stackptr)); -
701 stackptr += sizeof(sljit_w); -
702 tmp2empty = 0; -
703 }
never executed: }
0
704 -
705 }
never executed: }
0
706 -
707while (status != end)
never evaluated: status != end
0
708 { -
709 count = 0; -
710 switch(status) -
711 { -
712 case start: -
713 do { } while (0);
never evaluated: 0
never executed: }
0
714 count = 1; -
715 srcw[0] = (4 * sizeof(sljit_w)); -
716 status = loop; -
717 break;
never executed: break;
0
718 -
719 case loop: -
720 if (cc >= ccend)
never evaluated: cc >= ccend
0
721 { -
722 status = end; -
723 break;
never executed: break;
0
724 } -
725 -
726 switch(*cc) -
727 { -
728 case OP_ASSERT: -
729 case OP_ASSERT_NOT: -
730 case OP_ASSERTBACK: -
731 case OP_ASSERTBACK_NOT: -
732 case OP_ONCE: -
733 case OP_ONCE_NC: -
734 case OP_BRAPOS: -
735 case OP_SBRA: -
736 case OP_SBRAPOS: -
737 case OP_SCOND: -
738 count = 1; -
739 srcw[0] = (common->localptrs[(cc) - common->start]); -
740 do { } while (0);
never evaluated: 0
never executed: }
0
741 cc += 1 + 1; -
742 break;
never executed: break;
0
743 -
744 case OP_CBRA: -
745 case OP_SCBRA: -
746 count = 1; -
747 srcw[0] = (common->cbraptr + (cc[1 + 1]) * sizeof(sljit_w)); -
748 cc += 1 + 1 + 1; -
749 break;
never executed: break;
0
750 -
751 case OP_CBRAPOS: -
752 case OP_SCBRAPOS: -
753 count = 2; -
754 srcw[1] = (common->cbraptr + (cc[1 + 1]) * sizeof(sljit_w)); -
755 srcw[0] = (common->localptrs[(cc) - common->start]); -
756 do { } while (0);
never evaluated: 0
never executed: }
0
757 cc += 1 + 1 + 1; -
758 break;
never executed: break;
0
759 -
760 case OP_COND: -
761 -
762 alternative = cc + (cc[1]); -
763 if (*alternative == OP_KETRMAX || *alternative == OP_KETRMIN)
never evaluated: *alternative == OP_KETRMAX
never evaluated: *alternative == OP_KETRMIN
0
764 { -
765 count = 1; -
766 srcw[0] = (common->localptrs[(cc) - common->start]); -
767 do { } while (0);
never evaluated: 0
never executed: }
0
768 }
never executed: }
0
769 cc += 1 + 1; -
770 break;
never executed: break;
0
771 -
772 default: -
773 cc = next_opcode(common, cc); -
774 do { } while (0);
never evaluated: 0
never executed: }
0
775 break;
never executed: break;
0
776 } -
777 break;
never executed: break;
0
778 -
779 case end: -
780 do { } while (0);
never evaluated: 0
never executed: }
0
781 break;
never executed: break;
0
782 } -
783 -
784 while (count > 0)
never evaluated: count > 0
0
785 { -
786 count--; -
787 if (save)
never evaluated: save
0
788 { -
789 if (tmp1next)
never evaluated: tmp1next
0
790 { -
791 if (!tmp1empty)
never evaluated: !tmp1empty
0
792 { -
793 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0)); -
794 stackptr += sizeof(sljit_w); -
795 }
never executed: }
0
796 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (srcw[count])); -
797 tmp1empty = 0; -
798 tmp1next = 0; -
799 }
never executed: }
0
800 else -
801 { -
802 if (!tmp2empty)
never evaluated: !tmp2empty
0
803 { -
804 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0)); -
805 stackptr += sizeof(sljit_w); -
806 }
never executed: }
0
807 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (srcw[count])); -
808 tmp2empty = 0; -
809 tmp1next = 1; -
810 }
never executed: }
0
811 } -
812 else -
813 { -
814 if (tmp1next)
never evaluated: tmp1next
0
815 { -
816 do { } while (0);
never evaluated: 0
never executed: }
0
817 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (srcw[count]), (1), (0)); -
818 tmp1empty = stackptr >= stacktop; -
819 if (!tmp1empty)
never evaluated: !tmp1empty
0
820 { -
821 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (stackptr)); -
822 stackptr += sizeof(sljit_w); -
823 }
never executed: }
0
824 tmp1next = 0; -
825 }
never executed: }
0
826 else -
827 { -
828 do { } while (0);
never evaluated: 0
never executed: }
0
829 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (srcw[count]), (3), (0)); -
830 tmp2empty = stackptr >= stacktop; -
831 if (!tmp2empty)
never evaluated: !tmp2empty
0
832 { -
833 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (stackptr)); -
834 stackptr += sizeof(sljit_w); -
835 }
never executed: }
0
836 tmp1next = 1; -
837 }
never executed: }
0
838 } -
839 } -
840 }
never executed: }
0
841 -
842if (save)
never evaluated: save
0
843 { -
844 if (tmp1next)
never evaluated: tmp1next
0
845 { -
846 if (!tmp1empty)
never evaluated: !tmp1empty
0
847 { -
848 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0)); -
849 stackptr += sizeof(sljit_w); -
850 }
never executed: }
0
851 if (!tmp2empty)
never evaluated: !tmp2empty
0
852 { -
853 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0)); -
854 stackptr += sizeof(sljit_w); -
855 }
never executed: }
0
856 }
never executed: }
0
857 else -
858 { -
859 if (!tmp2empty)
never evaluated: !tmp2empty
0
860 { -
861 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (3), (0)); -
862 stackptr += sizeof(sljit_w); -
863 }
never executed: }
0
864 if (!tmp1empty)
never evaluated: !tmp1empty
0
865 { -
866 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (stackptr), (1), (0)); -
867 stackptr += sizeof(sljit_w); -
868 }
never executed: }
0
869 }
never executed: }
0
870 } -
871do { } while (0);
never executed: }
never evaluated: 0
0
872}
never executed: }
0
873 -
874static __inline BOOL ispowerof2(unsigned int value) -
875{ -
876return (value & (value - 1)) == 0;
never executed: return (value & (value - 1)) == 0;
0
877} -
878 -
879static __inline void set_jumps(jump_list *list, struct sljit_label *label) -
880{ -
881while (list)
evaluated: list
TRUEFALSE
yes
Evaluation Count:65
yes
Evaluation Count:57
57-65
882 { -
883 -
884 -
885 sljit_set_label(list->jump, label); -
886 list = list->next; -
887 }
executed: }
Execution Count:65
65
888}
executed: }
Execution Count:57
57
889 -
890static __inline void add_jump(struct sljit_compiler *compiler, jump_list **list, struct sljit_jump* jump) -
891{ -
892jump_list *list_item = sljit_alloc_memory(compiler, sizeof(jump_list)); -
893if (list_item)
partially evaluated: list_item
TRUEFALSE
yes
Evaluation Count:65
no
Evaluation Count:0
0-65
894 { -
895 list_item->next = *list; -
896 list_item->jump = jump; -
897 *list = list_item; -
898 }
executed: }
Execution Count:65
65
899}
executed: }
Execution Count:65
65
900 -
901static void add_stub(compiler_common *common, enum stub_types type, int data, struct sljit_jump *start) -
902{ -
903struct sljit_compiler *compiler = common->compiler; -
904stub_list* list_item = sljit_alloc_memory(compiler, sizeof(stub_list)); -
905 -
906if (list_item)
partially evaluated: list_item
TRUEFALSE
yes
Evaluation Count:11
no
Evaluation Count:0
0-11
907 { -
908 list_item->type = type; -
909 list_item->data = data; -
910 list_item->start = start; -
911 list_item->leave = sljit_emit_label(compiler); -
912 list_item->next = common->stubs; -
913 common->stubs = list_item; -
914 }
executed: }
Execution Count:11
11
915}
executed: }
Execution Count:11
11
916 -
917static void flush_stubs(compiler_common *common) -
918{ -
919struct sljit_compiler *compiler = common->compiler; -
920stub_list* list_item = common->stubs; -
921 -
922while (list_item)
evaluated: list_item
TRUEFALSE
yes
Evaluation Count:11
yes
Evaluation Count:15
11-15
923 { -
924 sljit_set_label((list_item->start), sljit_emit_label(compiler)); -
925 switch(list_item->type) -
926 { -
927 case stack_alloc: -
928 add_jump(compiler, &common->stackalloc, sljit_emit_jump(compiler, (23))); -
929 break;
executed: break;
Execution Count:11
11
930 } -
931 sljit_set_label(sljit_emit_jump(compiler, (22)), (list_item->leave)); -
932 list_item = list_item->next; -
933 }
executed: }
Execution Count:11
11
934common->stubs = ((void *)0); -
935}
executed: }
Execution Count:15
15
936 -
937static __inline void decrease_call_count(compiler_common *common) -
938{ -
939struct sljit_compiler *compiler = common->compiler; -
940 -
941sljit_emit_op2(compiler, (25 | 0x0200), (10), (0), (10), (0), (0x200), (1)); -
942add_jump(compiler, &common->calllimit, sljit_emit_jump(compiler, (0))); -
943}
executed: }
Execution Count:8
8
944 -
945static __inline void allocate_stack(compiler_common *common, int size) -
946{ -
947 -
948struct sljit_compiler *compiler = common->compiler; -
949 -
950sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (size * sizeof(sljit_w))); -
951 -
952 -
953 -
954 -
955 -
956 -
957 -
958add_stub(common, stack_alloc, 0, sljit_emit_cmp(compiler, (4), (2), (0), (8), (0))); -
959}
executed: }
Execution Count:11
11
960 -
961static __inline void free_stack(compiler_common *common, int size) -
962{ -
963struct sljit_compiler *compiler = common->compiler; -
964sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (size * sizeof(sljit_w))); -
965}
executed: }
Execution Count:10
10
966 -
967static __inline void reset_ovector(compiler_common *common, int length) -
968{ -
969struct sljit_compiler *compiler = common->compiler; -
970struct sljit_label *loop; -
971int i; -
972 -
973 -
974sljit_emit_op2(compiler, (25), (1), (0), ((0x100 | (6))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10)), (0x200), (((1) << 1))); -
975if (length < 8)
partially evaluated: length < 8
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
976 { -
977 for (i = 0; i < length; i++)
evaluated: i < length
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:15
15-30
978 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (i) * sizeof(sljit_w))), (1), (0));
executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (i) * sizeof(sljit_w))), (1), (0));
Execution Count:30
30
979 }
executed: }
Execution Count:15
15
980else -
981 { -
982 sljit_emit_op2(compiler, (23), (2), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w)) - sizeof(sljit_w))); -
983 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (length)); -
984 loop = sljit_emit_label(compiler); -
985 sljit_emit_op1(compiler, (13), ((0x100 | (2))), (sizeof(sljit_w)), (1), (0)); -
986 sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (1)); -
987 sljit_set_label(sljit_emit_jump(compiler, (1)), (loop)); -
988 }
never executed: }
0
989} -
990 -
991static __inline void copy_ovector(compiler_common *common, int topbracket) -
992{ -
993struct sljit_compiler *compiler = common->compiler; -
994struct sljit_label *loop; -
995struct sljit_jump *earlyexit; -
996 -
997 -
998sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))); -
999sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))), (6), (0)); -
1000 -
1001sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
1002sljit_emit_op1(compiler, (12), (2), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->offsetcount) - 0x10))); -
1003sljit_emit_op2(compiler, (25), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->offsets) - 0x10)), (0x200), (sizeof(int))); -
1004sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
1005sljit_emit_op2(compiler, (23), (6), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w)))); -
1006 -
1007earlyexit = sljit_emit_cmp(compiler, (0), (2), (0), (0x200), (0)); -
1008loop = sljit_emit_label(compiler); -
1009sljit_emit_op2(compiler, (25), (7), (0), ((0x100 | (6))), (0), (1), (0)); -
1010sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (sizeof(sljit_w))); -
1011 -
1012 -
1013sljit_emit_op2(compiler, (33), (7), (0), (7), (0), (0x200), (1)); -
1014 -
1015sljit_emit_op1(compiler, (19), ((0x100 | (3))), (sizeof(int)), (7), (0)); -
1016sljit_emit_op2(compiler, (25 | 0x0200), (2), (0), (2), (0), (0x200), (1)); -
1017sljit_set_label(sljit_emit_jump(compiler, (1)), (loop)); -
1018sljit_set_label((earlyexit), sljit_emit_label(compiler)); -
1019 -
1020 -
1021if (topbracket > 1)
partially evaluated: topbracket > 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1022 { -
1023 sljit_emit_op2(compiler, (23), (1), (0), (11), (0), (0x200), ((8 * sizeof(sljit_w)) + topbracket * 2 * sizeof(sljit_w))); -
1024 sljit_emit_op1(compiler, (6), (2), (0), (0x200), (topbracket + 1)); -
1025 -
1026 -
1027 loop = sljit_emit_label(compiler); -
1028 sljit_emit_op1(compiler, (13), (3), (0), ((0x100 | (1))), (-(2 * (sljit_w)sizeof(sljit_w)))); -
1029 sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (1)); -
1030 sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (8), (0)), (loop)); -
1031 sljit_emit_op1(compiler, (6), (1), (0), (2), (0)); -
1032 }
never executed: }
0
1033else -
1034 sljit_emit_op1(compiler, (6), (1), (0), (0x200), (1));
executed: sljit_emit_op1(compiler, (6), (1), (0), (0x200), (1));
Execution Count:15
15
1035} -
1036 -
1037static __inline BOOL char_has_othercase(compiler_common *common, pcre_uchar* cc) -
1038{ -
1039 -
1040unsigned int c; -
1041 -
1042 -
1043if (common->utf)
never evaluated: common->utf
0
1044 { -
1045 c = *cc; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (cc[1] & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
1046 if (c > 127)
never evaluated: c > 127
0
1047 { -
1048 -
1049 return c != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
never executed: return c != (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
1050 -
1051 -
1052 -
1053 } -
1054 -
1055 return common->fcc[c] != c;
never executed: return common->fcc[c] != c;
0
1056 -
1057 } -
1058else -
1059 -
1060 c = *cc;
never executed: c = *cc;
0
1061return ((c) <= 255u) ? common->fcc[c] != c : 0;
never executed: return ((c) <= 255u) ? common->fcc[c] != c : 0;
0
1062} -
1063 -
1064static __inline unsigned int char_othercase(compiler_common *common, unsigned int c) -
1065{ -
1066 -
1067 -
1068if (common->utf && c > 127)
never evaluated: common->utf
never evaluated: c > 127
0
1069 { -
1070 -
1071 return (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
never executed: return (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case);
0
1072 -
1073 -
1074 -
1075 } -
1076 -
1077return (((c) <= 255u)? ((common->fcc)[c]):(c));
never executed: return (((c) <= 255u)? ((common->fcc)[c]):(c));
0
1078} -
1079 -
1080static unsigned int char_get_othercase_bit(compiler_common *common, pcre_uchar* cc) -
1081{ -
1082 -
1083unsigned int c, oc, bit; -
1084 -
1085 -
1086 -
1087 -
1088 -
1089if (common->utf)
never evaluated: common->utf
0
1090 { -
1091 c = *cc; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (cc[1] & 0x3ff)) + 0x10000; };;
never executed: }
never evaluated: (c & 0xfc00) == 0xd800
0
1092 if (c <= 127)
never evaluated: c <= 127
0
1093 oc = common->fcc[c];
never executed: oc = common->fcc[c];
0
1094 else -
1095 { -
1096 -
1097 oc = (c + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c) / 128] * 128 + (c) % 128])->other_case); -
1098 -
1099 -
1100 -
1101 }
never executed: }
0
1102 } -
1103else -
1104 { -
1105 c = *cc; -
1106 oc = (((c) <= 255u)? ((common->fcc)[c]):(c));
never evaluated: ((c) <= 255u)
0
1107 }
never executed: }
0
1108 -
1109 -
1110 -
1111 -
1112 -
1113do { } while (0);
never executed: }
never evaluated: 0
0
1114 -
1115bit = c ^ oc; -
1116 -
1117if (c <= 127 && bit == 0x20)
never evaluated: c <= 127
never evaluated: bit == 0x20
0
1118 return (0 << 8) | 0x20;
never executed: return (0 << 8) | 0x20;
0
1119 -
1120 -
1121if (!ispowerof2(bit))
never evaluated: !ispowerof2(bit)
0
1122 return 0;
never executed: return 0;
0
1123if (common->utf && c > 65535)
never evaluated: common->utf
never evaluated: c > 65535
0
1124 { -
1125 if (bit >= (1 << 10))
never evaluated: bit >= (1 << 10)
0
1126 bit >>= 10;
never executed: bit >>= 10;
0
1127 else -
1128 return (bit < 256) ? ((2 << 8) | bit) : ((3 << 8) | (bit >> 8));
never executed: return (bit < 256) ? ((2 << 8) | bit) : ((3 << 8) | (bit >> 8));
0
1129 } -
1130 -
1131return (bit < 256) ? ((0 << 8) | bit) : ((1 << 8) | (bit >> 8));
never executed: return (bit < 256) ? ((0 << 8) | bit) : ((1 << 8) | (bit >> 8));
0
1132 -
1133 -
1134 -
1135} -
1136 -
1137static __inline void check_input_end(compiler_common *common, jump_list **fallbacks) -
1138{ -
1139struct sljit_compiler *compiler = common->compiler; -
1140add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (3), (6), (0), (7), (0))); -
1141}
executed: }
Execution Count:6
6
1142 -
1143static void read_char(compiler_common *common) -
1144{ -
1145 -
1146 -
1147struct sljit_compiler *compiler = common->compiler; -
1148 -
1149struct sljit_jump *jump; -
1150 -
1151 -
1152sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1153 -
1154if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:10
no
Evaluation Count:0
0-10
1155 { -
1156 -
1157 -
1158 -
1159 -
1160 jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)); -
1161 -
1162 -
1163 add_jump(compiler, &common->utfreadchar, sljit_emit_jump(compiler, (23))); -
1164 sljit_set_label((jump), sljit_emit_label(compiler)); -
1165 }
executed: }
Execution Count:10
10
1166 -
1167sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1168}
executed: }
Execution Count:10
10
1169 -
1170static void peek_char(compiler_common *common) -
1171{ -
1172 -
1173 -
1174struct sljit_compiler *compiler = common->compiler; -
1175 -
1176struct sljit_jump *jump; -
1177 -
1178 -
1179sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1180 -
1181if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1182 { -
1183 -
1184 -
1185 -
1186 -
1187 jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)); -
1188 -
1189 -
1190 add_jump(compiler, &common->utfreadchar, sljit_emit_jump(compiler, (23))); -
1191 sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0)); -
1192 sljit_set_label((jump), sljit_emit_label(compiler)); -
1193 }
executed: }
Execution Count:1
1
1194 -
1195}
executed: }
Execution Count:1
1
1196 -
1197static void read_char8_type(compiler_common *common) -
1198{ -
1199 -
1200struct sljit_compiler *compiler = common->compiler; -
1201 -
1202struct sljit_jump *jump; -
1203 -
1204 -
1205 -
1206if (common->utf)
never evaluated: common->utf
0
1207 { -
1208 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (0)); -
1209 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1210 sljit_emit_op1(compiler, (6), (1), (0), (0x200), (0)); -
1211 jump = sljit_emit_cmp(compiler, (4), (3), (0), (0x200), (255)); -
1212 sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (3))), (common->ctypes)); -
1213 sljit_set_label((jump), sljit_emit_label(compiler)); -
1214 -
1215 sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (0xfc00)); -
1216 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (3), (0), (0x200), (0xd800)); -
1217 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
1218 sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (1)); -
1219 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (3), (0)); -
1220 -
1221 -
1222 return;
never executed: return;
0
1223 } -
1224 -
1225sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (0)); -
1226sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1227 -
1228 -
1229sljit_emit_op1(compiler, (6), (1), (0), (0x200), (0)); -
1230jump = sljit_emit_cmp(compiler, (4), (3), (0), (0x200), (255)); -
1231 -
1232sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (3))), (common->ctypes)); -
1233 -
1234sljit_set_label((jump), sljit_emit_label(compiler)); -
1235 -
1236}
never executed: }
0
1237 -
1238static void skip_char_back(compiler_common *common) -
1239{ -
1240 -
1241struct sljit_compiler *compiler = common->compiler; -
1242if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:12
no
Evaluation Count:0
0-12
1243 { -
1244 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (-((1) << 1))); -
1245 sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1246 -
1247 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00)); -
1248 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xdc00)); -
1249 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1250 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1251 sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (1), (0)); -
1252 return;
executed: return;
Execution Count:12
12
1253 } -
1254 -
1255sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1256}
never executed: }
0
1257 -
1258static void check_newlinechar(compiler_common *common, int nltype, jump_list **fallbacks, BOOL jumpiftrue) -
1259{ -
1260 -
1261struct sljit_compiler *compiler = common->compiler; -
1262 -
1263if (nltype == 1)
partially evaluated: nltype == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1264 { -
1265 add_jump(compiler, &common->anynewline, sljit_emit_jump(compiler, (23))); -
1266 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (jumpiftrue ? 1 : 0))); -
1267 }
never executed: }
0
1268else if (nltype == 2)
evaluated: nltype == 2
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
1269 { -
1270 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\015')); -
1271 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
1272 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\012')); -
1273 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1274 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (jumpiftrue ? 1 : 0))); -
1275 }
executed: }
Execution Count:2
2
1276else -
1277 { -
1278 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
executed: }
Execution Count:4
0-4
1279 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (jumpiftrue ? 0 : 1), (1), (0), (0x200), (common->newline))); -
1280 }
executed: }
Execution Count:4
4
1281} -
1282static void do_utfreadchar(compiler_common *common) -
1283{ -
1284 -
1285 -
1286struct sljit_compiler *compiler = common->compiler; -
1287struct sljit_jump *jump; -
1288 -
1289sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1290jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xdc00)); -
1291 -
1292sljit_emit_fast_return(compiler, 4, 0); -
1293 -
1294sljit_set_label((jump), sljit_emit_label(compiler)); -
1295 -
1296sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1))); -
1297sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1298sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0x3ff)); -
1299sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (10)); -
1300sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (0x3ff)); -
1301sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (3), (0)); -
1302sljit_emit_op1(compiler, (6), (3), (0), (0x200), (((1) << 1))); -
1303sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (0x10000)); -
1304sljit_emit_fast_return(compiler, 4, 0); -
1305}
executed: }
Execution Count:7
7
1306static void do_getucd(compiler_common *common) -
1307{ -
1308 -
1309 -
1310struct sljit_compiler *compiler = common->compiler; -
1311 -
1312do { } while (0);
never evaluated: 0
never executed: }
0
1313 -
1314sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1315sljit_emit_op2(compiler, (32), (3), (0), (1), (0), (0x200), (7)); -
1316sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), ((sljit_w)_pcre16_ucd_stage1)); -
1317sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (127)); -
1318sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (7)); -
1319sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (3), (0)); -
1320sljit_emit_op1(compiler, (6), (3), (0), (0x200), ((sljit_w)_pcre16_ucd_stage2)); -
1321sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (3) | ((1) << 4))), (1)); -
1322sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->chartype) - 0x10))); -
1323sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1) | ((3) << 4))), (3)); -
1324sljit_emit_fast_return(compiler, 4, 0); -
1325}
never executed: }
0
1326 -
1327 -
1328static __inline struct sljit_label *mainloop_entry(compiler_common *common, BOOL hascrorlf, BOOL firstline) -
1329{ -
1330struct sljit_compiler *compiler = common->compiler; -
1331struct sljit_label *mainloop; -
1332struct sljit_label *newlinelabel = ((void *)0); -
1333struct sljit_jump *start; -
1334struct sljit_jump *end = ((void *)0); -
1335struct sljit_jump *nl = ((void *)0); -
1336 -
1337struct sljit_jump *singlechar; -
1338 -
1339jump_list *newline = ((void *)0); -
1340BOOL newlinecheck = 0; -
1341BOOL readuchar = 0; -
1342 -
1343if (!(hascrorlf || firstline) && (common->nltype == 1 ||
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
1344 common->nltype == 2 || 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
1345 newlinecheck = 1;
executed: newlinecheck = 1;
Execution Count:3
3
1346 -
1347if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1348 { -
1349 -
1350 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (6), (0)); -
1351 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (7), (0)); -
1352 -
1353 if (common->nltype == 0 && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
1354 { -
1355 mainloop = sljit_emit_label(compiler); -
1356 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1357 end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1358 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-1) << 1))); -
1359 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((0) << 1))); -
1360 sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)), (mainloop)); -
1361 sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)), (mainloop)); -
1362 sljit_emit_op2(compiler, (25), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0), (0x200), (((1) << 1))); -
1363 }
never executed: }
0
1364 else -
1365 { -
1366 end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1367 mainloop = sljit_emit_label(compiler); -
1368 -
1369 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0)); -
1370 read_char(common); -
1371 check_newlinechar(common, common->nltype, &newline, 1); -
1372 sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)), (mainloop)); -
1373 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((7 * sizeof(sljit_w))), (6), (0)); -
1374 set_jumps(newline, sljit_emit_label(compiler)); -
1375 }
never executed: }
0
1376 -
1377 sljit_set_label((end), sljit_emit_label(compiler)); -
1378 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w)))); -
1379 }
never executed: }
0
1380 -
1381start = sljit_emit_jump(compiler, (22)); -
1382 -
1383if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1384 { -
1385 newlinelabel = sljit_emit_label(compiler); -
1386 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1387 end = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1388 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1389 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (common->newline & 0xff)); -
1390 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1391 -
1392 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1393 -
1394 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
1395 nl = sljit_emit_jump(compiler, (22)); -
1396 }
executed: }
Execution Count:3
3
1397 -
1398mainloop = sljit_emit_label(compiler); -
1399 -
1400 -
1401 -
1402if (common->utf) readuchar = 1;
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
executed: readuchar = 1;
Execution Count:15
0-15
1403 -
1404if (newlinecheck) readuchar = 1;
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
executed: readuchar = 1;
Execution Count:3
3-12
1405 -
1406if (readuchar)
partially evaluated: readuchar
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1407 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
executed: sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0));
Execution Count:15
15
1408 -
1409if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1410 sljit_set_label(sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ((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
1411 -
1412sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1413if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1414 { -
1415 singlechar = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)); -
1416 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00)); -
1417 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800)); -
1418 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1419 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1420 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
1421 sljit_set_label((singlechar), sljit_emit_label(compiler)); -
1422 }
executed: }
Execution Count:15
15
1423 -
1424sljit_set_label((start), sljit_emit_label(compiler)); -
1425 -
1426if (newlinecheck)
evaluated: newlinecheck
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:12
3-12
1427 { -
1428 sljit_set_label((end), sljit_emit_label(compiler)); -
1429 sljit_set_label((nl), sljit_emit_label(compiler)); -
1430 }
executed: }
Execution Count:3
3
1431 -
1432return mainloop;
executed: return mainloop;
Execution Count:15
15
1433} -
1434 -
1435static __inline void fast_forward_first_char(compiler_common *common, pcre_uchar first_char, BOOL caseless, BOOL firstline) -
1436{ -
1437struct sljit_compiler *compiler = common->compiler; -
1438struct sljit_label *start; -
1439struct sljit_jump *leave; -
1440struct sljit_jump *found; -
1441pcre_uchar oc, bit; -
1442 -
1443if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1444 { -
1445 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0)); -
1446 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))); -
1447 }
never executed: }
0
1448 -
1449start = sljit_emit_label(compiler); -
1450leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1451sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1452 -
1453oc = first_char; -
1454if (caseless)
partially evaluated: caseless
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1455 { -
1456 oc = (((first_char) <= 255u)? ((common->fcc)[first_char]):(first_char));
never evaluated: ((first_char) <= 255u)
0
1457 -
1458 if (first_char > 127 && common->utf)
never evaluated: first_char > 127
never evaluated: common->utf
0
1459 oc = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case);
never executed: oc = (first_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(first_char) / 128] * 128 + (first_char) % 128])->other_case);
0
1460 -
1461 }
never executed: }
0
1462if (first_char == oc)
partially evaluated: first_char == oc
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
1463 found = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (first_char));
executed: found = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (first_char));
Execution Count:6
6
1464else -
1465 { -
1466 bit = first_char ^ oc; -
1467 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
1468 { -
1469 sljit_emit_op2(compiler, (29), (3), (0), (1), (0), (0x200), (bit)); -
1470 found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (first_char | bit)); -
1471 }
never executed: }
0
1472 else -
1473 { -
1474 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (first_char)); -
1475 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
1476 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (oc)); -
1477 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1478 found = sljit_emit_jump(compiler, (1)); -
1479 }
never executed: }
0
1480 } -
1481 -
1482sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1483if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
1484 { -
1485 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)), (start)); -
1486 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00)); -
1487 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800)); -
1488 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1489 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1490 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
1491 }
executed: }
Execution Count:6
6
1492 -
1493sljit_set_label(sljit_emit_jump(compiler, (22)), (start)); -
1494sljit_set_label((found), sljit_emit_label(compiler)); -
1495sljit_set_label((leave), sljit_emit_label(compiler)); -
1496 -
1497if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
1498 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1499}
executed: }
Execution Count:6
6
1500 -
1501static __inline void fast_forward_newline(compiler_common *common, BOOL firstline) -
1502{ -
1503struct sljit_compiler *compiler = common->compiler; -
1504struct sljit_label *loop; -
1505struct sljit_jump *lastchar; -
1506struct sljit_jump *firstchar; -
1507struct sljit_jump *leave; -
1508struct sljit_jump *foundcr = ((void *)0); -
1509struct sljit_jump *notfoundnl; -
1510jump_list *newline = ((void *)0); -
1511 -
1512if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
1513 { -
1514 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0)); -
1515 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))); -
1516 }
never executed: }
0
1517 -
1518if (common->nltype == 0 && 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
1519 { -
1520 lastchar = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1521 sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
1522 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
1523 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
1524 firstchar = sljit_emit_cmp(compiler, (5), (6), (0), (3), (0)); -
1525 -
1526 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (((2) << 1))); -
1527 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (6), (0), (1), (0)); -
1528 sljit_emit_cond_value(compiler, (6), (3), (0), (3)); -
1529 -
1530 sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (1)); -
1531 -
1532 sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0)); -
1533 -
1534 loop = sljit_emit_label(compiler); -
1535 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1536 leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1537 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-2) << 1))); -
1538 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((-1) << 1))); -
1539 sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)), (loop)); -
1540 sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff)), (loop)); -
1541 -
1542 sljit_set_label((leave), sljit_emit_label(compiler)); -
1543 sljit_set_label((firstchar), sljit_emit_label(compiler)); -
1544 sljit_set_label((lastchar), sljit_emit_label(compiler)); -
1545 -
1546 if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
1547 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1548 return;
executed: return;
Execution Count:2
2
1549 } -
1550 -
1551sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
1552sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
1553firstchar = sljit_emit_cmp(compiler, (5), (6), (0), (3), (0)); -
1554skip_char_back(common); -
1555 -
1556loop = sljit_emit_label(compiler); -
1557read_char(common); -
1558lastchar = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1559if (common->nltype == 1 || common->nltype == 2)
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
1560 foundcr = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\015'));
executed: foundcr = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\015'));
Execution Count:1
1
1561check_newlinechar(common, common->nltype, &newline, 0); -
1562set_jumps(newline, loop); -
1563 -
1564if (common->nltype == 1 || common->nltype == 2)
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
1565 { -
1566 leave = sljit_emit_jump(compiler, (22)); -
1567 sljit_set_label((foundcr), sljit_emit_label(compiler)); -
1568 notfoundnl = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1569 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1570 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\012')); -
1571 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1572 -
1573 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1574 -
1575 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
1576 sljit_set_label((notfoundnl), sljit_emit_label(compiler)); -
1577 sljit_set_label((leave), sljit_emit_label(compiler)); -
1578 }
executed: }
Execution Count:1
1
1579sljit_set_label((lastchar), sljit_emit_label(compiler)); -
1580sljit_set_label((firstchar), sljit_emit_label(compiler)); -
1581 -
1582if (firstline)
partially evaluated: firstline
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1583 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1584}
executed: }
Execution Count:3
3
1585 -
1586static __inline void fast_forward_start_bits(compiler_common *common, sljit_uw start_bits, BOOL firstline) -
1587{ -
1588struct sljit_compiler *compiler = common->compiler; -
1589struct sljit_label *start; -
1590struct sljit_jump *leave; -
1591struct sljit_jump *found; -
1592 -
1593struct sljit_jump *jump; -
1594 -
1595 -
1596if (firstline)
never evaluated: firstline
0
1597 { -
1598 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (7), (0)); -
1599 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))); -
1600 }
never executed: }
0
1601 -
1602start = sljit_emit_label(compiler); -
1603leave = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1604sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
1605 -
1606if (common->utf)
never evaluated: common->utf
0
1607 sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
never executed: sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
0
1608 -
1609 -
1610jump = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (255)); -
1611sljit_emit_op1(compiler, (6), (1), (0), (0x200), (255)); -
1612sljit_set_label((jump), sljit_emit_label(compiler)); -
1613 -
1614sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7)); -
1615sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3)); -
1616sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), (start_bits)); -
1617sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0)); -
1618sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0)); -
1619found = sljit_emit_jump(compiler, (1)); -
1620 -
1621 -
1622if (common->utf)
never evaluated: common->utf
0
1623 sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
never executed: sljit_emit_op1(compiler, (6), (1), (0), (5), (0));
0
1624 -
1625sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1626if (common->utf)
never evaluated: common->utf
0
1627 { -
1628 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)), (start)); -
1629 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00)); -
1630 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800)); -
1631 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
1632 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
1633 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
1634 }
never executed: }
0
1635 -
1636sljit_set_label(sljit_emit_jump(compiler, (22)), (start)); -
1637sljit_set_label((found), sljit_emit_label(compiler)); -
1638sljit_set_label((leave), sljit_emit_label(compiler)); -
1639 -
1640if (firstline)
never evaluated: firstline
0
1641 sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w))));
0
1642}
never executed: }
0
1643 -
1644static __inline struct sljit_jump *search_requested_char(compiler_common *common, pcre_uchar req_char, BOOL caseless, BOOL has_firstchar) -
1645{ -
1646struct sljit_compiler *compiler = common->compiler; -
1647struct sljit_label *loop; -
1648struct sljit_jump *toolong; -
1649struct sljit_jump *alreadyfound; -
1650struct sljit_jump *found; -
1651struct sljit_jump *foundoc = ((void *)0); -
1652struct sljit_jump *notfound; -
1653pcre_uchar oc, bit; -
1654 -
1655sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), ((6 * sizeof(sljit_w)))); -
1656sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (1000)); -
1657toolong = sljit_emit_cmp(compiler, (2), (1), (0), (7), (0)); -
1658alreadyfound = sljit_emit_cmp(compiler, (2), (6), (0), (3), (0)); -
1659 -
1660if (has_firstchar)
never evaluated: has_firstchar
0
1661 sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((1) << 1)));
never executed: sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((1) << 1)));
0
1662else -
1663 sljit_emit_op1(compiler, (6), (1), (0), (6), (0));
never executed: sljit_emit_op1(compiler, (6), (1), (0), (6), (0));
0
1664 -
1665loop = sljit_emit_label(compiler); -
1666notfound = sljit_emit_cmp(compiler, (3), (1), (0), (7), (0)); -
1667 -
1668sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (1))), (0)); -
1669oc = req_char; -
1670if (caseless)
never evaluated: caseless
0
1671 { -
1672 oc = (((req_char) <= 255u)? ((common->fcc)[req_char]):(req_char));
never evaluated: ((req_char) <= 255u)
0
1673 -
1674 if (req_char > 127 && common->utf)
never evaluated: req_char > 127
never evaluated: common->utf
0
1675 oc = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case);
never executed: oc = (req_char + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(req_char) / 128] * 128 + (req_char) % 128])->other_case);
0
1676 -
1677 }
never executed: }
0
1678if (req_char == oc)
never evaluated: req_char == oc
0
1679 found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char));
never executed: found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char));
0
1680else -
1681 { -
1682 bit = req_char ^ oc; -
1683 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
1684 { -
1685 sljit_emit_op2(compiler, (29), (3), (0), (3), (0), (0x200), (bit)); -
1686 found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char | bit)); -
1687 }
never executed: }
0
1688 else -
1689 { -
1690 found = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (req_char)); -
1691 foundoc = sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (oc)); -
1692 }
never executed: }
0
1693 } -
1694sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (((1) << 1))); -
1695sljit_set_label(sljit_emit_jump(compiler, (22)), (loop)); -
1696 -
1697sljit_set_label((found), sljit_emit_label(compiler)); -
1698if (foundoc)
never evaluated: foundoc
0
1699 sljit_set_label((foundoc), sljit_emit_label(compiler));
never executed: sljit_set_label((foundoc), sljit_emit_label(compiler));
0
1700sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((6 * sizeof(sljit_w))), (1), (0)); -
1701sljit_set_label((alreadyfound), sljit_emit_label(compiler)); -
1702sljit_set_label((toolong), sljit_emit_label(compiler)); -
1703return notfound;
never executed: return notfound;
0
1704} -
1705 -
1706static void do_revertframes(compiler_common *common) -
1707{ -
1708struct sljit_compiler *compiler = common->compiler; -
1709struct sljit_jump *jump; -
1710struct sljit_label *mainloop; -
1711 -
1712sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1713sljit_emit_op1(compiler, (6), (1), (0), (2), (0)); -
1714 -
1715 -
1716mainloop = sljit_emit_label(compiler); -
1717sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (0)); -
1718jump = sljit_emit_cmp(compiler, (9), (3), (0), (0x200), (frame_end)); -
1719sljit_emit_op2(compiler, (23), (3), (0), (3), (0), (11), (0)); -
1720sljit_emit_op1(compiler, (6), ((0x100 | (3))), (0), ((0x100 | (1))), (sizeof(sljit_w))); -
1721sljit_emit_op1(compiler, (6), ((0x100 | (3))), (sizeof(sljit_w)), ((0x100 | (1))), (2 * sizeof(sljit_w))); -
1722sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (3 * sizeof(sljit_w))); -
1723sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop)); -
1724 -
1725sljit_set_label((jump), sljit_emit_label(compiler)); -
1726jump = sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (frame_end)); -
1727 -
1728sljit_emit_fast_return(compiler, 4, 0); -
1729 -
1730sljit_set_label((jump), sljit_emit_label(compiler)); -
1731jump = sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (frame_setstrbegin)); -
1732 -
1733sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (sizeof(sljit_w))); -
1734sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (2 * sizeof(sljit_w))); -
1735sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (3), (0)); -
1736sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop)); -
1737 -
1738sljit_set_label((jump), sljit_emit_label(compiler)); -
1739 -
1740sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (2 * sizeof(sljit_w))); -
1741sljit_set_label(sljit_emit_jump(compiler, (22)), (mainloop)); -
1742}
never executed: }
0
1743 -
1744static void check_wordboundary(compiler_common *common) -
1745{ -
1746struct sljit_compiler *compiler = common->compiler; -
1747struct sljit_jump *beginend; -
1748 -
1749struct sljit_jump *jump; -
1750 -
1751 -
1752do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
executed: }
Execution Count:1
0-1
1753 -
1754sljit_emit_fast_enter(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)), 1, 5, 5, common->localsize); -
1755 -
1756sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
1757sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
1758sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (0)); -
1759beginend = sljit_emit_cmp(compiler, (5), (6), (0), (1), (0)); -
1760skip_char_back(common); -
1761read_char(common); -
1762 -
1763 -
1764 -
1765if (common->use_ucp)
partially evaluated: common->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1766 { -
1767 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (1)); -
1768 jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\137')); -
1769 add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23))); -
1770 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Ll)); -
1771 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_Lu - ucp_Ll)); -
1772 sljit_emit_cond_value(compiler, (6), (3), (0), (5)); -
1773 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Nd - ucp_Ll)); -
1774 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_No - ucp_Nd)); -
1775 sljit_emit_cond_value(compiler, (29), (3), (0), (5)); -
1776 sljit_set_label((jump), sljit_emit_label(compiler)); -
1777 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (3), (0)); -
1778 }
never executed: }
0
1779else -
1780 -
1781 { -
1782 -
1783 jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255)); -
1784 -
1785 -
1786 -
1787 -
1788 -
1789 -
1790 sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), (common->ctypes)); -
1791 sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (4)); -
1792 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (1)); -
1793 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (1), (0)); -
1794 -
1795 sljit_set_label((jump), sljit_emit_label(compiler)); -
1796 -
1797 -
1798 -
1799 -
1800 }
executed: }
Execution Count:1
1
1801sljit_set_label((beginend), sljit_emit_label(compiler)); -
1802 -
1803sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0)); -
1804beginend = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
1805peek_char(common); -
1806 -
1807 -
1808 -
1809if (common->use_ucp)
partially evaluated: common->use_ucp
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1810 { -
1811 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (1)); -
1812 jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\137')); -
1813 add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23))); -
1814 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Ll)); -
1815 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_Lu - ucp_Ll)); -
1816 sljit_emit_cond_value(compiler, (6), (3), (0), (5)); -
1817 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Nd - ucp_Ll)); -
1818 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (ucp_No - ucp_Nd)); -
1819 sljit_emit_cond_value(compiler, (29), (3), (0), (5)); -
1820 sljit_set_label((jump), sljit_emit_label(compiler)); -
1821 }
never executed: }
0
1822else -
1823 -
1824 { -
1825 -
1826 -
1827 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0)); -
1828 jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255)); -
1829 -
1830 -
1831 -
1832 -
1833 -
1834 -
1835 sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (common->ctypes)); -
1836 sljit_emit_op2(compiler, (32), (3), (0), (3), (0), (0x200), (4)); -
1837 sljit_emit_op2(compiler, (28), (3), (0), (3), (0), (0x200), (1)); -
1838 -
1839 sljit_set_label((jump), sljit_emit_label(compiler)); -
1840 -
1841 -
1842 -
1843 -
1844 }
executed: }
Execution Count:1
1
1845sljit_set_label((beginend), sljit_emit_label(compiler)); -
1846 -
1847sljit_emit_op2(compiler, (30 | 0x0200), (0), (0), (3), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w)))); -
1848sljit_emit_fast_return(compiler, (0x100 | (11)), (0 * sizeof(sljit_w))); -
1849}
executed: }
Execution Count:1
1
1850 -
1851static void check_anynewline(compiler_common *common) -
1852{ -
1853 -
1854struct sljit_compiler *compiler = common->compiler; -
1855 -
1856sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1857 -
1858sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x0a)); -
1859sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x0d - 0x0a)); -
1860sljit_emit_cond_value(compiler, (6), (3), (0), (5)); -
1861sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x85 - 0x0a)); -
1862 -
1863 -
1864 -
1865 -
1866 -
1867 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1868 sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (0x1)); -
1869 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x2029 - 0x0a)); -
1870 -
1871 -
1872 -
1873 -
1874sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1875sljit_emit_fast_return(compiler, 4, 0); -
1876}
never executed: }
0
1877 -
1878static void check_hspace(compiler_common *common) -
1879{ -
1880 -
1881struct sljit_compiler *compiler = common->compiler; -
1882 -
1883sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1884 -
1885sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x09)); -
1886sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
1887sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x20)); -
1888sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1889sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xa0)); -
1890 -
1891 -
1892 -
1893 -
1894 -
1895 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1896 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x1680)); -
1897 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1898 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x180e)); -
1899 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1900 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x2000)); -
1901 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x200A - 0x2000)); -
1902 sljit_emit_cond_value(compiler, (29), (3), (0), (5)); -
1903 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x202f - 0x2000)); -
1904 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1905 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x205f - 0x2000)); -
1906 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
1907 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x3000 - 0x2000)); -
1908 -
1909 -
1910 -
1911 -
1912sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1913 -
1914sljit_emit_fast_return(compiler, 4, 0); -
1915}
never executed: }
0
1916 -
1917static void check_vspace(compiler_common *common) -
1918{ -
1919 -
1920struct sljit_compiler *compiler = common->compiler; -
1921 -
1922sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1923 -
1924sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (0x0a)); -
1925sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (0x0d - 0x0a)); -
1926sljit_emit_cond_value(compiler, (6), (3), (0), (5)); -
1927sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x85 - 0x0a)); -
1928 -
1929 -
1930 -
1931 -
1932 -
1933 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1934 sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (0x1)); -
1935 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0x2029 - 0x0a)); -
1936 -
1937 -
1938 -
1939 -
1940sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
1941 -
1942sljit_emit_fast_return(compiler, 4, 0); -
1943}
never executed: }
0
1944 -
1945 -
1946 -
1947 -
1948static void do_casefulcmp(compiler_common *common) -
1949{ -
1950struct sljit_compiler *compiler = common->compiler; -
1951struct sljit_jump *jump; -
1952struct sljit_label *label; -
1953 -
1954sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1955sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0)); -
1956sljit_emit_op1(compiler, (6), (5), (0), (7), (0)); -
1957sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (2), (0)); -
1958sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (((1) << 1))); -
1959sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1960 -
1961label = sljit_emit_label(compiler); -
1962sljit_emit_op1(compiler, (16), (7), (0), ((0x100 | (1))), (((1) << 1))); -
1963sljit_emit_op1(compiler, (16), (2), (0), ((0x100 | (6))), (((1) << 1))); -
1964jump = sljit_emit_cmp(compiler, (1), (7), (0), (2), (0)); -
1965sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (((1) << 1))); -
1966sljit_set_label(sljit_emit_jump(compiler, (1)), (label)); -
1967 -
1968sljit_set_label((jump), sljit_emit_label(compiler)); -
1969sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1970sljit_emit_op1(compiler, (6), (7), (0), (5), (0)); -
1971sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w)))); -
1972sljit_emit_fast_return(compiler, 4, 0); -
1973}
never executed: }
0
1974 -
1975 -
1976 -
1977static void do_caselesscmp(compiler_common *common) -
1978{ -
1979struct sljit_compiler *compiler = common->compiler; -
1980struct sljit_jump *jump; -
1981struct sljit_label *label; -
1982 -
1983sljit_emit_fast_enter(compiler, 4, 0, 1, 5, 5, common->localsize); -
1984sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (3), (0)); -
1985 -
1986sljit_emit_op1(compiler, (6), (5), (0), (8), (0)); -
1987sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (7), (0)); -
1988sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (2), (0)); -
1989sljit_emit_op1(compiler, (6), (8), (0), (0x200), (common->lcc)); -
1990sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (((1) << 1))); -
1991sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((1) << 1))); -
1992 -
1993label = sljit_emit_label(compiler); -
1994sljit_emit_op1(compiler, (16), (7), (0), ((0x100 | (1))), (((1) << 1))); -
1995sljit_emit_op1(compiler, (16), (2), (0), ((0x100 | (6))), (((1) << 1))); -
1996 -
1997jump = sljit_emit_cmp(compiler, (4), (7), (0), (0x200), (255)); -
1998 -
1999sljit_emit_op1(compiler, (7), (7), (0), ((0x100 | (8) | ((7) << 4))), (0)); -
2000 -
2001sljit_set_label((jump), sljit_emit_label(compiler)); -
2002jump = sljit_emit_cmp(compiler, (4), (2), (0), (0x200), (255)); -
2003 -
2004sljit_emit_op1(compiler, (7), (2), (0), ((0x100 | (8) | ((2) << 4))), (0)); -
2005 -
2006sljit_set_label((jump), sljit_emit_label(compiler)); -
2007 -
2008jump = sljit_emit_cmp(compiler, (1), (7), (0), (2), (0)); -
2009sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (((1) << 1))); -
2010sljit_set_label(sljit_emit_jump(compiler, (1)), (label)); -
2011 -
2012sljit_set_label((jump), sljit_emit_label(compiler)); -
2013sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
2014sljit_emit_op1(compiler, (6), (8), (0), (5), (0)); -
2015sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w)))); -
2016sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w)))); -
2017sljit_emit_fast_return(compiler, 4, 0); -
2018}
never executed: }
0
2019 -
2020 -
2021 -
2022 -
2023 -
2024 -
2025 -
2026static const pcre_uchar * do_utf_caselesscmp(pcre_uchar *src1, jit_arguments *args, pcre_uchar *end1) -
2027{ -
2028 -
2029int c1, c2; -
2030const pcre_uchar *src2 = args->ptr; -
2031const pcre_uchar *end2 = args->end; -
2032 -
2033while (src1 < end1)
never evaluated: src1 < end1
0
2034 { -
2035 if (src2 >= end2)
never evaluated: src2 >= end2
0
2036 return 0;
never executed: return 0;
0
2037 c1 = *src1++; if ((c1 & 0xfc00) == 0xd800) { c1 = (((c1 & 0x3ff) << 10) | (*src1++ & 0x3ff)) + 0x10000; };;
never evaluated: (c1 & 0xfc00) == 0xd800
never executed: }
0
2038 c2 = *src2++; if ((c2 & 0xfc00) == 0xd800) { c2 = (((c2 & 0x3ff) << 10) | (*src2++ & 0x3ff)) + 0x10000; };;
never evaluated: (c2 & 0xfc00) == 0xd800
never executed: }
0
2039 if (c1 != c2 && c1 != (c2 + (_pcre16_ucd_records + _pcre16_ucd_stage2[_pcre16_ucd_stage1[(c2) / 128] * 128 + (c2) % 128])->other_case)) 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)
never executed: return 0;
0
2040 }
never executed: }
0
2041return src2;
never executed: return src2;
0
2042} -
2043 -
2044 -
2045 -
2046static pcre_uchar *byte_sequence_compare(compiler_common *common, BOOL caseless, pcre_uchar *cc, -
2047 compare_context* context, jump_list **fallbacks) -
2048{ -
2049struct sljit_compiler *compiler = common->compiler; -
2050unsigned int othercasebit = 0; -
2051pcre_uchar *othercasechar = ((void *)0); -
2052 -
2053int utflength; -
2054 -
2055 -
2056if (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
2057 { -
2058 othercasebit = char_get_othercase_bit(common, cc); -
2059 do { } while (0);
never evaluated: 0
never executed: }
0
2060 -
2061 -
2062 -
2063 -
2064 -
2065 -
2066 othercasechar = cc + (othercasebit >> 9); -
2067 if ((othercasebit & 0x100) != 0)
never evaluated: (othercasebit & 0x100) != 0
0
2068 othercasebit = (othercasebit & 0xff) << 8;
never executed: othercasebit = (othercasebit & 0xff) << 8;
0
2069 else -
2070 othercasebit &= 0xff;
never executed: othercasebit &= 0xff;
0
2071 -
2072 -
2073 } -
2074 -
2075if (context->sourcereg == -1)
partially evaluated: context->sourcereg == -1
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-9
2076 { -
2077 if (context->length >= 4)
partially evaluated: context->length >= 4
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2078 sljit_emit_op1(compiler, (12), (1), (0), ((0x100 | (6))), (-context->length));
never executed: sljit_emit_op1(compiler, (12), (1), (0), ((0x100 | (6))), (-context->length));
0
2079 else -
2080 -
2081 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (-context->length));
executed: sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (-context->length));
Execution Count:9
9
2082 -
2083 -
2084 context->sourcereg = 3; -
2085 }
executed: }
Execution Count:9
9
2086 -
2087 -
2088utflength = 1; -
2089if (common->utf && (((*cc) & 0xfc00) == 0xd800))
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
2090 utflength += 1;
never executed: utflength += 1;
0
2091 -
2092do -
2093 { -
2094 -
2095 -
2096 context->length -= ((1) << 1); -
2097 -
2098 -
2099 -
2100 if (othercasebit != 0 && othercasechar == cc)
partially evaluated: othercasebit != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
never evaluated: othercasechar == cc
0-9
2101 { -
2102 context->c.asuchars[context->ucharptr] = *cc | othercasebit; -
2103 context->oc.asuchars[context->ucharptr] = othercasebit; -
2104 }
never executed: }
0
2105 else -
2106 { -
2107 context->c.asuchars[context->ucharptr] = *cc; -
2108 context->oc.asuchars[context->ucharptr] = 0; -
2109 }
executed: }
Execution Count:9
9
2110 context->ucharptr++; -
2111 -
2112 -
2113 -
2114 -
2115 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
2116 -
2117 { -
2118 if (context->length >= 4)
partially evaluated: context->length >= 4
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2119 sljit_emit_op1(compiler, (12), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
never executed: sljit_emit_op1(compiler, (12), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
0
2120 -
2121 -
2122 -
2123 -
2124 -
2125 -
2126 else if (context->length >= 2)
partially evaluated: context->length >= 2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2127 sljit_emit_op1(compiler, (9), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
never executed: sljit_emit_op1(compiler, (9), (context->sourcereg), (0), ((0x100 | (6))), (-context->length));
0
2128 -
2129 context->sourcereg = context->sourcereg == 1 ? 3 : 1;
partially evaluated: context->sourcereg == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2130 -
2131 switch(context->ucharptr) -
2132 { -
2133 case 4 / sizeof(pcre_uchar): -
2134 if (context->oc.asint != 0)
never evaluated: context->oc.asint != 0
0
2135 sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asint));
never executed: sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asint));
0
2136 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (context->sourcereg), (0), (0x200), (context->c.asint | context->oc.asint))); -
2137 break;
never executed: break;
0
2138 -
2139 case 2 / sizeof(pcre_uchar): -
2140 if (context->oc.asushort != 0)
partially evaluated: context->oc.asushort != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2141 sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asushort));
never executed: sljit_emit_op2(compiler, (29), (context->sourcereg), (0), (context->sourcereg), (0), (0x200), (context->oc.asushort));
0
2142 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (context->sourcereg), (0), (0x200), (context->c.asushort | context->oc.asushort))); -
2143 break;
executed: break;
Execution Count:9
9
2144 default: -
2145 do { } while (0);
never evaluated: 0
never executed: }
0
2146 break;
never executed: break;
0
2147 } -
2148 context->ucharptr = 0; -
2149 }
executed: }
Execution Count:9
9
2150 cc++; -
2151 -
2152 utflength--; -
2153 }
executed: }
Execution Count:9
9
2154while (utflength > 0);
partially evaluated: utflength > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
0-9
2155 -
2156 -
2157return cc;
executed: return cc;
Execution Count:9
9
2158} -
2159static void compile_xclass_hotpath(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks) -
2160{ -
2161struct sljit_compiler *compiler = common->compiler; -
2162jump_list *found = ((void *)0); -
2163jump_list **list = (*cc & 0x01) == 0 ? &found : fallbacks;
partially evaluated: (*cc & 0x01) == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2164unsigned int c; -
2165int compares; -
2166struct sljit_jump *jump = ((void *)0); -
2167pcre_uchar *ccbegin; -
2168 -
2169BOOL needstype = 0, needsscript = 0, needschar = 0; -
2170BOOL charsaved = 0; -
2171int typereg = 1, scriptreg = 1; -
2172unsigned int typeoffset; -
2173 -
2174int invertcmp, numberofcmps; -
2175unsigned int charoffset; -
2176 -
2177 -
2178check_input_end(common, fallbacks); -
2179read_char(common); -
2180 -
2181if ((*cc++ & 0x02) != 0)
partially evaluated: (*cc++ & 0x02) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2182 { -
2183 sljit_emit_op1(compiler, (6), (5), (0), (1), (0)); -
2184 -
2185 jump = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255)); -
2186 -
2187 -
2188 -
2189 -
2190 -
2191 sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7)); -
2192 sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3)); -
2193 sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), ((sljit_w)cc)); -
2194 sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0)); -
2195 sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0)); -
2196 add_jump(compiler, list, sljit_emit_jump(compiler, (1))); -
2197 -
2198 -
2199 sljit_set_label((jump), sljit_emit_label(compiler)); -
2200 -
2201 -
2202 -
2203 -
2204 sljit_emit_op1(compiler, (6), (1), (0), (5), (0)); -
2205 -
2206 charsaved = 1; -
2207 -
2208 cc += 32 / sizeof(pcre_uchar); -
2209 }
never executed: }
0
2210 -
2211 -
2212ccbegin = cc; -
2213compares = 0; -
2214while (*cc != 0)
evaluated: *cc != 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
2215 { -
2216 compares++; -
2217 if (*cc == 1)
partially evaluated: *cc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2218 { -
2219 cc += 2; -
2220 -
2221 if (common->utf && (((cc[-1]) & 0xfc00) == 0xd800)) cc += 1;
never evaluated: common->utf
never evaluated: (((cc[-1]) & 0xfc00) == 0xd800)
never executed: cc += 1;
0
2222 -
2223 -
2224 needschar = 1; -
2225 -
2226 }
never executed: }
0
2227 else if (*cc == 2)
partially evaluated: *cc == 2
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2228 { -
2229 cc += 2; -
2230 -
2231 if (common->utf && (((cc[-1]) & 0xfc00) == 0xd800)) 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
never executed: cc += 1;
0-1
2232 -
2233 cc++; -
2234 -
2235 if (common->utf && (((cc[-1]) & 0xfc00) == 0xd800)) 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
never executed: cc += 1;
0-1
2236 -
2237 -
2238 needschar = 1; -
2239 -
2240 }
executed: }
Execution Count:1
1
2241 -
2242 else -
2243 { -
2244 do { } while (0);
never evaluated: 0
never executed: }
0
2245 cc++; -
2246 switch(*cc) -
2247 { -
2248 case 0: -
2249 break;
never executed: break;
0
2250 -
2251 case 1: -
2252 case 2: -
2253 case 3: -
2254 case 5: -
2255 needstype = 1; -
2256 break;
never executed: break;
0
2257 -
2258 case 4: -
2259 needsscript = 1; -
2260 break;
never executed: break;
0
2261 -
2262 case 6: -
2263 case 7: -
2264 case 8: -
2265 needstype = 1; -
2266 needschar = 1; -
2267 break;
never executed: break;
0
2268 -
2269 default: -
2270 do { } while (0);
never evaluated: 0
never executed: }
0
2271 break;
never executed: break;
0
2272 } -
2273 cc += 2; -
2274 }
never executed: }
0
2275 -
2276 } -
2277 -
2278 -
2279 -
2280if (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
2281 { -
2282 if (needschar && !charsaved)
never evaluated: needschar
never evaluated: !charsaved
0
2283 sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
never executed: sljit_emit_op1(compiler, (6), (5), (0), (1), (0));
0
2284 add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23))); -
2285 if (needschar)
never evaluated: needschar
0
2286 { -
2287 if (needstype)
never evaluated: needstype
0
2288 { -
2289 sljit_emit_op1(compiler, (6), (4), (0), (1), (0)); -
2290 typereg = 4; -
2291 }
never executed: }
0
2292 -
2293 if (needsscript)
never evaluated: needsscript
0
2294 scriptreg = 5;
never executed: scriptreg = 5;
0
2295 sljit_emit_op1(compiler, (6), (1), (0), (5), (0)); -
2296 }
never executed: }
0
2297 else if (needstype && needsscript)
never evaluated: needstype
never evaluated: needsscript
0
2298 scriptreg = 5;
never executed: scriptreg = 5;
0
2299 -
2300 -
2301 if (needsscript)
never evaluated: needsscript
0
2302 { -
2303 if (scriptreg == 1)
never evaluated: scriptreg == 1
0
2304 { -
2305 sljit_emit_op1(compiler, (6), (scriptreg), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->script) - 0x10))); -
2306 sljit_emit_op1(compiler, (7), (scriptreg), (0), ((0x100 | (scriptreg) | ((3) << 4))), (3)); -
2307 }
never executed: }
0
2308 else -
2309 { -
2310 sljit_emit_op2(compiler, (31), (3), (0), (3), (0), (0x200), (3)); -
2311 sljit_emit_op2(compiler, (23), (3), (0), (3), (0), (0x200), ((sljit_w)_pcre16_ucd_records + ((sljit_w)(&((ucd_record*)0x10)->script) - 0x10))); -
2312 sljit_emit_op1(compiler, (7), (scriptreg), (0), ((0x100 | (3))), (0)); -
2313 }
never executed: }
0
2314 } -
2315 }
never executed: }
0
2316 -
2317 -
2318 -
2319cc = ccbegin; -
2320charoffset = 0; -
2321numberofcmps = 0; -
2322 -
2323typeoffset = 0; -
2324 -
2325 -
2326while (*cc != 0)
evaluated: *cc != 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
2327 { -
2328 compares--; -
2329 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
2330 jump = ((void *)0); -
2331 -
2332 if (*cc == 1)
partially evaluated: *cc == 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2333 { -
2334 cc ++; -
2335 -
2336 if (common->utf)
never evaluated: common->utf
0
2337 { -
2338 c = *cc++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*cc++ & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2339 }
never executed: }
0
2340 else -
2341 -
2342 c = *cc++;
never executed: c = *cc++;
0
2343 -
2344 if (numberofcmps < 3 && (*cc == 1 || *cc == 2))
never evaluated: numberofcmps < 3
never evaluated: *cc == 1
never evaluated: *cc == 2
0
2345 { -
2346 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c - charoffset)); -
2347 sljit_emit_cond_value(compiler, (numberofcmps == 0 ? 6 : 29), (3), (0), (0)); -
2348 numberofcmps++; -
2349 }
never executed: }
0
2350 else if (numberofcmps > 0)
never evaluated: numberofcmps > 0
0
2351 { -
2352 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c - charoffset)); -
2353 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
2354 jump = sljit_emit_jump(compiler, (1 ^ invertcmp)); -
2355 numberofcmps = 0; -
2356 }
never executed: }
0
2357 else -
2358 { -
2359 jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (1), (0), (0x200), (c - charoffset)); -
2360 numberofcmps = 0; -
2361 }
never executed: }
0
2362 } -
2363 else if (*cc == 2)
partially evaluated: *cc == 2
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2364 { -
2365 cc ++; -
2366 -
2367 if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2368 { -
2369 c = *cc++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*cc++ & 0x3ff)) + 0x10000; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: }
0-1
2370 }
executed: }
Execution Count:1
1
2371 else -
2372 -
2373 c = *cc++;
never executed: c = *cc++;
0
2374 if ((c) != charoffset) { if ((c) > charoffset) sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), ((c) - charoffset)); else sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (charoffset - (c))); } charoffset = (c);;
partially evaluated: (c) != charoffset
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: (c) > charoffset
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)));
0-1
2375 -
2376 if (common->utf)
partially evaluated: common->utf
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2377 { -
2378 c = *cc++; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (*cc++ & 0x3ff)) + 0x10000; };;
partially evaluated: (c & 0xfc00) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: }
0-1
2379 }
executed: }
Execution Count:1
1
2380 else -
2381 -
2382 c = *cc++;
never executed: c = *cc++;
0
2383 if (numberofcmps < 3 && (*cc == 1 || *cc == 2))
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
2384 { -
2385 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (c - charoffset)); -
2386 sljit_emit_cond_value(compiler, (numberofcmps == 0 ? 6 : 29), (3), (0), (5)); -
2387 numberofcmps++; -
2388 }
never executed: }
0
2389 else if (numberofcmps > 0)
partially evaluated: numberofcmps > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2390 { -
2391 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (c - charoffset)); -
2392 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5)); -
2393 jump = sljit_emit_jump(compiler, (1 ^ invertcmp)); -
2394 numberofcmps = 0; -
2395 }
never executed: }
0
2396 else -
2397 { -
2398 jump = sljit_emit_cmp(compiler, (5 ^ invertcmp), (1), (0), (0x200), (c - charoffset)); -
2399 numberofcmps = 0; -
2400 }
executed: }
Execution Count:1
1
2401 } -
2402 -
2403 else -
2404 { -
2405 if (*cc == 4)
never evaluated: *cc == 4
0
2406 invertcmp ^= 0x1;
never executed: invertcmp ^= 0x1;
0
2407 cc++; -
2408 switch(*cc) -
2409 { -
2410 case 0: -
2411 if (list != fallbacks)
never evaluated: list != fallbacks
0
2412 { -
2413 if ((cc[-1] == 4 && compares > 0) || (cc[-1] == 3 && compares == 0))
never evaluated: cc[-1] == 4
never evaluated: compares > 0
never evaluated: cc[-1] == 3
never evaluated: compares == 0
0
2414 continue;
never executed: continue;
0
2415 }
never executed: }
0
2416 else if (cc[-1] == 4)
never evaluated: cc[-1] == 4
0
2417 continue;
never executed: continue;
0
2418 jump = sljit_emit_jump(compiler, (22)); -
2419 break;
never executed: break;
0
2420 -
2421 case 1: -
2422 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Lu - typeoffset)); -
2423 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
2424 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Ll - typeoffset)); -
2425 sljit_emit_cond_value(compiler, (29), (3), (0), (0)); -
2426 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (typereg), (0), (0x200), (ucp_Lt - typeoffset)); -
2427 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
2428 jump = sljit_emit_jump(compiler, (1 ^ invertcmp)); -
2429 break;
never executed: break;
0
2430 -
2431 case 2: -
2432 c = _pcre16_ucp_typerange[(int)cc[1] * 2]; -
2433 if ((c) != typeoffset) { if ((c) > typeoffset) sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((c) - typeoffset)); else sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (c))); } typeoffset = (c);;
never evaluated: (c) != typeoffset
never evaluated: (c) > typeoffset
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)));
0
2434 jump = sljit_emit_cmp(compiler, (5 ^ invertcmp), (typereg), (0), (0x200), (_pcre16_ucp_typerange[(int)cc[1] * 2 + 1] - c)); -
2435 break;
never executed: break;
0
2436 -
2437 case 3: -
2438 jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (typereg), (0), (0x200), ((int)cc[1] - typeoffset)); -
2439 break;
never executed: break;
0
2440 -
2441 case 4: -
2442 jump = sljit_emit_cmp(compiler, (0 ^ invertcmp), (scriptreg), (0), (0x200), ((int)cc[1])); -
2443 break;
never executed: break;
0
2444 -
2445 case 6: -
2446 case 7: -
2447 if (*cc == 6)
never evaluated: *cc == 6
0
2448 { -
2449 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (0)); -
2450 jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (11 - charoffset)); -
2451 }
never executed: }
0
2452 if ((9) != charoffset) { if ((9) > charoffset) sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), ((9) - charoffset)); else sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (charoffset - (9))); } charoffset = (9);;
never evaluated: (9) != charoffset
never evaluated: (9) > charoffset
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)));
0
2453 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (0x200), (13 - 9)); -
2454 sljit_emit_cond_value(compiler, (6), (3), (0), (5)); -
2455 if (*cc == 6)
never evaluated: *cc == 6
0
2456 sljit_set_label((jump), sljit_emit_label(compiler));
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
2457 -
2458 if ((ucp_Zl) != typeoffset) { if ((ucp_Zl) > typeoffset) sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Zl) - typeoffset)); else sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Zl))); } typeoffset = (ucp_Zl);;
never evaluated: (ucp_Zl) != typeoffset
never evaluated: (ucp_Zl) > typeoffset
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)));
0
2459 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_Zs - ucp_Zl)); -
2460 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5)); -
2461 jump = sljit_emit_jump(compiler, (1 ^ invertcmp)); -
2462 break;
never executed: break;
0
2463 -
2464 case 8: -
2465 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), ('\137' - charoffset)); -
2466 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
2467 -
2468 -
2469 case 5:
code before this statement never executed: case 5:
0
2470 if ((ucp_Ll) != typeoffset) { if ((ucp_Ll) > typeoffset) sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Ll) - typeoffset)); else sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Ll))); } typeoffset = (ucp_Ll);;
never evaluated: (ucp_Ll) != typeoffset
never evaluated: (ucp_Ll) > typeoffset
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)));
0
2471 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_Lu - ucp_Ll)); -
2472 sljit_emit_cond_value(compiler, ((*cc == 5) ? 6 : 29), (3), (0), (5)); -
2473 if ((ucp_Nd) != typeoffset) { if ((ucp_Nd) > typeoffset) sljit_emit_op2(compiler, (25), (typereg), (0), (typereg), (0), (0x200), ((ucp_Nd) - typeoffset)); else sljit_emit_op2(compiler, (23), (typereg), (0), (typereg), (0), (0x200), (typeoffset - (ucp_Nd))); } typeoffset = (ucp_Nd);;
never evaluated: (ucp_Nd) != typeoffset
never evaluated: (ucp_Nd) > typeoffset
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)));
0
2474 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (typereg), (0), (0x200), (ucp_No - ucp_Nd)); -
2475 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (5)); -
2476 jump = sljit_emit_jump(compiler, (1 ^ invertcmp)); -
2477 break;
never executed: break;
0
2478 } -
2479 cc += 2; -
2480 }
never executed: }
0
2481 -
2482 -
2483 if (jump != ((void *)0))
partially evaluated: jump != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2484 add_jump(compiler, compares > 0 ? list : fallbacks, jump);
executed: add_jump(compiler, compares > 0 ? list : fallbacks, jump);
Execution Count:1
1
2485 }
executed: }
Execution Count:1
1
2486 -
2487if (found != ((void *)0))
partially evaluated: found != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2488 set_jumps(found, sljit_emit_label(compiler));
never executed: set_jumps(found, sljit_emit_label(compiler));
0
2489}
executed: }
Execution Count:1
1
2490 -
2491 -
2492 -
2493 -
2494 -
2495 -
2496static pcre_uchar *compile_char1_hotpath(compiler_common *common, pcre_uchar type, pcre_uchar *cc, jump_list **fallbacks) -
2497{ -
2498struct sljit_compiler *compiler = common->compiler; -
2499int length; -
2500unsigned int c, oc, bit; -
2501compare_context context; -
2502struct sljit_jump *jump[4]; -
2503 -
2504struct sljit_label *label; -
2505 -
2506pcre_uchar propdata[5]; -
2507 -
2508 -
2509 -
2510switch(type) -
2511 { -
2512 case OP_SOD: -
2513 sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
2514 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
2515 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (1), (0))); -
2516 return cc;
never executed: return cc;
0
2517 -
2518 case OP_SOM: -
2519 sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
2520 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
2521 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (1), (0))); -
2522 return cc;
never executed: return cc;
0
2523 -
2524 case OP_NOT_WORD_BOUNDARY: -
2525 case OP_WORD_BOUNDARY: -
2526 add_jump(compiler, &common->wordboundary, sljit_emit_jump(compiler, (23))); -
2527 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_WORD_BOUNDARY ? 1 : 0))); -
2528 return cc;
executed: return cc;
Execution Count:1
1
2529 -
2530 case OP_NOT_DIGIT: -
2531 case OP_DIGIT: -
2532 check_input_end(common, fallbacks); -
2533 read_char8_type(common); -
2534 sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x04)); -
2535 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_DIGIT ? 0 : 1))); -
2536 return cc;
never executed: return cc;
0
2537 -
2538 case OP_NOT_WHITESPACE: -
2539 case OP_WHITESPACE: -
2540 check_input_end(common, fallbacks); -
2541 read_char8_type(common); -
2542 sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x01)); -
2543 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_WHITESPACE ? 0 : 1))); -
2544 return cc;
never executed: return cc;
0
2545 -
2546 case OP_NOT_WORDCHAR: -
2547 case OP_WORDCHAR: -
2548 check_input_end(common, fallbacks); -
2549 read_char8_type(common); -
2550 sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (0x200), (0x10)); -
2551 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_WORDCHAR ? 0 : 1))); -
2552 return cc;
never executed: return cc;
0
2553 -
2554 case OP_ANY: -
2555 check_input_end(common, fallbacks); -
2556 read_char(common); -
2557 if (common->nltype == 0 && 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
2558 { -
2559 jump[0] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff)); -
2560 jump[1] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
2561 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
2562 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (common->newline & 0xff))); -
2563 sljit_set_label((jump[1]), sljit_emit_label(compiler)); -
2564 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2565 }
executed: }
Execution Count:2
2
2566 else -
2567 check_newlinechar(common, common->nltype, fallbacks, 1);
executed: check_newlinechar(common, common->nltype, fallbacks, 1);
Execution Count:3
3
2568 return cc;
executed: return cc;
Execution Count:5
5
2569 -
2570 case OP_ALLANY: -
2571 check_input_end(common, fallbacks); -
2572 -
2573 if (common->utf)
never evaluated: common->utf
0
2574 { -
2575 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
2576 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
2577 -
2578 -
2579 -
2580 -
2581 -
2582 -
2583 jump[0] = sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (0xd800)); -
2584 sljit_emit_op2(compiler, (28), (1), (0), (1), (0), (0x200), (0xfc00)); -
2585 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (0xd800)); -
2586 sljit_emit_cond_value(compiler, (6), (1), (0), (0)); -
2587 sljit_emit_op2(compiler, (31), (1), (0), (1), (0), (0x200), (1)); -
2588 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (1), (0)); -
2589 -
2590 -
2591 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2592 return cc;
never executed: return cc;
0
2593 } -
2594 -
2595 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
2596 return cc;
never executed: return cc;
0
2597 -
2598 case OP_ANYBYTE: -
2599 check_input_end(common, fallbacks); -
2600 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
2601 return cc;
never executed: return cc;
0
2602 -
2603 -
2604 -
2605 case OP_NOTPROP: -
2606 case OP_PROP: -
2607 propdata[0] = 0; -
2608 propdata[1] = type == OP_NOTPROP ? 4 : 3;
never evaluated: type == OP_NOTPROP
0
2609 propdata[2] = cc[0]; -
2610 propdata[3] = cc[1]; -
2611 propdata[4] = 0; -
2612 compile_xclass_hotpath(common, propdata, fallbacks); -
2613 return cc + 2;
never executed: return cc + 2;
0
2614 -
2615 -
2616 -
2617 case OP_ANYNL: -
2618 check_input_end(common, fallbacks); -
2619 read_char(common); -
2620 jump[0] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\015')); -
2621 jump[1] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
2622 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (0)); -
2623 jump[2] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\012')); -
2624 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((1) << 1))); -
2625 jump[3] = sljit_emit_jump(compiler, (22)); -
2626 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2627 check_newlinechar(common, common->bsr_nltype, fallbacks, 0); -
2628 sljit_set_label((jump[1]), sljit_emit_label(compiler)); -
2629 sljit_set_label((jump[2]), sljit_emit_label(compiler)); -
2630 sljit_set_label((jump[3]), sljit_emit_label(compiler)); -
2631 return cc;
never executed: return cc;
0
2632 -
2633 case OP_NOT_HSPACE: -
2634 case OP_HSPACE: -
2635 check_input_end(common, fallbacks); -
2636 read_char(common); -
2637 add_jump(compiler, &common->hspace, sljit_emit_jump(compiler, (23))); -
2638 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_HSPACE ? 1 : 0))); -
2639 return cc;
never executed: return cc;
0
2640 -
2641 case OP_NOT_VSPACE: -
2642 case OP_VSPACE: -
2643 check_input_end(common, fallbacks); -
2644 read_char(common); -
2645 add_jump(compiler, &common->vspace, sljit_emit_jump(compiler, (23))); -
2646 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (type == OP_NOT_VSPACE ? 1 : 0))); -
2647 return cc;
never executed: return cc;
0
2648 -
2649 -
2650 case OP_EXTUNI: -
2651 check_input_end(common, fallbacks); -
2652 read_char(common); -
2653 add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23))); -
2654 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Mc)); -
2655 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (5), (1), (0), (0x200), (ucp_Mn - ucp_Mc))); -
2656 -
2657 label = sljit_emit_label(compiler); -
2658 jump[0] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
2659 sljit_emit_op1(compiler, (6), (5), (0), (6), (0)); -
2660 read_char(common); -
2661 add_jump(compiler, &common->getucd, sljit_emit_jump(compiler, (23))); -
2662 sljit_emit_op2(compiler, (25), (1), (0), (1), (0), (0x200), (ucp_Mc)); -
2663 sljit_set_label(sljit_emit_cmp(compiler, (5), (1), (0), (0x200), (ucp_Mn - ucp_Mc)), (label)); -
2664 -
2665 sljit_emit_op1(compiler, (6), (6), (0), (5), (0)); -
2666 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2667 return cc;
never executed: return cc;
0
2668 -
2669 -
2670 case OP_EODN: -
2671 jump[0] = sljit_emit_cmp(compiler, (3), (6), (0), (7), (0)); -
2672 if (common->nltype == 0 && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
2673 { -
2674 sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1))); -
2675 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1))); -
2676 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (7), (0))); -
2677 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1))); -
2678 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff))); -
2679 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff))); -
2680 }
never executed: }
0
2681 else if (common->nltype == 0)
never evaluated: common->nltype == 0
0
2682 { -
2683 sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((1) << 1))); -
2684 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1))); -
2685 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (7), (0))); -
2686 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (common->newline))); -
2687 }
never executed: }
0
2688 else -
2689 { -
2690 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1))); -
2691 jump[1] = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\015')); -
2692 sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1))); -
2693 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (3), (0), (7), (0)); -
2694 jump[2] = sljit_emit_jump(compiler, (4)); -
2695 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (2))); -
2696 -
2697 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((1) << 1))); -
2698 jump[3] = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), ('\012')); -
2699 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (22))); -
2700 -
2701 sljit_set_label((jump[1]), sljit_emit_label(compiler)); -
2702 if (common->nltype == 2)
never evaluated: common->nltype == 2
0
2703 { -
2704 sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((1) << 1))); -
2705 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (3), (0), (7), (0))); -
2706 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ('\012'))); -
2707 }
never executed: }
0
2708 else -
2709 { -
2710 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (6), (0)); -
2711 read_char(common); -
2712 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (7), (0))); -
2713 add_jump(compiler, &common->anynewline, sljit_emit_jump(compiler, (23))); -
2714 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0))); -
2715 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w)))); -
2716 }
never executed: }
0
2717 sljit_set_label((jump[2]), sljit_emit_label(compiler)); -
2718 sljit_set_label((jump[3]), sljit_emit_label(compiler)); -
2719 }
never executed: }
0
2720 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2721 return cc;
never executed: return cc;
0
2722 -
2723 case OP_EOD: -
2724 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (6), (0), (7), (0))); -
2725 return cc;
never executed: return cc;
0
2726 -
2727 case OP_CIRC: -
2728 sljit_emit_op1(compiler, (6), (3), (0), (9), (0)); -
2729 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
2730 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (1), (0))); -
2731 sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->notbol) - 0x10))); -
2732 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
2733 return cc;
never executed: return cc;
0
2734 -
2735 case OP_CIRCM: -
2736 sljit_emit_op1(compiler, (6), (3), (0), (9), (0)); -
2737 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
2738 jump[1] = sljit_emit_cmp(compiler, (4), (6), (0), (1), (0)); -
2739 sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->notbol) - 0x10))); -
2740 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
2741 jump[0] = sljit_emit_jump(compiler, (22)); -
2742 sljit_set_label((jump[1]), sljit_emit_label(compiler)); -
2743 -
2744 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (6), (0), (7), (0))); -
2745 if (common->nltype == 0 && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
2746 { -
2747 sljit_emit_op2(compiler, (25), (3), (0), (6), (0), (0x200), (((2) << 1))); -
2748 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (3), (0), (1), (0))); -
2749 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((-2) << 1))); -
2750 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((-1) << 1))); -
2751 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff))); -
2752 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff))); -
2753 }
never executed: }
0
2754 else -
2755 { -
2756 skip_char_back(common); -
2757 read_char(common); -
2758 check_newlinechar(common, common->nltype, fallbacks, 0); -
2759 }
never executed: }
0
2760 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2761 return cc;
never executed: return cc;
0
2762 -
2763 case OP_DOLL: -
2764 sljit_emit_op1(compiler, (6), (3), (0), (9), (0)); -
2765 sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->noteol) - 0x10))); -
2766 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
2767 -
2768 if (!common->endonly)
never evaluated: !common->endonly
0
2769 compile_char1_hotpath(common, OP_EODN, cc, fallbacks);
never executed: compile_char1_hotpath(common, OP_EODN, cc, fallbacks);
0
2770 else -
2771 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)));
0
2772 return cc;
never executed: return cc;
0
2773 -
2774 case OP_DOLLM: -
2775 jump[1] = sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)); -
2776 sljit_emit_op1(compiler, (6), (3), (0), (9), (0)); -
2777 sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (3))), (((sljit_w)(&((jit_arguments*)0x10)->noteol) - 0x10))); -
2778 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
2779 jump[0] = sljit_emit_jump(compiler, (22)); -
2780 sljit_set_label((jump[1]), sljit_emit_label(compiler)); -
2781 -
2782 if (common->nltype == 0 && common->newline > 255)
never evaluated: common->nltype == 0
never evaluated: common->newline > 255
0
2783 { -
2784 sljit_emit_op2(compiler, (23), (3), (0), (6), (0), (0x200), (((2) << 1))); -
2785 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (3), (0), (7), (0))); -
2786 sljit_emit_op1(compiler, (9), (1), (0), ((0x100 | (6))), (((0) << 1))); -
2787 sljit_emit_op1(compiler, (9), (3), (0), ((0x100 | (6))), (((1) << 1))); -
2788 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (1), (0), (0x200), ((common->newline >> 8) & 0xff))); -
2789 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (common->newline & 0xff))); -
2790 }
never executed: }
0
2791 else -
2792 { -
2793 peek_char(common); -
2794 check_newlinechar(common, common->nltype, fallbacks, 0); -
2795 }
never executed: }
0
2796 sljit_set_label((jump[0]), sljit_emit_label(compiler)); -
2797 return cc;
never executed: return cc;
0
2798 -
2799 case OP_CHAR: -
2800 case OP_CHARI: -
2801 length = 1; -
2802 -
2803 if (common->utf && (((*cc) & 0xfc00) == 0xd800)) 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
never executed: length += 1;
0-2
2804 -
2805 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
2806 { -
2807 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (((length) << 1))); -
2808 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0))); -
2809 -
2810 context.length = ((length) << 1); -
2811 context.sourcereg = -1; -
2812 -
2813 context.ucharptr = 0; -
2814 -
2815 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
2816 } -
2817 check_input_end(common, fallbacks); -
2818 read_char(common); -
2819 -
2820 if (common->utf)
never evaluated: common->utf
0
2821 { -
2822 c = *cc; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (cc[1] & 0x3ff)) + 0x10000; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2823 }
never executed: }
0
2824 else -
2825 -
2826 c = *cc;
never executed: c = *cc;
0
2827 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (c)); -
2828 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
2829 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), (0x200), (char_othercase(common, c))); -
2830 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
2831 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0))); -
2832 return cc + length;
never executed: return cc + length;
0
2833 -
2834 case OP_NOT: -
2835 case OP_NOTI: -
2836 check_input_end(common, fallbacks); -
2837 length = 1; -
2838 -
2839 if (common->utf)
never evaluated: common->utf
0
2840 { -
2841 { -
2842 c = *cc; if ((c & 0xfc00) == 0xd800) { c = (((c & 0x3ff) << 10) | (cc[1] & 0x3ff)) + 0x10000; length++; };;
never evaluated: (c & 0xfc00) == 0xd800
never executed: }
0
2843 read_char(common); -
2844 } -
2845 }
never executed: }
0
2846 else -
2847 -
2848 { -
2849 read_char(common); -
2850 c = *cc; -
2851 }
never executed: }
0
2852 -
2853 if (type == OP_NOT || !char_has_othercase(common, cc))
never evaluated: type == OP_NOT
never evaluated: !char_has_othercase(common, cc)
0
2854 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c)));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c)));
0
2855 else -
2856 { -
2857 oc = char_othercase(common, c); -
2858 bit = c ^ oc; -
2859 if (ispowerof2(bit))
never evaluated: ispowerof2(bit)
0
2860 { -
2861 sljit_emit_op2(compiler, (29), (1), (0), (1), (0), (0x200), (bit)); -
2862 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c | bit))); -
2863 }
never executed: }
0
2864 else -
2865 { -
2866 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (c))); -
2867 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (oc))); -
2868 }
never executed: }
0
2869 } -
2870 return cc + 1;
never executed: return cc + 1;
0
2871 -
2872 case OP_CLASS: -
2873 case OP_NCLASS: -
2874 check_input_end(common, fallbacks); -
2875 read_char(common); -
2876 -
2877 jump[0] = ((void *)0); -
2878 -
2879 -
2880 -
2881 -
2882 -
2883 { -
2884 jump[0] = sljit_emit_cmp(compiler, (4), (1), (0), (0x200), (255)); -
2885 if (type == OP_CLASS)
never evaluated: type == OP_CLASS
0
2886 { -
2887 add_jump(compiler, fallbacks, jump[0]); -
2888 jump[0] = ((void *)0); -
2889 }
never executed: }
0
2890 } -
2891 -
2892 sljit_emit_op2(compiler, (28), (3), (0), (1), (0), (0x200), (0x7)); -
2893 sljit_emit_op2(compiler, (32), (1), (0), (1), (0), (0x200), (3)); -
2894 sljit_emit_op1(compiler, (7), (1), (0), ((0x100 | (1))), ((sljit_w)cc)); -
2895 sljit_emit_op2(compiler, (31), (3), (0), (0x200), (1), (3), (0)); -
2896 sljit_emit_op2(compiler, (28 | 0x0200), (0), (0), (1), (0), (3), (0)); -
2897 add_jump(compiler, fallbacks, sljit_emit_jump(compiler, (0))); -
2898 -
2899 if (jump[0] != ((void *)0))
never evaluated: jump[0] != ((void *)0)
0
2900 sljit_set_label((jump[0]), sljit_emit_label(compiler));
never executed: sljit_set_label((jump[0]), sljit_emit_label(compiler));
0
2901 -
2902 return cc + 32 / sizeof(pcre_uchar);
never executed: return cc + 32 / sizeof(pcre_uchar);
0
2903 -
2904 -
2905 case OP_XCLASS: -
2906 compile_xclass_hotpath(common, cc + 1, fallbacks); -
2907 return cc + (cc[0]) - 1;
executed: return cc + (cc[0]) - 1;
Execution Count:1
1
2908 -
2909 -
2910 case OP_REVERSE: -
2911 length = (cc[0]); -
2912 do { } while (0);
never evaluated: 0
never executed: }
0
2913 sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
2914 -
2915 if (common->utf)
never evaluated: common->utf
0
2916 { -
2917 sljit_emit_op1(compiler, (6), (5), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
2918 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (length)); -
2919 label = sljit_emit_label(compiler); -
2920 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (5), (6), (0), (5), (0))); -
2921 skip_char_back(common); -
2922 sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), (3), (0), (0x200), (1)); -
2923 sljit_set_label(sljit_emit_jump(compiler, (1)), (label)); -
2924 return cc + 1;
never executed: return cc + 1;
0
2925 } -
2926 -
2927 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->begin) - 0x10))); -
2928 sljit_emit_op2(compiler, (25), (6), (0), (6), (0), (0x200), (((length) << 1))); -
2929 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (2), (6), (0), (1), (0))); -
2930 return cc + 1;
never executed: return cc + 1;
0
2931 } -
2932do { } while (0);
never evaluated: 0
never executed: }
0
2933return cc;
never executed: return cc;
0
2934} -
2935 -
2936static __inline pcre_uchar *compile_charn_hotpath(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, jump_list **fallbacks) -
2937{ -
2938 -
2939 -
2940struct sljit_compiler *compiler = common->compiler; -
2941pcre_uchar *ccbegin = cc; -
2942compare_context context; -
2943int size; -
2944 -
2945context.length = 0; -
2946do -
2947 { -
2948 if (cc >= ccend)
evaluated: cc >= ccend
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:7
7
2949 break;
executed: break;
Execution Count:7
7
2950 -
2951 if (*cc == OP_CHAR)
partially evaluated: *cc == OP_CHAR
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
2952 { -
2953 size = 1; -
2954 -
2955 if (common->utf && (((cc[1]) & 0xfc00) == 0xd800))
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
2956 size += 1;
never executed: size += 1;
0
2957 -
2958 }
executed: }
Execution Count:7
7
2959 else if (*cc == OP_CHARI)
never evaluated: *cc == OP_CHARI
0
2960 { -
2961 size = 1; -
2962 -
2963 if (common->utf)
never evaluated: common->utf
0
2964 { -
2965 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
2966 size = 0;
never executed: size = 0;
0
2967 else if ((((cc[1]) & 0xfc00) == 0xd800))
never evaluated: (((cc[1]) & 0xfc00) == 0xd800)
0
2968 size += 1;
never executed: size += 1;
0
2969 } -
2970 else -
2971 -
2972 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
2973 size = 0;
never executed: size = 0;
0
2974 } -
2975 else -
2976 size = 0;
never executed: size = 0;
0
2977 -
2978 cc += 1 + size; -
2979 context.length += ((size) << 1); -
2980 }
executed: }
Execution Count:7
7
2981while (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
2982 -
2983cc = ccbegin; -
2984if (context.length > 0)
partially evaluated: context.length > 0
TRUEFALSE
yes
Evaluation Count:7
no
Evaluation Count:0
0-7
2985 { -
2986 -
2987 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (0x200), (context.length)); -
2988 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0))); -
2989 -
2990 context.sourcereg = -1; -
2991 -
2992 context.ucharptr = 0; -
2993 -
2994 do cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, fallbacks); while (context.length > 0);
partially evaluated: context.length > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7
executed: cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, fallbacks);
Execution Count:7
0-7
2995 return cc;
executed: return cc;
Execution Count:7
7
2996 } -
2997 -
2998 -
2999return compile_char1_hotpath(common, *cc, cc + 1, fallbacks);
never executed: return compile_char1_hotpath(common, *cc, cc + 1, fallbacks);
0
3000} -
3001 -
3002static struct sljit_jump *compile_ref_checks(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks) -
3003{ -
3004struct sljit_compiler *compiler = common->compiler; -
3005int offset = cc[1] << 1; -
3006 -
3007sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
3008if (!common->jscript_compat)
never evaluated: !common->jscript_compat
0
3009 { -
3010 if (fallbacks == ((void *)0))
never evaluated: fallbacks == ((void *)0)
0
3011 { -
3012 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))); -
3013 sljit_emit_cond_value(compiler, (6), (3), (0), (0)); -
3014 sljit_emit_op2(compiler, (25 | 0x0200), (0), (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w)))); -
3015 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (0)); -
3016 return sljit_emit_jump(compiler, (1));
never executed: return sljit_emit_jump(compiler, (1));
0
3017 } -
3018 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w))))); -
3019 }
never executed: }
0
3020return sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
never executed: return sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))));
0
3021} -
3022 -
3023 -
3024static void compile_hotpath(compiler_common *, pcre_uchar *, pcre_uchar *, fallback_common *); -
3025static void compile_fallbackpath(compiler_common *, struct fallback_common *); -
3026static pcre_uchar *compile_ref_hotpath(compiler_common *common, pcre_uchar *cc, jump_list **fallbacks, BOOL withchecks, BOOL emptyfail) -
3027{ -
3028struct sljit_compiler *compiler = common->compiler; -
3029int offset = cc[1] << 1; -
3030struct sljit_jump *jump = ((void *)0); -
3031 -
3032sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
3033if (withchecks && !common->jscript_compat)
never evaluated: withchecks
never evaluated: !common->jscript_compat
0
3034 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))));
never executed: add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))));
0
3035 -
3036 -
3037if (common->utf && *cc == OP_REFI)
never evaluated: common->utf
never evaluated: *cc == OP_REFI
0
3038 { -
3039 do { } while (0);
never evaluated: 0
never executed: }
0
3040 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w)))); -
3041 if (withchecks)
never evaluated: withchecks
0
3042 jump = sljit_emit_cmp(compiler, (0), (1), (0), (3), (0));
never executed: jump = sljit_emit_cmp(compiler, (0), (1), (0), (3), (0));
0
3043 -
3044 -
3045 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (2), (0)); -
3046 sljit_emit_op1(compiler, (6), (2), (0), (9), (0)); -
3047 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((sljit_w)(&((jit_arguments*)0x10)->ptr) - 0x10)), (6), (0)); -
3048 sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_utf_caselesscmp)); -
3049 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((0 * sizeof(sljit_w)))); -
3050 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0))); -
3051 sljit_emit_op1(compiler, (6), (6), (0), (1), (0)); -
3052 }
never executed: }
0
3053else -
3054 -
3055 { -
3056 sljit_emit_op2(compiler, (25 | 0x0200), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (1), (0)); -
3057 if (withchecks)
never evaluated: withchecks
0
3058 jump = sljit_emit_jump(compiler, (0));
never executed: jump = sljit_emit_jump(compiler, (0));
0
3059 sljit_emit_op2(compiler, (23), (6), (0), (6), (0), (3), (0)); -
3060 -
3061 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (4), (6), (0), (7), (0))); -
3062 add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, sljit_emit_jump(compiler, (23))); -
3063 add_jump(compiler, fallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
3064 }
never executed: }
0
3065 -
3066if (jump != ((void *)0))
never evaluated: jump != ((void *)0)
0
3067 { -
3068 if (emptyfail)
never evaluated: emptyfail
0
3069 add_jump(compiler, fallbacks, jump);
never executed: add_jump(compiler, fallbacks, jump);
0
3070 else -
3071 sljit_set_label((jump), sljit_emit_label(compiler));
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
3072 } -
3073return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
3074} -
3075 -
3076static __inline pcre_uchar *compile_ref_iterator_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
3077{ -
3078struct sljit_compiler *compiler = common->compiler; -
3079fallback_common *fallback; -
3080pcre_uchar type; -
3081struct sljit_label *label; -
3082struct sljit_jump *zerolength; -
3083struct sljit_jump *jump = ((void *)0); -
3084pcre_uchar *ccbegin = cc; -
3085int min = 0, max = 0; -
3086BOOL minimize; -
3087 -
3088do { fallback = sljit_alloc_memory(compiler, (sizeof(iterator_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(iterator_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
3089 -
3090type = cc[1 + 1]; -
3091minimize = (type & 0x1) != 0; -
3092switch(type) -
3093 { -
3094 case OP_CRSTAR: -
3095 case OP_CRMINSTAR: -
3096 min = 0; -
3097 max = 0; -
3098 cc += 1 + 1 + 1; -
3099 break;
never executed: break;
0
3100 case OP_CRPLUS: -
3101 case OP_CRMINPLUS: -
3102 min = 1; -
3103 max = 0; -
3104 cc += 1 + 1 + 1; -
3105 break;
never executed: break;
0
3106 case OP_CRQUERY: -
3107 case OP_CRMINQUERY: -
3108 min = 0; -
3109 max = 1; -
3110 cc += 1 + 1 + 1; -
3111 break;
never executed: break;
0
3112 case OP_CRRANGE: -
3113 case OP_CRMINRANGE: -
3114 min = cc[1 + 1 + 1]; -
3115 max = cc[1 + 1 + 1 + 1]; -
3116 cc += 1 + 1 + 1 + 2 * 1; -
3117 break;
never executed: break;
0
3118 default: -
3119 do { } while (0);
never evaluated: 0
never executed: }
0
3120 break;
never executed: break;
0
3121 } -
3122 -
3123if (!minimize)
never evaluated: !minimize
0
3124 { -
3125 if (min == 0)
never evaluated: min == 0
0
3126 { -
3127 allocate_stack(common, 2); -
3128 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3129 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3130 -
3131 sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
3132 zerolength = compile_ref_checks(common, ccbegin, ((void *)0)); -
3133 -
3134 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
3135 }
never executed: }
0
3136 else -
3137 { -
3138 allocate_stack(common, 1); -
3139 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3140 zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks); -
3141 }
never executed: }
0
3142 -
3143 if (min > 1 || max > 1)
never evaluated: min > 1
never evaluated: max > 1
0
3144 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
0
3145 -
3146 label = sljit_emit_label(compiler); -
3147 compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, 0, 0); -
3148 -
3149 if (min > 1 || max > 1)
never evaluated: min > 1
never evaluated: max > 1
0
3150 { -
3151 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w)))); -
3152 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
3153 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0)); -
3154 if (min > 1)
never evaluated: min > 1
0
3155 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (min)), (label));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (min)), (label));
0
3156 if (max > 1)
never evaluated: max > 1
0
3157 { -
3158 jump = sljit_emit_cmp(compiler, (3), (1), (0), (0x200), (max)); -
3159 allocate_stack(common, 1); -
3160 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3161 sljit_set_label(sljit_emit_jump(compiler, (22)), (label)); -
3162 sljit_set_label((jump), sljit_emit_label(compiler)); -
3163 }
never executed: }
0
3164 }
never executed: }
0
3165 -
3166 if (max == 0)
never evaluated: max == 0
0
3167 { -
3168 -
3169 allocate_stack(common, 1); -
3170 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3171 sljit_set_label(sljit_emit_jump(compiler, (22)), (label)); -
3172 }
never executed: }
0
3173 -
3174 sljit_set_label((zerolength), sljit_emit_label(compiler)); -
3175 ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
3176 -
3177 decrease_call_count(common); -
3178 return cc;
never executed: return cc;
0
3179 } -
3180 -
3181allocate_stack(common, 2); -
3182sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3183if (type != OP_CRMINSTAR)
never evaluated: type != OP_CRMINSTAR
0
3184 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
3185 -
3186if (min == 0)
never evaluated: min == 0
0
3187 { -
3188 zerolength = compile_ref_checks(common, ccbegin, ((void *)0)); -
3189 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3190 jump = sljit_emit_jump(compiler, (22)); -
3191 }
never executed: }
0
3192else -
3193 zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
never executed: zerolength = compile_ref_checks(common, ccbegin, &fallback->topfallbacks);
0
3194 -
3195((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
3196if (max > 0)
never evaluated: max > 0
0
3197 add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (3), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (max)));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (3), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (max)));
0
3198 -
3199compile_ref_hotpath(common, ccbegin, &fallback->topfallbacks, 1, 1); -
3200sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3201 -
3202if (min > 1)
never evaluated: min > 1
0
3203 { -
3204 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
3205 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
3206 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3207 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (min)), (((iterator_fallback*)fallback)->hotpath)); -
3208 }
never executed: }
0
3209else if (max > 0)
never evaluated: max > 0
0
3210 sljit_emit_op2(compiler, (23), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (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
3211 -
3212if (jump != ((void *)0))
never evaluated: jump != ((void *)0)
0
3213 sljit_set_label((jump), sljit_emit_label(compiler));
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
3214sljit_set_label((zerolength), sljit_emit_label(compiler)); -
3215 -
3216decrease_call_count(common); -
3217return cc;
never executed: return cc;
0
3218} -
3219 -
3220static __inline pcre_uchar *compile_recurse_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
3221{ -
3222struct sljit_compiler *compiler = common->compiler; -
3223fallback_common *fallback; -
3224recurse_entry *entry = common->entries; -
3225recurse_entry *prev = ((void *)0); -
3226int start = (cc[1]); -
3227 -
3228do { fallback = sljit_alloc_memory(compiler, (sizeof(recurse_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(recurse_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
3229while (entry != ((void *)0))
never evaluated: entry != ((void *)0)
0
3230 { -
3231 if (entry->start == start)
never evaluated: entry->start == start
0
3232 break;
never executed: break;
0
3233 prev = entry; -
3234 entry = entry->next; -
3235 }
never executed: }
0
3236 -
3237if (entry == ((void *)0))
never evaluated: entry == ((void *)0)
0
3238 { -
3239 entry = sljit_alloc_memory(compiler, sizeof(recurse_entry)); -
3240 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3241 return ((void *)0);
never executed: return ((void *)0);
0
3242 entry->next = ((void *)0); -
3243 entry->entry = ((void *)0); -
3244 entry->calls = ((void *)0); -
3245 entry->start = start; -
3246 -
3247 if (prev != ((void *)0))
never evaluated: prev != ((void *)0)
0
3248 prev->next = entry;
never executed: prev->next = entry;
0
3249 else -
3250 common->entries = entry;
never executed: common->entries = entry;
0
3251 } -
3252 -
3253sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
3254allocate_stack(common, 1); -
3255sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
3256 -
3257if (entry->entry == ((void *)0))
never evaluated: entry->entry == ((void *)0)
0
3258 add_jump(compiler, &entry->calls, sljit_emit_jump(compiler, (23)));
never executed: add_jump(compiler, &entry->calls, sljit_emit_jump(compiler, (23)));
0
3259else -
3260 sljit_set_label(sljit_emit_jump(compiler, (23)), (entry->entry));
never executed: sljit_set_label(sljit_emit_jump(compiler, (23)), (entry->entry));
0
3261 -
3262add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0))); -
3263return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
3264} -
3265 -
3266static pcre_uchar *compile_assert_hotpath(compiler_common *common, pcre_uchar *cc, assert_fallback *fallback, BOOL conditional) -
3267{ -
3268struct sljit_compiler *compiler = common->compiler; -
3269int framesize; -
3270int localptr; -
3271fallback_common altfallback; -
3272pcre_uchar *ccbegin; -
3273pcre_uchar opcode; -
3274pcre_uchar bra = OP_BRA; -
3275jump_list *tmp = ((void *)0); -
3276jump_list **target = (conditional) ? &fallback->condfailed : &fallback->common.topfallbacks;
never evaluated: (conditional)
0
3277jump_list **found; -
3278 -
3279struct sljit_label *save_acceptlabel = common->acceptlabel; -
3280struct sljit_jump *jump; -
3281struct sljit_jump *brajump = ((void *)0); -
3282jump_list *save_accept = common->accept; -
3283 -
3284if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO)
never evaluated: *cc == OP_BRAZERO
never evaluated: *cc == OP_BRAMINZERO
0
3285 { -
3286 do { } while (0);
never evaluated: 0
never executed: }
0
3287 bra = *cc; -
3288 cc++; -
3289 }
never executed: }
0
3290localptr = (common->localptrs[(cc) - common->start]); -
3291do { } while (0);
never evaluated: 0
never executed: }
0
3292framesize = get_framesize(common, cc, 0); -
3293fallback->framesize = framesize; -
3294fallback->localptr = localptr; -
3295opcode = *cc; -
3296do { } while (0);
never evaluated: 0
never executed: }
0
3297found = (opcode == OP_ASSERT || opcode == OP_ASSERTBACK) ? &tmp : target;
never evaluated: opcode == OP_ASSERT
never evaluated: opcode == OP_ASSERTBACK
0
3298ccbegin = cc; -
3299cc += (cc[1]); -
3300 -
3301if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3302 { -
3303 -
3304 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3305 free_stack(common, 1); -
3306 brajump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0)); -
3307 }
never executed: }
0
3308 -
3309if (framesize < 0)
never evaluated: framesize < 0
0
3310 { -
3311 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0)); -
3312 allocate_stack(common, 1); -
3313 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3314 }
never executed: }
0
3315else -
3316 { -
3317 allocate_stack(common, framesize + 2); -
3318 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
3319 sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(framesize + 1) - 1) * (int)sizeof(sljit_w)))); -
3320 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0)); -
3321 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3322 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3323 init_frame(common, ccbegin, framesize + 1, 2, 0); -
3324 }
never executed: }
0
3325 -
3326memset(&altfallback, 0, sizeof(fallback_common)); -
3327while (1)
never evaluated: 1
0
3328 { -
3329 common->acceptlabel = ((void *)0); -
3330 common->accept = ((void *)0); -
3331 altfallback.top = ((void *)0); -
3332 altfallback.topfallbacks = ((void *)0); -
3333 -
3334 if (*ccbegin == OP_ALT)
never evaluated: *ccbegin == OP_ALT
0
3335 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
3336 -
3337 altfallback.cc = ccbegin; -
3338 compile_hotpath(common, ccbegin + 1 + 1, cc, &altfallback); -
3339 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3340 { -
3341 common->acceptlabel = save_acceptlabel; -
3342 common->accept = save_accept; -
3343 return ((void *)0);
never executed: return ((void *)0);
0
3344 } -
3345 common->acceptlabel = sljit_emit_label(compiler); -
3346 if (common->accept != ((void *)0))
never evaluated: common->accept != ((void *)0)
0
3347 set_jumps(common->accept, common->acceptlabel);
never executed: set_jumps(common->accept, common->acceptlabel);
0
3348 -
3349 -
3350 if (framesize < 0)
never evaluated: framesize < 0
0
3351 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
never executed: sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr));
0
3352 else { -
3353 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
3354 { -
3355 -
3356 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 1) * sizeof(sljit_w))); -
3357 }
never executed: }
0
3358 else -
3359 { -
3360 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
3361 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
3362 }
never executed: }
0
3363 } -
3364 -
3365 if (opcode == OP_ASSERT_NOT || opcode == OP_ASSERTBACK_NOT)
never evaluated: opcode == OP_ASSERT_NOT
never evaluated: opcode == OP_ASSERTBACK_NOT
0
3366 { -
3367 -
3368 if (conditional)
never evaluated: conditional
0
3369 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
0
3370 else if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3371 { -
3372 if (framesize < 0)
never evaluated: framesize < 0
0
3373 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0));
0
3374 else -
3375 { -
3376 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (framesize * sizeof(sljit_w))); -
3377 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), ((framesize + 1) * sizeof(sljit_w))); -
3378 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0)); -
3379 }
never executed: }
0
3380 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
3381 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3382 }
never executed: }
0
3383 else if (framesize >= 0)
never evaluated: framesize >= 0
0
3384 { -
3385 -
3386 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (framesize * sizeof(sljit_w))); -
3387 }
never executed: }
0
3388 } -
3389 add_jump(compiler, found, sljit_emit_jump(compiler, (22))); -
3390 -
3391 compile_fallbackpath(common, altfallback.top); -
3392 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3393 { -
3394 common->acceptlabel = save_acceptlabel; -
3395 common->accept = save_accept; -
3396 return ((void *)0);
never executed: return ((void *)0);
0
3397 } -
3398 set_jumps(altfallback.topfallbacks, sljit_emit_label(compiler)); -
3399 -
3400 if (*cc != OP_ALT)
never evaluated: *cc != OP_ALT
0
3401 break;
never executed: break;
0
3402 -
3403 ccbegin = cc; -
3404 cc += (cc[1]); -
3405 }
never executed: }
0
3406 -
3407 -
3408if (opcode == OP_ASSERT || opcode == OP_ASSERTBACK)
never evaluated: opcode == OP_ASSERT
never evaluated: opcode == OP_ASSERTBACK
0
3409 { -
3410 -
3411 if (conditional || bra == OP_BRAZERO)
never evaluated: conditional
never evaluated: bra == OP_BRAZERO
0
3412 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
3413 -
3414 if (framesize < 0)
never evaluated: framesize < 0
0
3415 { -
3416 -
3417 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3418 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
3419 else -
3420 free_stack(common, 1);
never executed: free_stack(common, 1);
0
3421 } -
3422 else -
3423 { -
3424 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
3425 -
3426 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3427 { -
3428 free_stack(common, framesize + 1); -
3429 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3430 }
never executed: }
0
3431 else -
3432 free_stack(common, framesize + 2);
never executed: free_stack(common, framesize + 2);
0
3433 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0)); -
3434 }
never executed: }
0
3435 jump = sljit_emit_jump(compiler, (22)); -
3436 if (bra != OP_BRAZERO)
never evaluated: bra != OP_BRAZERO
0
3437 add_jump(compiler, target, jump);
never executed: add_jump(compiler, target, jump);
0
3438 -
3439 -
3440 set_jumps(tmp, sljit_emit_label(compiler)); -
3441 if (framesize < 0)
never evaluated: framesize < 0
0
3442 { -
3443 -
3444 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0)); -
3445 -
3446 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3447 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
never executed: sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w)));
0
3448 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3449 { -
3450 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
3451 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3452 }
never executed: }
0
3453 } -
3454 else -
3455 { -
3456 if (bra == OP_BRA)
never evaluated: bra == OP_BRA
0
3457 { -
3458 -
3459 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 1) * sizeof(sljit_w))); -
3460 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (0)); -
3461 }
never executed: }
0
3462 else -
3463 { -
3464 -
3465 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((framesize + 2) * sizeof(sljit_w))); -
3466 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3467 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (bra == OP_BRAZERO ? 6 : 0x200), (0)); -
3468 }
never executed: }
0
3469 } -
3470 -
3471 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3472 { -
3473 fallback->hotpath = sljit_emit_label(compiler); -
3474 sljit_set_label(jump, fallback->hotpath); -
3475 }
never executed: }
0
3476 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3477 { -
3478 sljit_set_label(sljit_emit_jump(compiler, (22)), (fallback->hotpath)); -
3479 sljit_set_label((brajump), sljit_emit_label(compiler)); -
3480 if (framesize >= 0)
never evaluated: framesize >= 0
0
3481 { -
3482 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
3483 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
3484 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (framesize * sizeof(sljit_w))); -
3485 }
never executed: }
0
3486 set_jumps(fallback->common.topfallbacks, sljit_emit_label(compiler)); -
3487 }
never executed: }
0
3488 } -
3489else -
3490 { -
3491 -
3492 if (framesize < 0)
never evaluated: framesize < 0
0
3493 { -
3494 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3495 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
3496 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
3497 else -
3498 free_stack(common, 1);
never executed: free_stack(common, 1);
0
3499 } -
3500 else -
3501 { -
3502 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3503 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
3504 -
3505 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
3506 { -
3507 free_stack(common, framesize + 1); -
3508 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3509 }
never executed: }
0
3510 else -
3511 free_stack(common, framesize + 2);
never executed: free_stack(common, framesize + 2);
0
3512 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0)); -
3513 }
never executed: }
0
3514 -
3515 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
3516 fallback->hotpath = sljit_emit_label(compiler);
never executed: fallback->hotpath = sljit_emit_label(compiler);
0
3517 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
3518 { -
3519 sljit_set_label(sljit_emit_jump(compiler, (22)), (fallback->hotpath)); -
3520 sljit_set_label((brajump), sljit_emit_label(compiler)); -
3521 }
never executed: }
0
3522 -
3523 if (bra != OP_BRA)
never evaluated: bra != OP_BRA
0
3524 { -
3525 do { } while (0);
never evaluated: 0
never executed: }
0
3526 set_jumps(fallback->common.topfallbacks, sljit_emit_label(compiler)); -
3527 fallback->common.topfallbacks = ((void *)0); -
3528 }
never executed: }
0
3529 }
never executed: }
0
3530 -
3531common->acceptlabel = save_acceptlabel; -
3532common->accept = save_accept; -
3533return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
3534} -
3535 -
3536static sljit_w do_searchovector(sljit_w refno, sljit_w* locals, pcre_uchar *name_table) -
3537{ -
3538int condition = 0; -
3539pcre_uchar *slotA = name_table; -
3540pcre_uchar *slotB; -
3541sljit_w name_count = locals[(0 * sizeof(sljit_w)) / sizeof(sljit_w)]; -
3542sljit_w name_entry_size = locals[(1 * sizeof(sljit_w)) / sizeof(sljit_w)]; -
3543sljit_w no_capture; -
3544int i; -
3545 -
3546locals += (8 * sizeof(sljit_w)) / sizeof(sljit_w); -
3547no_capture = locals[1]; -
3548 -
3549for (i = 0; i < name_count; i++)
never evaluated: i < name_count
0
3550 { -
3551 if (slotA[0] == refno) break;
never evaluated: slotA[0] == refno
never executed: break;
0
3552 slotA += name_entry_size; -
3553 }
never executed: }
0
3554 -
3555if (i < name_count)
never evaluated: i < name_count
0
3556 { -
3557 -
3558 -
3559 -
3560 -
3561 slotB = slotA; -
3562 while (slotB > name_table)
never evaluated: slotB > name_table
0
3563 { -
3564 slotB -= name_entry_size; -
3565 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
3566 { -
3567 condition = locals[slotB[0] << 1] != no_capture; -
3568 if (condition) break;
never evaluated: condition
never executed: break;
0
3569 }
never executed: }
0
3570 else break;
never executed: break;
0
3571 } -
3572 -
3573 -
3574 if (!condition)
never evaluated: !condition
0
3575 { -
3576 slotB = slotA; -
3577 for (i++; i < name_count; i++)
never evaluated: i < name_count
0
3578 { -
3579 slotB += name_entry_size; -
3580 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
3581 { -
3582 condition = locals[slotB[0] << 1] != no_capture; -
3583 if (condition) break;
never evaluated: condition
never executed: break;
0
3584 }
never executed: }
0
3585 else break;
never executed: break;
0
3586 } -
3587 }
never executed: }
0
3588 }
never executed: }
0
3589return condition;
never executed: return condition;
0
3590} -
3591 -
3592static sljit_w do_searchgroups(sljit_w recno, sljit_w* locals, pcre_uchar *name_table) -
3593{ -
3594int condition = 0; -
3595pcre_uchar *slotA = name_table; -
3596pcre_uchar *slotB; -
3597sljit_w name_count = locals[(0 * sizeof(sljit_w)) / sizeof(sljit_w)]; -
3598sljit_w name_entry_size = locals[(1 * sizeof(sljit_w)) / sizeof(sljit_w)]; -
3599sljit_w group_num = locals[(2 * sizeof(sljit_w)) / sizeof(sljit_w)]; -
3600int i; -
3601 -
3602for (i = 0; i < name_count; i++)
never evaluated: i < name_count
0
3603 { -
3604 if (slotA[0] == recno) break;
never evaluated: slotA[0] == recno
never executed: break;
0
3605 slotA += name_entry_size; -
3606 }
never executed: }
0
3607 -
3608if (i < name_count)
never evaluated: i < name_count
0
3609 { -
3610 -
3611 -
3612 -
3613 -
3614 slotB = slotA; -
3615 while (slotB > name_table)
never evaluated: slotB > name_table
0
3616 { -
3617 slotB -= name_entry_size; -
3618 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
3619 { -
3620 condition = slotB[0] == group_num; -
3621 if (condition) break;
never evaluated: condition
never executed: break;
0
3622 }
never executed: }
0
3623 else break;
never executed: break;
0
3624 } -
3625 -
3626 -
3627 if (!condition)
never evaluated: !condition
0
3628 { -
3629 slotB = slotA; -
3630 for (i++; i < name_count; i++)
never evaluated: i < name_count
0
3631 { -
3632 slotB += name_entry_size; -
3633 if (_pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0)
never evaluated: _pcre16_strcmp_uc_uc((slotA + 1), (slotB + 1)) == 0
0
3634 { -
3635 condition = slotB[0] == group_num; -
3636 if (condition) break;
never evaluated: condition
never executed: break;
0
3637 }
never executed: }
0
3638 else break;
never executed: break;
0
3639 } -
3640 }
never executed: }
0
3641 }
never executed: }
0
3642return condition;
never executed: return condition;
0
3643} -
3644static pcre_uchar *compile_bracket_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
3645{ -
3646struct sljit_compiler *compiler = common->compiler; -
3647fallback_common *fallback; -
3648pcre_uchar opcode; -
3649int localptr = 0; -
3650int offset = 0; -
3651int stacksize; -
3652pcre_uchar *ccbegin; -
3653pcre_uchar *hotpath; -
3654pcre_uchar bra = OP_BRA; -
3655pcre_uchar ket; -
3656assert_fallback *assert; -
3657BOOL has_alternatives; -
3658struct sljit_jump *jump; -
3659struct sljit_jump *skip; -
3660struct sljit_label *rmaxlabel = ((void *)0); -
3661struct sljit_jump *braminzerojump = ((void *)0); -
3662 -
3663do { fallback = sljit_alloc_memory(compiler, (sizeof(bracket_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(bracket_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
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
never executed: return ((void *)0);
executed: }
Execution Count:15
0-15
3664 -
3665if (*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
3666 { -
3667 bra = *cc; -
3668 cc++; -
3669 opcode = *cc; -
3670 }
never executed: }
0
3671 -
3672opcode = *cc; -
3673ccbegin = cc; -
3674hotpath = ccbegin + 1 + 1; -
3675 -
3676if ((opcode == OP_COND || opcode == OP_SCOND) && cc[1 + 1] == 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
3677 { -
3678 -
3679 parent->top = fallback->prev; -
3680 return bracketend(cc);
never executed: return bracketend(cc);
0
3681 } -
3682 -
3683ket = *(bracketend(cc) - 1 - 1); -
3684do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
3685do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
3686cc += (cc[1]); -
3687 -
3688has_alternatives = *cc == OP_ALT; -
3689if (__builtin_expect((opcode == OP_COND), 0) || __builtin_expect((opcode == OP_SCOND), 0))
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
3690 { -
3691 has_alternatives = (*hotpath == OP_RREF) ? 0 : 1;
never evaluated: (*hotpath == OP_RREF)
0
3692 if (*hotpath == OP_NRREF)
never evaluated: *hotpath == OP_NRREF
0
3693 { -
3694 stacksize = hotpath[1]; -
3695 if (common->currententry == ((void *)0) || stacksize == 0xffff)
never evaluated: common->currententry == ((void *)0)
never evaluated: stacksize == 0xffff
0
3696 has_alternatives = 0;
never executed: has_alternatives = 0;
0
3697 else if (common->currententry->start == 0)
never evaluated: common->currententry->start == 0
0
3698 has_alternatives = stacksize != 0;
never executed: has_alternatives = stacksize != 0;
0
3699 else -
3700 has_alternatives = stacksize != common->start[common->currententry->start + 1 + 1];
never executed: has_alternatives = stacksize != common->start[common->currententry->start + 1 + 1];
0
3701 } -
3702 }
never executed: }
0
3703 -
3704if (__builtin_expect((opcode == OP_COND), 0) && (*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
3705 opcode = OP_SCOND;
never executed: opcode = OP_SCOND;
0
3706if (__builtin_expect((opcode == OP_ONCE_NC), 0))
partially evaluated: __builtin_expect((opcode == OP_ONCE_NC), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3707 opcode = OP_ONCE;
never executed: opcode = OP_ONCE;
0
3708 -
3709if (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
3710 { -
3711 -
3712 offset = ccbegin[1 + 1]; -
3713 localptr = (common->cbraptr + (offset) * sizeof(sljit_w)); -
3714 offset <<= 1; -
3715 ((bracket_fallback*)fallback)->localptr = localptr; -
3716 hotpath += 1; -
3717 }
never executed: }
0
3718else 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
3719 { -
3720 -
3721 localptr = (common->localptrs[(ccbegin) - common->start]); -
3722 do { } while (0);
never evaluated: 0
never executed: }
0
3723 ((bracket_fallback*)fallback)->localptr = localptr; -
3724 if (opcode == OP_ONCE)
never evaluated: opcode == OP_ONCE
0
3725 ((bracket_fallback*)fallback)->u.framesize = get_framesize(common, ccbegin, 0);
never executed: ((bracket_fallback*)fallback)->u.framesize = get_framesize(common, ccbegin, 0);
0
3726 }
never executed: }
0
3727 -
3728 -
3729stacksize = 0; -
3730if ((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
3731 stacksize++;
never executed: stacksize++;
0
3732if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3733 stacksize++;
never executed: stacksize++;
0
3734 -
3735if (stacksize > 0)
partially evaluated: stacksize > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3736 allocate_stack(common, stacksize);
never executed: allocate_stack(common, stacksize);
0
3737 -
3738stacksize = 0; -
3739if ((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
3740 { -
3741 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
3742 stacksize++; -
3743 }
never executed: }
0
3744 -
3745if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3746 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
3747 -
3748if (bra == OP_BRAMINZERO)
partially evaluated: bra == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3749 { -
3750 -
3751 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3752 if (ket != OP_KETRMIN)
never evaluated: ket != OP_KETRMIN
0
3753 { -
3754 free_stack(common, 1); -
3755 braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0)); -
3756 }
never executed: }
0
3757 else -
3758 { -
3759 if (opcode == OP_ONCE || opcode >= OP_SBRA)
never evaluated: opcode == OP_ONCE
never evaluated: opcode >= OP_SBRA
0
3760 { -
3761 jump = sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)); -
3762 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
3763 -
3764 skip = sljit_emit_jump(compiler, (22)); -
3765 sljit_set_label((jump), sljit_emit_label(compiler)); -
3766 -
3767 if (opcode != OP_ONCE || ((bracket_fallback*)fallback)->u.framesize < 0)
never evaluated: opcode != OP_ONCE
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
3768 { -
3769 -
3770 braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (11))), (localptr)); -
3771 }
never executed: }
0
3772 else -
3773 { -
3774 -
3775 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
3776 braminzerojump = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (1))), ((((bracket_fallback*)fallback)->u.framesize + 1) * sizeof(sljit_w))); -
3777 }
never executed: }
0
3778 sljit_set_label((skip), sljit_emit_label(compiler)); -
3779 }
never executed: }
0
3780 else -
3781 { -
3782 jump = sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)); -
3783 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
3784 sljit_set_label((jump), sljit_emit_label(compiler)); -
3785 }
never executed: }
0
3786 } -
3787 } -
3788 -
3789if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3790 ((bracket_fallback*)fallback)->recursivehotpath = sljit_emit_label(compiler);
never executed: ((bracket_fallback*)fallback)->recursivehotpath = sljit_emit_label(compiler);
0
3791 -
3792if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3793 { -
3794 rmaxlabel = sljit_emit_label(compiler); -
3795 if (has_alternatives && opcode != OP_ONCE && opcode < OP_SBRA)
never evaluated: has_alternatives
never evaluated: opcode != OP_ONCE
never evaluated: opcode < OP_SBRA
0
3796 ((bracket_fallback*)fallback)->althotpath = rmaxlabel;
never executed: ((bracket_fallback*)fallback)->althotpath = rmaxlabel;
0
3797 }
never executed: }
0
3798 -
3799 -
3800if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3801 { -
3802 if (((bracket_fallback*)fallback)->u.framesize < 0)
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
3803 { -
3804 -
3805 if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
3806 { -
3807 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr)); -
3808 allocate_stack(common, 2); -
3809 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3810 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
3811 sljit_emit_op2(compiler, (25), ((0x100 | (11))), (localptr), (2), (0), (0x200), (sizeof(sljit_w))); -
3812 }
never executed: }
0
3813 else if (ket == OP_KETRMAX || has_alternatives)
never evaluated: ket == OP_KETRMAX
never evaluated: has_alternatives
0
3814 { -
3815 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0)); -
3816 allocate_stack(common, 1); -
3817 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3818 }
never executed: }
0
3819 else -
3820 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0));
0
3821 } -
3822 else -
3823 { -
3824 if (ket == OP_KETRMIN || ket == OP_KETRMAX || has_alternatives)
never evaluated: ket == OP_KETRMIN
never evaluated: ket == OP_KETRMAX
never evaluated: has_alternatives
0
3825 { -
3826 allocate_stack(common, ((bracket_fallback*)fallback)->u.framesize + 2); -
3827 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
3828 sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(((bracket_fallback*)fallback)->u.framesize + 1) - 1) * (int)sizeof(sljit_w)))); -
3829 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3830 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0)); -
3831 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3832 init_frame(common, ccbegin, ((bracket_fallback*)fallback)->u.framesize + 1, 2, 0); -
3833 }
never executed: }
0
3834 else -
3835 { -
3836 allocate_stack(common, ((bracket_fallback*)fallback)->u.framesize + 1); -
3837 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
3838 sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(((bracket_fallback*)fallback)->u.framesize) - 1) * (int)sizeof(sljit_w)))); -
3839 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0)); -
3840 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3841 init_frame(common, ccbegin, ((bracket_fallback*)fallback)->u.framesize, 1, 0); -
3842 }
never executed: }
0
3843 } -
3844 } -
3845else 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
3846 { -
3847 -
3848 allocate_stack(common, 3); -
3849 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
3850 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w)))); -
3851 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3852 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
3853 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
3854 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (6), (0)); -
3855 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(2) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
3856 }
never executed: }
0
3857else 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
3858 { -
3859 -
3860 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr)); -
3861 allocate_stack(common, 1); -
3862 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (6), (0)); -
3863 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
3864 }
never executed: }
0
3865else if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
3866 { -
3867 -
3868 allocate_stack(common, 1); -
3869 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
3870 }
executed: }
Execution Count:1
1
3871 -
3872 -
3873if (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
3874 { -
3875 if (*hotpath == OP_CREF)
never evaluated: *hotpath == OP_CREF
0
3876 { -
3877 do { } while (0);
never evaluated: 0
never executed: }
0
3878 add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed), -
3879 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))))); -
3880 hotpath += 1 + 1; -
3881 }
never executed: }
0
3882 else if (*hotpath == OP_NCREF)
never evaluated: *hotpath == OP_NCREF
0
3883 { -
3884 do { } while (0);
never evaluated: 0
never executed: }
0
3885 stacksize = hotpath[1]; -
3886 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)))); -
3887 -
3888 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (2), (0)); -
3889 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (0x200), (common->name_count)); -
3890 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (common->name_entry_size)); -
3891 sljit_emit_op1(compiler, (6), (1), (0), (0x200), (stacksize)); -
3892 sljit_emit_op1(compiler, (6), (2), (0), (11), (0)); -
3893 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (common->name_table)); -
3894 sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_searchovector)); -
3895 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w)))); -
3896 add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed), sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0))); -
3897 -
3898 sljit_set_label((jump), sljit_emit_label(compiler)); -
3899 hotpath += 1 + 1; -
3900 }
never executed: }
0
3901 else if (*hotpath == OP_RREF || *hotpath == OP_NRREF)
never evaluated: *hotpath == OP_RREF
never evaluated: *hotpath == OP_NRREF
0
3902 { -
3903 -
3904 ((bracket_fallback*)fallback)->u.condfailed = ((void *)0); -
3905 -
3906 stacksize = hotpath[1]; -
3907 if (common->currententry == ((void *)0))
never evaluated: common->currententry == ((void *)0)
0
3908 stacksize = 0;
never executed: stacksize = 0;
0
3909 else if (stacksize == 0xffff)
never evaluated: stacksize == 0xffff
0
3910 stacksize = 1;
never executed: stacksize = 1;
0
3911 else if (common->currententry->start == 0)
never evaluated: common->currententry->start == 0
0
3912 stacksize = stacksize == 0;
never executed: stacksize = stacksize == 0;
0
3913 else -
3914 stacksize = stacksize == common->start[common->currententry->start + 1 + 1];
never executed: stacksize = stacksize == common->start[common->currententry->start + 1 + 1];
0
3915 -
3916 if (*hotpath == OP_RREF || stacksize || common->currententry == ((void *)0))
never evaluated: *hotpath == OP_RREF
never evaluated: stacksize
never evaluated: common->currententry == ((void *)0)
0
3917 { -
3918 do { } while (0);
never evaluated: 0
never executed: }
0
3919 if (stacksize != 0)
never evaluated: stacksize != 0
0
3920 hotpath += 1 + 1;
never executed: hotpath += 1 + 1;
0
3921 else -
3922 { -
3923 if (*cc == OP_ALT)
never evaluated: *cc == OP_ALT
0
3924 { -
3925 hotpath = cc + 1 + 1; -
3926 cc += (cc[1]); -
3927 }
never executed: }
0
3928 else -
3929 hotpath = cc;
never executed: hotpath = cc;
0
3930 } -
3931 } -
3932 else -
3933 { -
3934 do { } while (0);
never evaluated: 0
never executed: }
0
3935 -
3936 stacksize = hotpath[1]; -
3937 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (2), (0)); -
3938 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((0 * sizeof(sljit_w))), (0x200), (common->name_count)); -
3939 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (0x200), (common->name_entry_size)); -
3940 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (common->start[common->currententry->start + 1 + 1])); -
3941 sljit_emit_op1(compiler, (6), (1), (0), (0x200), (stacksize)); -
3942 sljit_emit_op1(compiler, (6), (2), (0), (11), (0)); -
3943 sljit_emit_op1(compiler, (6), (3), (0), (0x200), (common->name_table)); -
3944 sljit_emit_ijump(compiler, 27, 0x200, ((sljit_w)do_searchgroups)); -
3945 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w)))); -
3946 add_jump(compiler, &(((bracket_fallback*)fallback)->u.condfailed), sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0))); -
3947 hotpath += 1 + 1; -
3948 }
never executed: }
0
3949 } -
3950 else -
3951 { -
3952 do { } while (0);
never evaluated: 0
never executed: }
0
3953 -
3954 assert = sljit_alloc_memory(compiler, sizeof(assert_fallback)); -
3955 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
3956 return ((void *)0);
never executed: return ((void *)0);
0
3957 memset(assert, 0, sizeof(assert_fallback)); -
3958 assert->common.cc = hotpath; -
3959 ((bracket_fallback*)fallback)->u.assert = assert; -
3960 hotpath = compile_assert_hotpath(common, hotpath, assert, 1); -
3961 }
never executed: }
0
3962 } -
3963 -
3964compile_hotpath(common, hotpath, cc, fallback); -
3965if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3966 return ((void *)0);
never executed: return ((void *)0);
0
3967 -
3968if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
3969 { -
3970 if (((bracket_fallback*)fallback)->u.framesize < 0)
never evaluated: ((bracket_fallback*)fallback)->u.framesize < 0
0
3971 { -
3972 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
3973 -
3974 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
3975 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
0
3976 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
3977 { -
3978 -
3979 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (0)); -
3980 }
never executed: }
0
3981 } -
3982 else -
3983 { -
3984 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
3985 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((((bracket_fallback*)fallback)->u.framesize + stacksize) * sizeof(sljit_w))); -
3986 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
3987 { -
3988 -
3989 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
3990 }
never executed: }
0
3991 }
never executed: }
0
3992 } -
3993 -
3994stacksize = 0; -
3995if (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
3996 stacksize++;
never executed: stacksize++;
0
3997if (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
3998 stacksize++;
executed: stacksize++;
Execution Count:1
1
3999 -
4000if (stacksize > 0)
evaluated: stacksize > 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
4001 allocate_stack(common, stacksize);
executed: allocate_stack(common, stacksize);
Execution Count:1
1
4002 -
4003stacksize = 0; -
4004if (ket != OP_KET)
partially evaluated: ket != OP_KET
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4005 { -
4006 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4007 stacksize++; -
4008 }
never executed: }
0
4009else if (bra != OP_BRA)
partially evaluated: bra != OP_BRA
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4010 { -
4011 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4012 stacksize++; -
4013 }
never executed: }
0
4014 -
4015if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
4016 { -
4017 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
4018 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
Execution Count:1
1
4019 if (ket != OP_KETRMAX)
partially evaluated: ket != OP_KETRMAX
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
4020 ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
executed: ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
Execution Count:1
1
4021 }
executed: }
Execution Count:1
1
4022 -
4023 -
4024if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4025 { -
4026 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
4027 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0)); -
4028 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 0) * sizeof(sljit_w))), (1), (0)); -
4029 }
never executed: }
0
4030 -
4031if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4032 { -
4033 if (opcode == OP_ONCE || opcode >= OP_SBRA)
never evaluated: opcode == OP_ONCE
never evaluated: opcode >= OP_SBRA
0
4034 { -
4035 if (has_alternatives)
never evaluated: has_alternatives
0
4036 ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
never executed: ((bracket_fallback*)fallback)->althotpath = sljit_emit_label(compiler);
0
4037 -
4038 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
4039 sljit_set_label(sljit_emit_cmp(compiler, (1), ((0x100 | (11))), (localptr), (6), (0)), (rmaxlabel));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), ((0x100 | (11))), (localptr), (6), (0)), (rmaxlabel));
0
4040 else -
4041 -
4042 sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (rmaxlabel));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (rmaxlabel));
0
4043 } -
4044 else -
4045 sljit_set_label(sljit_emit_jump(compiler, (22)), (rmaxlabel));
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (rmaxlabel));
0
4046 ((bracket_fallback*)fallback)->recursivehotpath = sljit_emit_label(compiler); -
4047 }
never executed: }
0
4048 -
4049if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4050 ((bracket_fallback*)fallback)->zerohotpath = sljit_emit_label(compiler);
never executed: ((bracket_fallback*)fallback)->zerohotpath = sljit_emit_label(compiler);
0
4051 -
4052if (bra == OP_BRAMINZERO)
partially evaluated: bra == OP_BRAMINZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
4053 { -
4054 -
4055 sljit_set_label(sljit_emit_jump(compiler, (22)), (((braminzero_fallback*)parent)->hotpath)); -
4056 if (braminzerojump != ((void *)0))
never evaluated: braminzerojump != ((void *)0)
0
4057 { -
4058 sljit_set_label((braminzerojump), sljit_emit_label(compiler)); -
4059 -
4060 -
4061 -
4062 if (opcode == OP_ONCE && ((bracket_fallback*)fallback)->u.framesize >= 0)
never evaluated: opcode == OP_ONCE
never evaluated: ((bracket_fallback*)fallback)->u.framesize >= 0
0
4063 { -
4064 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
4065 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
4066 }
never executed: }
0
4067 else if (ket == OP_KETRMIN && opcode != OP_ONCE)
never evaluated: ket == OP_KETRMIN
never evaluated: opcode != OP_ONCE
0
4068 free_stack(common, 1);
never executed: free_stack(common, 1);
0
4069 } -
4070 -
4071 }
never executed: }
0
4072 -
4073if ((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
4074 decrease_call_count(common);
never executed: decrease_call_count(common);
0
4075 -
4076 -
4077while (*cc == OP_ALT)
evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:15
1-15
4078 cc += (cc[1]);
executed: cc += (cc[1]);
Execution Count:1
1
4079cc += 1 + 1; -
4080return cc;
executed: return cc;
Execution Count:15
15
4081} -
4082 -
4083static pcre_uchar *compile_bracketpos_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4084{ -
4085struct sljit_compiler *compiler = common->compiler; -
4086fallback_common *fallback; -
4087pcre_uchar opcode; -
4088int localptr; -
4089int cbraprivptr = 0; -
4090int framesize; -
4091int stacksize; -
4092int offset = 0; -
4093BOOL zero = 0; -
4094pcre_uchar *ccbegin = ((void *)0); -
4095int stack; -
4096struct sljit_label *loop = ((void *)0); -
4097struct jump_list *emptymatch = ((void *)0); -
4098 -
4099do { fallback = sljit_alloc_memory(compiler, (sizeof(bracketpos_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(bracketpos_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
4100if (*cc == OP_BRAPOSZERO)
never evaluated: *cc == OP_BRAPOSZERO
0
4101 { -
4102 zero = 1; -
4103 cc++; -
4104 }
never executed: }
0
4105 -
4106opcode = *cc; -
4107localptr = (common->localptrs[(cc) - common->start]); -
4108do { } while (0);
never evaluated: 0
never executed: }
0
4109((bracketpos_fallback*)fallback)->localptr = localptr; -
4110switch(opcode) -
4111 { -
4112 case OP_BRAPOS: -
4113 case OP_SBRAPOS: -
4114 ccbegin = cc + 1 + 1; -
4115 break;
never executed: break;
0
4116 -
4117 case OP_CBRAPOS: -
4118 case OP_SCBRAPOS: -
4119 offset = cc[1 + 1]; -
4120 cbraprivptr = (common->cbraptr + (offset) * sizeof(sljit_w)); -
4121 offset <<= 1; -
4122 ccbegin = cc + 1 + 1 + 1; -
4123 break;
never executed: break;
0
4124 -
4125 default: -
4126 do { } while (0);
never evaluated: 0
never executed: }
0
4127 break;
never executed: break;
0
4128 } -
4129 -
4130framesize = get_framesize(common, cc, 0); -
4131((bracketpos_fallback*)fallback)->framesize = framesize; -
4132if (framesize < 0)
never evaluated: framesize < 0
0
4133 { -
4134 stacksize = (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS) ? 2 : 1;
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4135 if (!zero)
never evaluated: !zero
0
4136 stacksize++;
never executed: stacksize++;
0
4137 ((bracketpos_fallback*)fallback)->stacksize = stacksize; -
4138 allocate_stack(common, stacksize); -
4139 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (2), (0)); -
4140 -
4141 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4142 { -
4143 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w)))); -
4144 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w)))); -
4145 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
4146 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
4147 }
never executed: }
0
4148 else -
4149 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
4150 -
4151 if (!zero)
never evaluated: !zero
0
4152 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (1));
0
4153 }
never executed: }
0
4154else -
4155 { -
4156 stacksize = framesize + 1; -
4157 if (!zero)
never evaluated: !zero
0
4158 stacksize++;
never executed: stacksize++;
0
4159 if (opcode == OP_BRAPOS || opcode == OP_SBRAPOS)
never evaluated: opcode == OP_BRAPOS
never evaluated: opcode == OP_SBRAPOS
0
4160 stacksize++;
never executed: stacksize++;
0
4161 ((bracketpos_fallback*)fallback)->stacksize = stacksize; -
4162 allocate_stack(common, stacksize); -
4163 -
4164 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
4165 sljit_emit_op2(compiler, (25), (3), (0), (2), (0), (0x200), (-((-(stacksize - 1) - 1) * (int)sizeof(sljit_w)))); -
4166 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (3), (0)); -
4167 stack = 0; -
4168 if (!zero)
never evaluated: !zero
0
4169 { -
4170 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (1)); -
4171 stack++; -
4172 }
never executed: }
0
4173 if (opcode == OP_BRAPOS || opcode == OP_SBRAPOS)
never evaluated: opcode == OP_BRAPOS
never evaluated: opcode == OP_SBRAPOS
0
4174 { -
4175 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stack) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4176 stack++; -
4177 }
never executed: }
0
4178 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stack) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
4179 init_frame(common, cc, stacksize - 1, stacksize - framesize, 0); -
4180 }
never executed: }
0
4181 -
4182if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4183 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0));
0
4184 -
4185loop = sljit_emit_label(compiler); -
4186while (*cc != OP_KETRPOS)
never evaluated: *cc != OP_KETRPOS
0
4187 { -
4188 fallback->top = ((void *)0); -
4189 fallback->topfallbacks = ((void *)0); -
4190 cc += (cc[1]); -
4191 -
4192 compile_hotpath(common, ccbegin, cc, fallback); -
4193 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
4194 return ((void *)0);
never executed: return ((void *)0);
0
4195 -
4196 if (framesize < 0)
never evaluated: framesize < 0
0
4197 { -
4198 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
4199 -
4200 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4201 { -
4202 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (cbraprivptr)); -
4203 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0)); -
4204 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0)); -
4205 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0)); -
4206 }
never executed: }
0
4207 else -
4208 { -
4209 if (opcode == OP_SBRAPOS)
never evaluated: opcode == OP_SBRAPOS
0
4210 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
4211 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4212 }
never executed: }
0
4213 -
4214 if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_SBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4215 add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
never executed: add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
0
4216 -
4217 if (!zero)
never evaluated: !zero
0
4218 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4219 }
never executed: }
0
4220 else -
4221 { -
4222 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4223 { -
4224 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), (stacksize * sizeof(sljit_w))); -
4225 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (cbraprivptr)); -
4226 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0)); -
4227 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (cbraprivptr), (6), (0)); -
4228 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0)); -
4229 }
never executed: }
0
4230 else -
4231 { -
4232 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr)); -
4233 sljit_emit_op2(compiler, (23), (2), (0), (3), (0), (0x200), (stacksize * sizeof(sljit_w))); -
4234 if (opcode == OP_SBRAPOS)
never evaluated: opcode == OP_SBRAPOS
0
4235 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)));
never executed: sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)));
0
4236 sljit_emit_op1(compiler, (6), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w)), (6), (0)); -
4237 }
never executed: }
0
4238 -
4239 if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_SBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4240 add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
never executed: add_jump(compiler, &emptymatch, sljit_emit_cmp(compiler, (0), (1), (0), (6), (0)));
0
4241 -
4242 if (!zero)
never evaluated: !zero
0
4243 { -
4244 if (framesize < 0)
never evaluated: framesize < 0
0
4245 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4246 else -
4247 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
4248 } -
4249 }
never executed: }
0
4250 sljit_set_label(sljit_emit_jump(compiler, (22)), (loop)); -
4251 flush_stubs(common); -
4252 -
4253 compile_fallbackpath(common, fallback->top); -
4254 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
4255 return ((void *)0);
never executed: return ((void *)0);
0
4256 set_jumps(fallback->topfallbacks, sljit_emit_label(compiler)); -
4257 -
4258 if (framesize < 0)
never evaluated: framesize < 0
0
4259 { -
4260 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4261 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (cbraprivptr));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (cbraprivptr));
0
4262 else -
4263 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
4264 } -
4265 else -
4266 { -
4267 if (opcode == OP_CBRAPOS || opcode == OP_SCBRAPOS)
never evaluated: opcode == OP_CBRAPOS
never evaluated: opcode == OP_SCBRAPOS
0
4268 { -
4269 -
4270 if (*cc == OP_KETRPOS)
never evaluated: *cc == OP_KETRPOS
0
4271 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr));
0
4272 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (cbraprivptr)); -
4273 }
never executed: }
0
4274 else -
4275 { -
4276 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), (localptr)); -
4277 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (3))), ((framesize + 1) * sizeof(sljit_w))); -
4278 }
never executed: }
0
4279 } -
4280 -
4281 if (*cc == OP_KETRPOS)
never evaluated: *cc == OP_KETRPOS
0
4282 break;
never executed: break;
0
4283 ccbegin = cc + 1 + 1; -
4284 }
never executed: }
0
4285 -
4286fallback->topfallbacks = ((void *)0); -
4287if (!zero)
never evaluated: !zero
0
4288 { -
4289 if (framesize < 0)
never evaluated: framesize < 0
0
4290 add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), ((0x100 | (2))), (((-(stacksize - 1) - 1) * (int)sizeof(sljit_w))), (0x200), (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
4291 else -
4292 add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), ((0x100 | (3))), ((stacksize - 1) * sizeof(sljit_w)), (0x200), (0)));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), ((0x100 | (3))), ((stacksize - 1) * sizeof(sljit_w)), (0x200), (0)));
0
4293 } -
4294 -
4295 -
4296set_jumps(emptymatch, sljit_emit_label(compiler)); -
4297decrease_call_count(common); -
4298return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
4299} -
4300 -
4301static __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) -
4302{ -
4303int class_len; -
4304 -
4305*opcode = *cc; -
4306if (*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
4307 { -
4308 cc++; -
4309 *type = OP_CHAR; -
4310 }
executed: }
Execution Count:4
4
4311else 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
4312 { -
4313 cc++; -
4314 *type = OP_CHARI; -
4315 *opcode -= OP_STARI - OP_STAR; -
4316 }
never executed: }
0
4317else 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
4318 { -
4319 cc++; -
4320 *type = OP_NOT; -
4321 *opcode -= OP_NOTSTAR - OP_STAR; -
4322 }
never executed: }
0
4323else 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
4324 { -
4325 cc++; -
4326 *type = OP_NOTI; -
4327 *opcode -= OP_NOTSTARI - OP_STAR; -
4328 }
never executed: }
0
4329else 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
4330 { -
4331 cc++; -
4332 *opcode -= OP_TYPESTAR - OP_STAR; -
4333 *type = 0; -
4334 }
executed: }
Execution Count:10
10
4335else -
4336 { -
4337 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
executed: }
Execution Count:2
0-2
4338 *type = *opcode; -
4339 cc++; -
4340 class_len = (*type < OP_XCLASS) ? (int)(1 + (32 / sizeof(pcre_uchar))) : (cc[0]);
partially evaluated: (*type < OP_XCLASS)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
4341 *opcode = cc[class_len - 1]; -
4342 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
4343 { -
4344 *opcode -= OP_CRSTAR - OP_STAR; -
4345 if (end != ((void *)0))
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
4346 *end = cc + class_len;
executed: *end = cc + class_len;
Execution Count:1
1
4347 }
executed: }
Execution Count:2
2
4348 else -
4349 { -
4350 do { } while (0);
never evaluated: 0
never executed: }
0
4351 *arg1 = cc[(class_len + 1)]; -
4352 *arg2 = cc[class_len]; -
4353 -
4354 if (*arg2 == 0)
never evaluated: *arg2 == 0
0
4355 { -
4356 do { } while (0);
never evaluated: 0
never executed: }
0
4357 *opcode = (*opcode == OP_CRRANGE) ? OP_UPTO : OP_MINUPTO;
never evaluated: (*opcode == OP_CRRANGE)
0
4358 }
never executed: }
0
4359 if (*arg1 == *arg2)
never evaluated: *arg1 == *arg2
0
4360 *opcode = OP_EXACT;
never executed: *opcode = OP_EXACT;
0
4361 -
4362 if (end != ((void *)0))
never evaluated: end != ((void *)0)
0
4363 *end = cc + class_len + 2 * 1;
never executed: *end = cc + class_len + 2 * 1;
0
4364 }
never executed: }
0
4365 return cc;
executed: return cc;
Execution Count:2
2
4366 } -
4367 -
4368if (*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
4369 { -
4370 *arg1 = cc[0]; -
4371 cc += 1; -
4372 }
never executed: }
0
4373 -
4374if (*type == 0)
evaluated: *type == 0
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:4
4-10
4375 { -
4376 *type = *cc; -
4377 if (end != ((void *)0))
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:5
5
4378 *end = next_opcode(common, cc);
executed: *end = next_opcode(common, cc);
Execution Count:5
5
4379 cc++; -
4380 return cc;
executed: return cc;
Execution Count:10
10
4381 } -
4382 -
4383if (end != ((void *)0))
evaluated: end != ((void *)0)
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:2
2
4384 { -
4385 *end = cc + 1; -
4386 -
4387 if (common->utf && (((*cc) & 0xfc00) == 0xd800)) *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
never executed: *end += 1;
0-2
4388 -
4389 }
executed: }
Execution Count:2
2
4390return cc;
executed: return cc;
Execution Count:4
4
4391} -
4392 -
4393static pcre_uchar *compile_iterator_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4394{ -
4395struct sljit_compiler *compiler = common->compiler; -
4396fallback_common *fallback; -
4397pcre_uchar opcode; -
4398pcre_uchar type; -
4399int arg1 = -1, arg2 = -1; -
4400pcre_uchar* end; -
4401jump_list *nomatch = ((void *)0); -
4402struct sljit_jump *jump = ((void *)0); -
4403struct sljit_label *label; -
4404 -
4405do { fallback = sljit_alloc_memory(compiler, (sizeof(iterator_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(iterator_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
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
never executed: return ((void *)0);
executed: }
Execution Count:8
0-8
4406 -
4407cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, &end); -
4408 -
4409switch(opcode) -
4410 { -
4411 case OP_STAR: -
4412 case OP_PLUS: -
4413 case OP_UPTO: -
4414 case OP_CRRANGE: -
4415 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
4416 { -
4417 if (opcode == OP_STAR || opcode == OP_UPTO)
never evaluated: opcode == OP_STAR
never evaluated: opcode == OP_UPTO
0
4418 { -
4419 allocate_stack(common, 2); -
4420 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4421 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4422 }
never executed: }
0
4423 else -
4424 { -
4425 allocate_stack(common, 1); -
4426 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4427 }
never executed: }
0
4428 if (opcode == OP_UPTO || opcode == OP_CRRANGE)
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
0
4429 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (0));
0
4430 -
4431 label = sljit_emit_label(compiler); -
4432 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks); -
4433 if (opcode == OP_UPTO || opcode == OP_CRRANGE)
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
0
4434 { -
4435 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w)))); -
4436 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
4437 if (opcode == OP_CRRANGE && arg2 > 0)
never evaluated: opcode == OP_CRRANGE
never evaluated: arg2 > 0
0
4438 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2)), (label));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2)), (label));
0
4439 if (opcode == OP_UPTO || (opcode == OP_CRRANGE && arg1 > 0))
never evaluated: opcode == OP_UPTO
never evaluated: opcode == OP_CRRANGE
never evaluated: arg1 > 0
0
4440 jump = sljit_emit_cmp(compiler, (3), (1), (0), (0x200), (arg1));
never executed: jump = sljit_emit_cmp(compiler, (3), (1), (0), (0x200), (arg1));
0
4441 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0)); -
4442 }
never executed: }
0
4443 -
4444 allocate_stack(common, 1); -
4445 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4446 sljit_set_label(sljit_emit_jump(compiler, (22)), (label)); -
4447 if (jump != ((void *)0))
never evaluated: jump != ((void *)0)
0
4448 sljit_set_label((jump), sljit_emit_label(compiler));
never executed: sljit_set_label((jump), sljit_emit_label(compiler));
0
4449 }
never executed: }
0
4450 else -
4451 { -
4452 allocate_stack(common, 2); -
4453 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4454 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1)); -
4455 label = sljit_emit_label(compiler); -
4456 compile_char1_hotpath(common, type, cc, &nomatch); -
4457 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4458 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
4459 { -
4460 sljit_emit_op2(compiler, (23), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1)); -
4461 sljit_set_label(sljit_emit_jump(compiler, (22)), (label)); -
4462 }
executed: }
Execution Count:8
8
4463 else -
4464 { -
4465 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
4466 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
4467 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
4468 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label)); -
4469 }
never executed: }
0
4470 set_jumps(nomatch, sljit_emit_label(compiler)); -
4471 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
4472 add_jump(compiler, &fallback->topfallbacks, 0
4473 sljit_emit_cmp(compiler, (2), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (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
4474 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4475 }
executed: }
Execution Count:8
8
4476 ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
4477 break;
executed: break;
Execution Count:8
8
4478 -
4479 case OP_MINSTAR: -
4480 case OP_MINPLUS: -
4481 allocate_stack(common, 1); -
4482 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4483 if (opcode == OP_MINPLUS)
never evaluated: opcode == OP_MINPLUS
0
4484 add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
0
4485 ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
4486 break;
never executed: break;
0
4487 -
4488 case OP_MINUPTO: -
4489 case OP_CRMINRANGE: -
4490 allocate_stack(common, 2); -
4491 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4492 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1)); -
4493 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
4494 add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22)));
0
4495 ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
4496 break;
never executed: break;
0
4497 -
4498 case OP_QUERY: -
4499 case OP_MINQUERY: -
4500 allocate_stack(common, 1); -
4501 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4502 if (opcode == OP_QUERY)
never evaluated: opcode == OP_QUERY
0
4503 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
never executed: compile_char1_hotpath(common, type, cc, &fallback->topfallbacks);
0
4504 ((iterator_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
4505 break;
never executed: break;
0
4506 -
4507 case OP_EXACT: -
4508 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (1)); -
4509 label = sljit_emit_label(compiler); -
4510 compile_char1_hotpath(common, type, cc, &fallback->topfallbacks); -
4511 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w)))); -
4512 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
4513 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0)); -
4514 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label)); -
4515 break;
never executed: break;
0
4516 -
4517 case OP_POSSTAR: -
4518 case OP_POSPLUS: -
4519 case OP_POSUPTO: -
4520 if (opcode != OP_POSSTAR)
never evaluated: opcode != OP_POSSTAR
0
4521 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (1));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (1));
0
4522 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0)); -
4523 label = sljit_emit_label(compiler); -
4524 compile_char1_hotpath(common, type, cc, &nomatch); -
4525 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0)); -
4526 if (opcode != OP_POSUPTO)
never evaluated: opcode != OP_POSUPTO
0
4527 { -
4528 if (opcode == OP_POSPLUS)
never evaluated: opcode == OP_POSPLUS
0
4529 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2));
0
4530 sljit_set_label(sljit_emit_jump(compiler, (22)), (label)); -
4531 }
never executed: }
0
4532 else -
4533 { -
4534 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((2 * sizeof(sljit_w)))); -
4535 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
4536 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (1), (0)); -
4537 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 1)), (label)); -
4538 }
never executed: }
0
4539 set_jumps(nomatch, sljit_emit_label(compiler)); -
4540 if (opcode == OP_POSPLUS)
never evaluated: opcode == OP_POSPLUS
0
4541 add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (2), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2)));
never executed: add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (2), ((0x100 | (11))), ((2 * sizeof(sljit_w))), (0x200), (2)));
0
4542 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w)))); -
4543 break;
never executed: break;
0
4544 -
4545 case OP_POSQUERY: -
4546 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0)); -
4547 compile_char1_hotpath(common, type, cc, &nomatch); -
4548 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((3 * sizeof(sljit_w))), (6), (0)); -
4549 set_jumps(nomatch, sljit_emit_label(compiler)); -
4550 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), ((3 * sizeof(sljit_w)))); -
4551 break;
never executed: break;
0
4552 -
4553 default: -
4554 do { } while (0);
never evaluated: 0
never executed: }
0
4555 break;
never executed: break;
0
4556 } -
4557 -
4558decrease_call_count(common); -
4559return end;
executed: return end;
Execution Count:8
8
4560} -
4561 -
4562static __inline pcre_uchar *compile_fail_accept_hotpath(compiler_common *common, pcre_uchar *cc, fallback_common *parent) -
4563{ -
4564struct sljit_compiler *compiler = common->compiler; -
4565fallback_common *fallback; -
4566 -
4567do { fallback = sljit_alloc_memory(compiler, (sizeof(bracket_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return ((void *)0); memset(fallback, 0, sizeof(bracket_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
4568 -
4569if (*cc == OP_FAIL)
never evaluated: *cc == OP_FAIL
0
4570 { -
4571 add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22))); -
4572 return cc + 1;
never executed: return cc + 1;
0
4573 } -
4574 -
4575if (*cc == OP_ASSERT_ACCEPT || common->currententry != ((void *)0))
never evaluated: *cc == OP_ASSERT_ACCEPT
never evaluated: common->currententry != ((void *)0)
0
4576 { -
4577 -
4578 if (common->acceptlabel == ((void *)0))
never evaluated: common->acceptlabel == ((void *)0)
0
4579 add_jump(compiler, &common->accept, sljit_emit_jump(compiler, (22)));
never executed: add_jump(compiler, &common->accept, sljit_emit_jump(compiler, (22)));
0
4580 else -
4581 sljit_set_label(sljit_emit_jump(compiler, (22)), (common->acceptlabel));
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (common->acceptlabel));
0
4582 return cc + 1;
never executed: return cc + 1;
0
4583 } -
4584 -
4585if (common->acceptlabel == ((void *)0))
never evaluated: common->acceptlabel == ((void *)0)
0
4586 add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))));
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
4587else -
4588 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))), (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
4589sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
4590sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty) - 0x10))); -
4591add_jump(compiler, &fallback->topfallbacks, sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0))); -
4592sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty_atstart) - 0x10))); -
4593if (common->acceptlabel == ((void *)0))
never evaluated: common->acceptlabel == ((void *)0)
0
4594 add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)));
never executed: add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)));
0
4595else -
4596 sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)), (common->acceptlabel));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)), (common->acceptlabel));
0
4597sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
4598if (common->acceptlabel == ((void *)0))
never evaluated: common->acceptlabel == ((void *)0)
0
4599 add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)));
never executed: add_jump(compiler, &common->accept, sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)));
0
4600else -
4601 sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (common->acceptlabel));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (common->acceptlabel));
0
4602add_jump(compiler, &fallback->topfallbacks, sljit_emit_jump(compiler, (22))); -
4603return cc + 1;
never executed: return cc + 1;
0
4604} -
4605 -
4606static __inline pcre_uchar *compile_close_hotpath(compiler_common *common, pcre_uchar *cc) -
4607{ -
4608struct sljit_compiler *compiler = common->compiler; -
4609int offset = cc[1]; -
4610 -
4611 -
4612if (common->currententry != ((void *)0))
never evaluated: common->currententry != ((void *)0)
0
4613 return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
4614 -
4615sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), ((common->cbraptr + (offset) * sizeof(sljit_w)))); -
4616offset <<= 1; -
4617sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0)); -
4618sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0)); -
4619return cc + 1 + 1;
never executed: return cc + 1 + 1;
0
4620} -
4621 -
4622static void compile_hotpath(compiler_common *common, pcre_uchar *cc, pcre_uchar *ccend, fallback_common *parent) -
4623{ -
4624struct sljit_compiler *compiler = common->compiler; -
4625fallback_common *fallback; -
4626 -
4627while (cc < ccend)
evaluated: cc < ccend
TRUEFALSE
yes
Evaluation Count:31
yes
Evaluation Count:31
31
4628 { -
4629 switch(*cc) -
4630 { -
4631 case OP_SOD: -
4632 case OP_SOM: -
4633 case OP_NOT_WORD_BOUNDARY: -
4634 case OP_WORD_BOUNDARY: -
4635 case OP_NOT_DIGIT: -
4636 case OP_DIGIT: -
4637 case OP_NOT_WHITESPACE: -
4638 case OP_WHITESPACE: -
4639 case OP_NOT_WORDCHAR: -
4640 case OP_WORDCHAR: -
4641 case OP_ANY: -
4642 case OP_ALLANY: -
4643 case OP_ANYBYTE: -
4644 case OP_NOTPROP: -
4645 case OP_PROP: -
4646 case OP_ANYNL: -
4647 case OP_NOT_HSPACE: -
4648 case OP_HSPACE: -
4649 case OP_NOT_VSPACE: -
4650 case OP_VSPACE: -
4651 case OP_EXTUNI: -
4652 case OP_EODN: -
4653 case OP_EOD: -
4654 case OP_CIRC: -
4655 case OP_CIRCM: -
4656 case OP_DOLL: -
4657 case OP_DOLLM: -
4658 case OP_NOT: -
4659 case OP_NOTI: -
4660 case OP_REVERSE: -
4661 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks); -
4662 break;
executed: break;
Execution Count:1
1
4663 -
4664 case OP_SET_SOM: -
4665 do { fallback = sljit_alloc_memory(compiler, (sizeof(fallback_common))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; memset(fallback, 0, sizeof(fallback_common)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return;
never executed: }
0
4666 allocate_stack(common, 1); -
4667 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
4668 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (6), (0)); -
4669 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
4670 cc++; -
4671 break;
never executed: break;
0
4672 -
4673 case OP_CHAR: -
4674 case OP_CHARI: -
4675 cc = compile_charn_hotpath(common, cc, ccend, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks); -
4676 break;
executed: break;
Execution Count:7
7
4677 -
4678 case OP_STAR: -
4679 case OP_MINSTAR: -
4680 case OP_PLUS: -
4681 case OP_MINPLUS: -
4682 case OP_QUERY: -
4683 case OP_MINQUERY: -
4684 case OP_UPTO: -
4685 case OP_MINUPTO: -
4686 case OP_EXACT: -
4687 case OP_POSSTAR: -
4688 case OP_POSPLUS: -
4689 case OP_POSQUERY: -
4690 case OP_POSUPTO: -
4691 case OP_STARI: -
4692 case OP_MINSTARI: -
4693 case OP_PLUSI: -
4694 case OP_MINPLUSI: -
4695 case OP_QUERYI: -
4696 case OP_MINQUERYI: -
4697 case OP_UPTOI: -
4698 case OP_MINUPTOI: -
4699 case OP_EXACTI: -
4700 case OP_POSSTARI: -
4701 case OP_POSPLUSI: -
4702 case OP_POSQUERYI: -
4703 case OP_POSUPTOI: -
4704 case OP_NOTSTAR: -
4705 case OP_NOTMINSTAR: -
4706 case OP_NOTPLUS: -
4707 case OP_NOTMINPLUS: -
4708 case OP_NOTQUERY: -
4709 case OP_NOTMINQUERY: -
4710 case OP_NOTUPTO: -
4711 case OP_NOTMINUPTO: -
4712 case OP_NOTEXACT: -
4713 case OP_NOTPOSSTAR: -
4714 case OP_NOTPOSPLUS: -
4715 case OP_NOTPOSQUERY: -
4716 case OP_NOTPOSUPTO: -
4717 case OP_NOTSTARI: -
4718 case OP_NOTMINSTARI: -
4719 case OP_NOTPLUSI: -
4720 case OP_NOTMINPLUSI: -
4721 case OP_NOTQUERYI: -
4722 case OP_NOTMINQUERYI: -
4723 case OP_NOTUPTOI: -
4724 case OP_NOTMINUPTOI: -
4725 case OP_NOTEXACTI: -
4726 case OP_NOTPOSSTARI: -
4727 case OP_NOTPOSPLUSI: -
4728 case OP_NOTPOSQUERYI: -
4729 case OP_NOTPOSUPTOI: -
4730 case OP_TYPESTAR: -
4731 case OP_TYPEMINSTAR: -
4732 case OP_TYPEPLUS: -
4733 case OP_TYPEMINPLUS: -
4734 case OP_TYPEQUERY: -
4735 case OP_TYPEMINQUERY: -
4736 case OP_TYPEUPTO: -
4737 case OP_TYPEMINUPTO: -
4738 case OP_TYPEEXACT: -
4739 case OP_TYPEPOSSTAR: -
4740 case OP_TYPEPOSPLUS: -
4741 case OP_TYPEPOSQUERY: -
4742 case OP_TYPEPOSUPTO: -
4743 cc = compile_iterator_hotpath(common, cc, parent); -
4744 break;
executed: break;
Execution Count:7
7
4745 -
4746 case OP_CLASS: -
4747 case OP_NCLASS: -
4748 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
4749 cc = compile_iterator_hotpath(common, cc, parent);
never executed: cc = compile_iterator_hotpath(common, cc, parent);
0
4750 else -
4751 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &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
4752 break;
never executed: break;
0
4753 -
4754 -
4755 case OP_XCLASS: -
4756 if (*(cc + (cc[1])) >= OP_CRSTAR && *(cc + (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
4757 cc = compile_iterator_hotpath(common, cc, parent);
executed: cc = compile_iterator_hotpath(common, cc, parent);
Execution Count:1
1
4758 else -
4759 cc = compile_char1_hotpath(common, *cc, cc + 1, parent->top != ((void *)0) ? &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
4760 break;
executed: break;
Execution Count:1
1
4761 -
4762 -
4763 case OP_REF: -
4764 case OP_REFI: -
4765 if (cc[1 + 1] >= OP_CRSTAR && cc[1 + 1] <= OP_CRMINRANGE)
never evaluated: cc[1 + 1] >= OP_CRSTAR
never evaluated: cc[1 + 1] <= OP_CRMINRANGE
0
4766 cc = compile_ref_iterator_hotpath(common, cc, parent);
never executed: cc = compile_ref_iterator_hotpath(common, cc, parent);
0
4767 else -
4768 cc = compile_ref_hotpath(common, cc, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks, 1, 0);
never executed: cc = compile_ref_hotpath(common, cc, parent->top != ((void *)0) ? &parent->top->nextfallbacks : &parent->topfallbacks, 1, 0);
0
4769 break;
never executed: break;
0
4770 -
4771 case OP_RECURSE: -
4772 cc = compile_recurse_hotpath(common, cc, parent); -
4773 break;
never executed: break;
0
4774 -
4775 case OP_ASSERT: -
4776 case OP_ASSERT_NOT: -
4777 case OP_ASSERTBACK: -
4778 case OP_ASSERTBACK_NOT: -
4779 do { fallback = sljit_alloc_memory(compiler, (sizeof(assert_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; memset(fallback, 0, sizeof(assert_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return;
never executed: }
0
4780 cc = compile_assert_hotpath(common, cc, ((assert_fallback*)fallback), 0); -
4781 break;
never executed: break;
0
4782 -
4783 case OP_BRAMINZERO: -
4784 do { fallback = sljit_alloc_memory(compiler, (sizeof(braminzero_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; memset(fallback, 0, sizeof(braminzero_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return;
never executed: }
0
4785 cc = bracketend(cc + 1); -
4786 if (*(cc - 1 - 1) != OP_KETRMIN)
never evaluated: *(cc - 1 - 1) != OP_KETRMIN
0
4787 { -
4788 allocate_stack(common, 1); -
4789 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4790 }
never executed: }
0
4791 else -
4792 { -
4793 allocate_stack(common, 2); -
4794 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4795 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4796 }
never executed: }
0
4797 ((braminzero_fallback*)fallback)->hotpath = sljit_emit_label(compiler); -
4798 if (cc[1] > OP_ASSERTBACK_NOT)
never evaluated: cc[1] > OP_ASSERTBACK_NOT
0
4799 decrease_call_count(common);
never executed: decrease_call_count(common);
0
4800 break;
never executed: break;
0
4801 -
4802 case OP_ONCE: -
4803 case OP_ONCE_NC: -
4804 case OP_BRA: -
4805 case OP_CBRA: -
4806 case OP_COND: -
4807 case OP_SBRA: -
4808 case OP_SCBRA: -
4809 case OP_SCOND: -
4810 cc = compile_bracket_hotpath(common, cc, parent); -
4811 break;
executed: break;
Execution Count:15
15
4812 -
4813 case OP_BRAZERO: -
4814 if (cc[1] > OP_ASSERTBACK_NOT)
never evaluated: cc[1] > OP_ASSERTBACK_NOT
0
4815 cc = compile_bracket_hotpath(common, cc, parent);
never executed: cc = compile_bracket_hotpath(common, cc, parent);
0
4816 else -
4817 { -
4818 do { fallback = sljit_alloc_memory(compiler, (sizeof(assert_fallback))); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; memset(fallback, 0, sizeof(assert_fallback)); fallback->prev = parent->top; fallback->cc = (cc); parent->top = fallback; } while (0);
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
never evaluated: 0
never executed: return;
never executed: }
0
4819 cc = compile_assert_hotpath(common, cc, ((assert_fallback*)fallback), 0); -
4820 }
never executed: }
0
4821 break;
never executed: break;
0
4822 -
4823 case OP_BRAPOS: -
4824 case OP_CBRAPOS: -
4825 case OP_SBRAPOS: -
4826 case OP_SCBRAPOS: -
4827 case OP_BRAPOSZERO: -
4828 cc = compile_bracketpos_hotpath(common, cc, parent); -
4829 break;
never executed: break;
0
4830 -
4831 case OP_FAIL: -
4832 case OP_ACCEPT: -
4833 case OP_ASSERT_ACCEPT: -
4834 cc = compile_fail_accept_hotpath(common, cc, parent); -
4835 break;
never executed: break;
0
4836 -
4837 case OP_CLOSE: -
4838 cc = compile_close_hotpath(common, cc); -
4839 break;
never executed: break;
0
4840 -
4841 case OP_SKIPZERO: -
4842 cc = bracketend(cc + 1); -
4843 break;
never executed: break;
0
4844 -
4845 default: -
4846 do { } while (0);
never evaluated: 0
never executed: }
0
4847 return;
never executed: return;
0
4848 } -
4849 if (cc == ((void *)0))
partially evaluated: cc == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:31
0-31
4850 return;
never executed: return;
0
4851 }
executed: }
Execution Count:31
31
4852do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:31
executed: }
Execution Count:31
0-31
4853}
executed: }
Execution Count:31
31
4854static void compile_iterator_fallbackpath(compiler_common *common, struct fallback_common *current) -
4855{ -
4856struct sljit_compiler *compiler = common->compiler; -
4857pcre_uchar *cc = current->cc; -
4858pcre_uchar opcode; -
4859pcre_uchar type; -
4860int arg1 = -1, arg2 = -1; -
4861struct sljit_label *label = ((void *)0); -
4862struct sljit_jump *jump = ((void *)0); -
4863 -
4864cc = get_iterator_parameters(common, cc, &opcode, &type, &arg1, &arg2, ((void *)0)); -
4865 -
4866switch(opcode) -
4867 { -
4868 case OP_STAR: -
4869 case OP_PLUS: -
4870 case OP_UPTO: -
4871 case OP_CRRANGE: -
4872 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
4873 { -
4874 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4875 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4876 free_stack(common, 1); -
4877 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath)); -
4878 }
never executed: }
0
4879 else -
4880 { -
4881 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
4882 arg2 = 0;
executed: arg2 = 0;
Execution Count:8
8
4883 else if (opcode == OP_PLUS)
never evaluated: opcode == OP_PLUS
0
4884 arg2 = 1;
never executed: arg2 = 1;
0
4885 jump = sljit_emit_cmp(compiler, (5), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (arg2 + 1)); -
4886 sljit_emit_op2(compiler, (25), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (0x200), (1)); -
4887 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4888 skip_char_back(common); -
4889 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4890 sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath)); -
4891 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
4892 set_jumps(current->topfallbacks, sljit_emit_label(compiler));
never executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
0
4893 sljit_set_label((jump), sljit_emit_label(compiler)); -
4894 free_stack(common, 2); -
4895 }
executed: }
Execution Count:8
8
4896 break;
executed: break;
Execution Count:8
8
4897 -
4898 case OP_MINSTAR: -
4899 case OP_MINPLUS: -
4900 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4901 if (opcode == OP_MINPLUS)
never evaluated: opcode == OP_MINPLUS
0
4902 { -
4903 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4904 current->topfallbacks = ((void *)0); -
4905 }
never executed: }
0
4906 compile_char1_hotpath(common, type, cc, &current->topfallbacks); -
4907 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4908 sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath)); -
4909 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4910 free_stack(common, 1); -
4911 break;
never executed: break;
0
4912 -
4913 case OP_MINUPTO: -
4914 case OP_CRMINRANGE: -
4915 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
4916 { -
4917 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4918 current->topfallbacks = ((void *)0); -
4919 label = sljit_emit_label(compiler); -
4920 }
never executed: }
0
4921 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4922 compile_char1_hotpath(common, type, cc, &current->topfallbacks); -
4923 -
4924 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
4925 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0)); -
4926 sljit_emit_op2(compiler, (23), (1), (0), (1), (0), (0x200), (1)); -
4927 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w))), (1), (0)); -
4928 -
4929 if (opcode == OP_CRMINRANGE)
never evaluated: opcode == OP_CRMINRANGE
0
4930 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2 + 1)), (label));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg2 + 1)), (label));
0
4931 -
4932 if (opcode == OP_CRMINRANGE && arg1 == 0)
never evaluated: opcode == OP_CRMINRANGE
never evaluated: arg1 == 0
0
4933 sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath));
0
4934 else -
4935 sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 2)), (((iterator_fallback*)current)->hotpath));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (1), (0), (0x200), (arg1 + 2)), (((iterator_fallback*)current)->hotpath));
0
4936 -
4937 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4938 free_stack(common, 2); -
4939 break;
never executed: break;
0
4940 -
4941 case OP_QUERY: -
4942 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4943 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4944 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath)); -
4945 jump = sljit_emit_jump(compiler, (22)); -
4946 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4947 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4948 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4949 sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath)); -
4950 sljit_set_label((jump), sljit_emit_label(compiler)); -
4951 free_stack(common, 1); -
4952 break;
never executed: break;
0
4953 -
4954 case OP_MINQUERY: -
4955 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4956 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
4957 jump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0)); -
4958 compile_char1_hotpath(common, type, cc, &current->topfallbacks); -
4959 sljit_set_label(sljit_emit_jump(compiler, (22)), (((iterator_fallback*)current)->hotpath)); -
4960 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4961 sljit_set_label((jump), sljit_emit_label(compiler)); -
4962 free_stack(common, 1); -
4963 break;
never executed: break;
0
4964 -
4965 case OP_EXACT: -
4966 case OP_POSPLUS: -
4967 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4968 break;
never executed: break;
0
4969 -
4970 case OP_POSSTAR: -
4971 case OP_POSQUERY: -
4972 case OP_POSUPTO: -
4973 break;
never executed: break;
0
4974 -
4975 default: -
4976 do { } while (0);
never evaluated: 0
never executed: }
0
4977 break;
never executed: break;
0
4978 } -
4979}
executed: }
Execution Count:8
8
4980 -
4981static void compile_ref_iterator_fallbackpath(compiler_common *common, struct fallback_common *current) -
4982{ -
4983struct sljit_compiler *compiler = common->compiler; -
4984pcre_uchar *cc = current->cc; -
4985pcre_uchar type; -
4986 -
4987type = cc[1 + 1]; -
4988if ((type & 0x1) == 0)
never evaluated: (type & 0x1) == 0
0
4989 { -
4990 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
4991 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4992 free_stack(common, 1); -
4993 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath)); -
4994 return;
never executed: return;
0
4995 } -
4996 -
4997sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
4998sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((iterator_fallback*)current)->hotpath)); -
4999set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5000free_stack(common, 2); -
5001}
never executed: }
0
5002 -
5003static void compile_recurse_fallbackpath(compiler_common *common, struct fallback_common *current) -
5004{ -
5005struct sljit_compiler *compiler = common->compiler; -
5006 -
5007set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5008sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5009free_stack(common, 1); -
5010sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (3), (0)); -
5011}
never executed: }
0
5012 -
5013static void compile_assert_fallbackpath(compiler_common *common, struct fallback_common *current) -
5014{ -
5015struct sljit_compiler *compiler = common->compiler; -
5016pcre_uchar *cc = current->cc; -
5017pcre_uchar bra = OP_BRA; -
5018struct sljit_jump *brajump = ((void *)0); -
5019 -
5020do { } while (0);
never evaluated: 0
never executed: }
0
5021if (*cc == OP_BRAZERO)
never evaluated: *cc == OP_BRAZERO
0
5022 { -
5023 bra = *cc; -
5024 cc++; -
5025 }
never executed: }
0
5026 -
5027if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5028 { -
5029 do { } while (0);
never evaluated: 0
never executed: }
0
5030 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5031 }
never executed: }
0
5032 -
5033if (((assert_fallback*)current)->framesize < 0)
never evaluated: ((assert_fallback*)current)->framesize < 0
0
5034 { -
5035 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5036 -
5037 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5038 { -
5039 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
5040 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((assert_fallback*)current)->hotpath)); -
5041 free_stack(common, 1); -
5042 }
never executed: }
0
5043 return;
never executed: return;
0
5044 } -
5045 -
5046if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5047 { -
5048 if (*cc == OP_ASSERT_NOT || *cc == OP_ASSERTBACK_NOT)
never evaluated: *cc == OP_ASSERT_NOT
never evaluated: *cc == OP_ASSERTBACK_NOT
0
5049 { -
5050 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
5051 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((assert_fallback*)current)->hotpath)); -
5052 free_stack(common, 1); -
5053 return;
never executed: return;
0
5054 } -
5055 free_stack(common, 1); -
5056 brajump = sljit_emit_cmp(compiler, (0), (6), (0), (0x200), (0)); -
5057 }
never executed: }
0
5058 -
5059if (*cc == OP_ASSERT || *cc == OP_ASSERTBACK)
never evaluated: *cc == OP_ASSERT
never evaluated: *cc == OP_ASSERTBACK
0
5060 { -
5061 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (((assert_fallback*)current)->localptr)); -
5062 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5063 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((assert_fallback*)current)->localptr), ((0x100 | (2))), (((assert_fallback*)current)->framesize * sizeof(sljit_w))); -
5064 -
5065 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5066 }
never executed: }
0
5067else -
5068 set_jumps(current->topfallbacks, sljit_emit_label(compiler));
never executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
0
5069 -
5070if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5071 { -
5072 -
5073 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
5074 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (0x200), (0)); -
5075 sljit_set_label(sljit_emit_jump(compiler, (22)), (((assert_fallback*)current)->hotpath)); -
5076 sljit_set_label((brajump), sljit_emit_label(compiler)); -
5077 }
never executed: }
0
5078}
never executed: }
0
5079 -
5080static void compile_bracket_fallbackpath(compiler_common *common, struct fallback_common *current) -
5081{ -
5082struct sljit_compiler *compiler = common->compiler; -
5083int opcode; -
5084int offset = 0; -
5085int localptr = ((bracket_fallback*)current)->localptr; -
5086int stacksize; -
5087int count; -
5088pcre_uchar *cc = current->cc; -
5089pcre_uchar *ccbegin; -
5090pcre_uchar *ccprev; -
5091jump_list *jumplist = ((void *)0); -
5092jump_list *jumplistitem = ((void *)0); -
5093pcre_uchar bra = OP_BRA; -
5094pcre_uchar ket; -
5095assert_fallback *assert; -
5096BOOL has_alternatives; -
5097struct sljit_jump *brazero = ((void *)0); -
5098struct sljit_jump *once = ((void *)0); -
5099struct sljit_jump *cond = ((void *)0); -
5100struct sljit_label *rminlabel = ((void *)0); -
5101 -
5102if (*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
5103 { -
5104 bra = *cc; -
5105 cc++; -
5106 }
never executed: }
0
5107 -
5108opcode = *cc; -
5109ccbegin = cc; -
5110ket = *(bracketend(ccbegin) - 1 - 1); -
5111cc += (cc[1]); -
5112has_alternatives = *cc == OP_ALT; -
5113if (__builtin_expect((opcode == OP_COND), 0) || __builtin_expect((opcode == OP_SCOND), 0))
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
5114 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)
never executed: has_alternatives = (ccbegin[1 + 1] >= OP_ASSERT && ccbegin[1 + 1] <= OP_ASSERTBACK_NOT) || ((bracket_fallback*)current)->u.condfailed != ((void *)0);
0
5115if (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
5116 offset = (ccbegin[1 + 1]) << 1;
never executed: offset = (ccbegin[1 + 1]) << 1;
0
5117if (__builtin_expect((opcode == OP_COND), 0) && (*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
5118 opcode = OP_SCOND;
never executed: opcode = OP_SCOND;
0
5119if (__builtin_expect((opcode == OP_ONCE_NC), 0))
partially evaluated: __builtin_expect((opcode == OP_ONCE_NC), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5120 opcode = OP_ONCE;
never executed: opcode = OP_ONCE;
0
5121 -
5122if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5123 { -
5124 if (bra != OP_BRAZERO)
never evaluated: bra != OP_BRAZERO
0
5125 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5126 else -
5127 { -
5128 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5129 free_stack(common, 1); -
5130 brazero = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (0)); -
5131 }
never executed: }
0
5132 } -
5133else if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5134 { -
5135 if (bra != OP_BRAMINZERO)
never evaluated: bra != OP_BRAMINZERO
0
5136 { -
5137 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5138 if (opcode >= OP_SBRA || opcode == OP_ONCE)
never evaluated: opcode >= OP_SBRA
never evaluated: opcode == OP_ONCE
0
5139 { -
5140 -
5141 if (opcode != OP_ONCE || ((bracket_fallback*)current)->u.framesize < 0)
never evaluated: opcode != OP_ONCE
never evaluated: ((bracket_fallback*)current)->u.framesize < 0
0
5142 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (localptr)), (((bracket_fallback*)current)->recursivehotpath));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), ((0x100 | (11))), (localptr)), (((bracket_fallback*)current)->recursivehotpath));
0
5143 else -
5144 { -
5145 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
5146 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)); -
5147 }
never executed: }
0
5148 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
5149 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5150 }
never executed: }
0
5151 else -
5152 sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->recursivehotpath));
never executed: sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->recursivehotpath));
0
5153 } -
5154 rminlabel = sljit_emit_label(compiler); -
5155 }
never executed: }
0
5156else if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5157 { -
5158 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5159 free_stack(common, 1); -
5160 brazero = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0)); -
5161 }
never executed: }
0
5162 -
5163if (__builtin_expect((opcode == OP_ONCE), 0))
partially evaluated: __builtin_expect((opcode == OP_ONCE), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5164 { -
5165 if (((bracket_fallback*)current)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
5166 { -
5167 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
5168 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5169 }
never executed: }
0
5170 once = sljit_emit_jump(compiler, (22)); -
5171 }
never executed: }
0
5172else if (__builtin_expect((opcode == OP_COND), 0) || __builtin_expect((opcode == OP_SCOND), 0))
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
5173 { -
5174 if (has_alternatives)
never evaluated: has_alternatives
0
5175 { -
5176 -
5177 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5178 free_stack(common, 1); -
5179 -
5180 jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list)); -
5181 if (__builtin_expect((!jumplistitem), 0))
never evaluated: __builtin_expect((!jumplistitem), 0)
0
5182 return;
never executed: return;
0
5183 jumplist = jumplistitem; -
5184 jumplistitem->next = ((void *)0); -
5185 jumplistitem->jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (1)); -
5186 }
never executed: }
0
5187 }
never executed: }
0
5188else if (*cc == OP_ALT)
evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
5189 { -
5190 -
5191 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5192 free_stack(common, 1); -
5193 count = 1; -
5194 do -
5195 { -
5196 -
5197 if (jumplist != ((void *)0))
partially evaluated: jumplist != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5198 { -
5199 jumplistitem->next = sljit_alloc_memory(compiler, sizeof(jump_list)); -
5200 jumplistitem = jumplistitem->next; -
5201 }
never executed: }
0
5202 else -
5203 { -
5204 jumplistitem = sljit_alloc_memory(compiler, sizeof(jump_list)); -
5205 jumplist = jumplistitem; -
5206 }
executed: }
Execution Count:1
1
5207 -
5208 if (__builtin_expect((!jumplistitem), 0))
partially evaluated: __builtin_expect((!jumplistitem), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5209 return;
never executed: return;
0
5210 -
5211 jumplistitem->next = ((void *)0); -
5212 jumplistitem->jump = sljit_emit_cmp(compiler, (0), (1), (0), (0x200), (count++)); -
5213 cc += (cc[1]); -
5214 }
executed: }
Execution Count:1
1
5215 while (*cc == OP_ALT);
partially evaluated: *cc == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5216 -
5217 cc = ccbegin + (ccbegin[1]); -
5218 }
executed: }
Execution Count:1
1
5219 -
5220do { compile_fallbackpath(common, (current->top)); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; } while (0);
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
never executed: return;
executed: }
Execution Count:15
0-15
5221if (current->topfallbacks)
evaluated: current->topfallbacks
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:8
7-8
5222 set_jumps(current->topfallbacks, sljit_emit_label(compiler));
executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
Execution Count:7
7
5223 -
5224if (__builtin_expect((opcode == OP_COND), 0) || __builtin_expect((opcode == OP_SCOND), 0))
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
5225 { -
5226 -
5227 if (ccbegin[1 + 1] >= OP_ASSERT && ccbegin[1 + 1] <= OP_ASSERTBACK_NOT)
never evaluated: ccbegin[1 + 1] >= OP_ASSERT
never evaluated: ccbegin[1 + 1] <= OP_ASSERTBACK_NOT
0
5228 { -
5229 do { } while (0);
never evaluated: 0
never executed: }
0
5230 assert = ((bracket_fallback*)current)->u.assert; -
5231 if (assert->framesize >= 0 && (ccbegin[1 + 1] == OP_ASSERT || ccbegin[1 + 1] == OP_ASSERTBACK))
never evaluated: assert->framesize >= 0
never evaluated: ccbegin[1 + 1] == OP_ASSERT
never evaluated: ccbegin[1 + 1] == OP_ASSERTBACK
0
5232 { -
5233 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (assert->localptr)); -
5234 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5235 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (assert->localptr), ((0x100 | (2))), (assert->framesize * sizeof(sljit_w))); -
5236 }
never executed: }
0
5237 cond = sljit_emit_jump(compiler, (22)); -
5238 set_jumps(((bracket_fallback*)current)->u.assert->condfailed, sljit_emit_label(compiler)); -
5239 }
never executed: }
0
5240 else if (((bracket_fallback*)current)->u.condfailed != ((void *)0))
never evaluated: ((bracket_fallback*)current)->u.condfailed != ((void *)0)
0
5241 { -
5242 do { } while (0);
never evaluated: 0
never executed: }
0
5243 cond = sljit_emit_jump(compiler, (22)); -
5244 set_jumps(((bracket_fallback*)current)->u.condfailed, sljit_emit_label(compiler)); -
5245 }
never executed: }
0
5246 else -
5247 do { } while (0);
never evaluated: 0
never executed: }
0
5248 } -
5249 -
5250if (has_alternatives)
evaluated: has_alternatives
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
5251 { -
5252 count = 1; -
5253 do -
5254 { -
5255 current->top = ((void *)0); -
5256 current->topfallbacks = ((void *)0); -
5257 current->nextfallbacks = ((void *)0); -
5258 if (*cc == OP_ALT)
partially evaluated: *cc == OP_ALT
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5259 { -
5260 ccprev = cc + 1 + 1; -
5261 cc += (cc[1]); -
5262 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
5263 { -
5264 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
5265 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (localptr));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (localptr));
0
5266 else -
5267 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
Execution Count:1
1
5268 } -
5269 compile_hotpath(common, ccprev, cc, current); -
5270 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5271 return;
never executed: return;
0
5272 }
executed: }
Execution Count:1
1
5273 -
5274 -
5275 -
5276 if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5277 { -
5278 if (((bracket_fallback*)current)->u.framesize < 0)
never evaluated: ((bracket_fallback*)current)->u.framesize < 0
0
5279 { -
5280 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (localptr)); -
5281 -
5282 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
5283 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
never executed: sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (0));
0
5284 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
5285 { -
5286 -
5287 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (0)); -
5288 }
never executed: }
0
5289 } -
5290 else -
5291 { -
5292 sljit_emit_op2(compiler, (23), (2), (0), ((0x100 | (11))), (localptr), (0x200), ((((bracket_fallback*)current)->u.framesize + 2) * sizeof(sljit_w))); -
5293 if (ket == OP_KETRMAX)
never evaluated: ket == OP_KETRMAX
0
5294 { -
5295 -
5296 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5297 }
never executed: }
0
5298 }
never executed: }
0
5299 } -
5300 -
5301 stacksize = 0; -
5302 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5303 stacksize++;
executed: stacksize++;
Execution Count:1
1
5304 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
5305 stacksize++;
never executed: stacksize++;
0
5306 -
5307 if (stacksize > 0) {
partially evaluated: stacksize > 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5308 if (opcode != OP_ONCE || ((bracket_fallback*)current)->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
5309 allocate_stack(common, stacksize);
executed: allocate_stack(common, stacksize);
Execution Count:1
1
5310 else -
5311 { -
5312 -
5313 do { } while (0);
never evaluated: 0
never executed: }
0
5314 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), (sizeof(sljit_w))); -
5315 }
never executed: }
0
5316 } -
5317 -
5318 stacksize = 0; -
5319 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
5320 { -
5321 if (ket != OP_KET)
never evaluated: ket != OP_KET
0
5322 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
5323 else -
5324 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (0));
0
5325 stacksize++; -
5326 }
never executed: }
0
5327 -
5328 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5329 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (count++));
executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(stacksize) - 1) * (int)sizeof(sljit_w))), (0x200), (count++));
Execution Count:1
1
5330 -
5331 if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5332 { -
5333 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (11))), (localptr)); -
5334 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (6), (0)); -
5335 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 0) * sizeof(sljit_w))), (1), (0)); -
5336 }
never executed: }
0
5337 -
5338 sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->althotpath)); -
5339 -
5340 if (opcode != OP_ONCE)
partially evaluated: opcode != OP_ONCE
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5341 { -
5342 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
executed: }
Execution Count:1
0-1
5343 sljit_set_label((jumplist->jump), sljit_emit_label(compiler)); -
5344 jumplist = jumplist->next; -
5345 }
executed: }
Execution Count:1
1
5346 -
5347 do { compile_fallbackpath(common, (current->top)); if (__builtin_expect((sljit_get_compiler_error(compiler)), 0)) return; } while (0);
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
never executed: return;
executed: }
Execution Count:1
0-1
5348 if (current->topfallbacks)
partially evaluated: current->topfallbacks
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5349 set_jumps(current->topfallbacks, sljit_emit_label(compiler));
executed: set_jumps(current->topfallbacks, sljit_emit_label(compiler));
Execution Count:1
1
5350 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
executed: }
Execution Count:1
0-1
5351 }
executed: }
Execution Count:1
1
5352 while (*cc == OP_ALT);
partially evaluated: *cc == OP_ALT
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5353 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
executed: }
Execution Count:1
0-1
5354 -
5355 if (cond != ((void *)0))
partially evaluated: cond != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
5356 { -
5357 do { } while (0);
never evaluated: 0
never executed: }
0
5358 assert = ((bracket_fallback*)current)->u.assert; -
5359 if ((ccbegin[1 + 1] == OP_ASSERT_NOT || ccbegin[1 + 1] == 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
5360 -
5361 { -
5362 sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (assert->localptr)); -
5363 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5364 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (assert->localptr), ((0x100 | (2))), (assert->framesize * sizeof(sljit_w))); -
5365 }
never executed: }
0
5366 sljit_set_label((cond), sljit_emit_label(compiler)); -
5367 }
never executed: }
0
5368 -
5369 -
5370 if (localptr == 0)
partially evaluated: localptr == 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
5371 free_stack(common, 1);
executed: free_stack(common, 1);
Execution Count:1
1
5372 }
executed: }
Execution Count:1
1
5373 -
5374if (offset != 0)
partially evaluated: offset != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5375 { -
5376 -
5377 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5378 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
5379 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0)); -
5380 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (3), (0)); -
5381 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((-(2) - 1) * (int)sizeof(sljit_w)))); -
5382 free_stack(common, 3); -
5383 }
never executed: }
0
5384else 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
5385 { -
5386 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5387 free_stack(common, 1); -
5388 }
never executed: }
0
5389else if (opcode == OP_ONCE)
partially evaluated: opcode == OP_ONCE
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5390 { -
5391 cc = ccbegin + (ccbegin[1]); -
5392 if (((bracket_fallback*)current)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
5393 { -
5394 -
5395 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
5396 free_stack(common, ((bracket_fallback*)current)->u.framesize + stacksize); -
5397 }
never executed: }
0
5398 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
5399 { -
5400 -
5401 free_stack(common, 1); -
5402 }
never executed: }
0
5403 -
5404 sljit_set_label((once), sljit_emit_label(compiler)); -
5405 -
5406 if (((bracket_fallback*)current)->u.framesize >= 0)
never evaluated: ((bracket_fallback*)current)->u.framesize >= 0
0
5407 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), ((0x100 | (2))), (((bracket_fallback*)current)->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
5408 else if (ket == OP_KETRMIN)
never evaluated: ket == OP_KETRMIN
0
5409 { -
5410 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
5411 -
5412 free_stack(common, 2); -
5413 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (localptr), (1), (0)); -
5414 }
never executed: }
0
5415 } -
5416 -
5417if (ket == OP_KETRMAX)
partially evaluated: ket == OP_KETRMAX
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5418 { -
5419 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5420 sljit_set_label(sljit_emit_cmp(compiler, (1), (6), (0), (0x200), (0)), (((bracket_fallback*)current)->recursivehotpath)); -
5421 if (bra == OP_BRAZERO)
never evaluated: bra == OP_BRAZERO
0
5422 { -
5423 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
5424 sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->zerohotpath)); -
5425 sljit_set_label((brazero), sljit_emit_label(compiler)); -
5426 }
never executed: }
0
5427 free_stack(common, 1); -
5428 }
never executed: }
0
5429else if (ket == OP_KETRMIN)
partially evaluated: ket == OP_KETRMIN
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5430 { -
5431 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5432 -
5433 -
5434 -
5435 -
5436 if (opcode != OP_ONCE)
never evaluated: opcode != OP_ONCE
0
5437 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5438 sljit_set_label(sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0)), (rminlabel)); -
5439 if (opcode == OP_ONCE)
never evaluated: opcode == OP_ONCE
0
5440 free_stack(common, bra == OP_BRAMINZERO ? 2 : 1);
never executed: free_stack(common, bra == OP_BRAMINZERO ? 2 : 1);
0
5441 else if (bra == OP_BRAMINZERO)
never evaluated: bra == OP_BRAMINZERO
0
5442 free_stack(common, 1);
never executed: free_stack(common, 1);
0
5443 } -
5444else if (bra == OP_BRAZERO)
partially evaluated: bra == OP_BRAZERO
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5445 { -
5446 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5447 sljit_set_label(sljit_emit_jump(compiler, (22)), (((bracket_fallback*)current)->zerohotpath)); -
5448 sljit_set_label((brazero), sljit_emit_label(compiler)); -
5449 }
never executed: }
0
5450} -
5451 -
5452static void compile_bracketpos_fallbackpath(compiler_common *common, struct fallback_common *current) -
5453{ -
5454struct sljit_compiler *compiler = common->compiler; -
5455int offset; -
5456struct sljit_jump *jump; -
5457 -
5458if (((bracketpos_fallback*)current)->framesize < 0)
never evaluated: ((bracketpos_fallback*)current)->framesize < 0
0
5459 { -
5460 if (*current->cc == OP_CBRAPOS || *current->cc == OP_SCBRAPOS)
never evaluated: *current->cc == OP_CBRAPOS
never evaluated: *current->cc == OP_SCBRAPOS
0
5461 { -
5462 offset = (current->cc[1 + 1]) << 1; -
5463 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5464 sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (((-(1) - 1) * (int)sizeof(sljit_w)))); -
5465 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset) * sizeof(sljit_w))), (1), (0)); -
5466 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (offset + 1) * sizeof(sljit_w))), (3), (0)); -
5467 }
never executed: }
0
5468 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5469 free_stack(common, ((bracketpos_fallback*)current)->stacksize); -
5470 return;
never executed: return;
0
5471 } -
5472 -
5473sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), (((bracketpos_fallback*)current)->localptr)); -
5474add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5475 -
5476if (current->topfallbacks)
never evaluated: current->topfallbacks
0
5477 { -
5478 jump = sljit_emit_jump(compiler, (22)); -
5479 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5480 -
5481 free_stack(common, ((bracketpos_fallback*)current)->stacksize); -
5482 sljit_set_label((jump), sljit_emit_label(compiler)); -
5483 }
never executed: }
0
5484sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((bracketpos_fallback*)current)->localptr), ((0x100 | (2))), (((bracketpos_fallback*)current)->framesize * sizeof(sljit_w))); -
5485}
never executed: }
0
5486 -
5487static void compile_braminzero_fallbackpath(compiler_common *common, struct fallback_common *current) -
5488{ -
5489assert_fallback fallback; -
5490 -
5491current->top = ((void *)0); -
5492current->topfallbacks = ((void *)0); -
5493current->nextfallbacks = ((void *)0); -
5494if (current->cc[1] > OP_ASSERTBACK_NOT)
never evaluated: current->cc[1] > OP_ASSERTBACK_NOT
0
5495 { -
5496 -
5497 compile_bracket_hotpath(common, current->cc, current); -
5498 compile_bracket_fallbackpath(common, current->top); -
5499 }
never executed: }
0
5500else -
5501 { -
5502 memset(&fallback, 0, sizeof(fallback)); -
5503 fallback.common.cc = current->cc; -
5504 fallback.hotpath = ((braminzero_fallback*)current)->hotpath; -
5505 -
5506 compile_assert_hotpath(common, current->cc, &fallback, 0); -
5507 }
never executed: }
0
5508do { } while (0);
never evaluated: 0
never executed: }
0
5509}
never executed: }
0
5510 -
5511static void compile_fallbackpath(compiler_common *common, struct fallback_common *current) -
5512{ -
5513struct sljit_compiler *compiler = common->compiler; -
5514 -
5515while (current)
evaluated: current
TRUEFALSE
yes
Evaluation Count:23
yes
Evaluation Count:31
23-31
5516 { -
5517 if (current->nextfallbacks != ((void *)0))
partially evaluated: current->nextfallbacks != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:23
0-23
5518 set_jumps(current->nextfallbacks, sljit_emit_label(compiler));
never executed: set_jumps(current->nextfallbacks, sljit_emit_label(compiler));
0
5519 switch(*current->cc) -
5520 { -
5521 case OP_SET_SOM: -
5522 sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w)))); -
5523 free_stack(common, 1); -
5524 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (1), (0)); -
5525 break;
never executed: break;
0
5526 -
5527 case OP_STAR: -
5528 case OP_MINSTAR: -
5529 case OP_PLUS: -
5530 case OP_MINPLUS: -
5531 case OP_QUERY: -
5532 case OP_MINQUERY: -
5533 case OP_UPTO: -
5534 case OP_MINUPTO: -
5535 case OP_EXACT: -
5536 case OP_POSSTAR: -
5537 case OP_POSPLUS: -
5538 case OP_POSQUERY: -
5539 case OP_POSUPTO: -
5540 case OP_STARI: -
5541 case OP_MINSTARI: -
5542 case OP_PLUSI: -
5543 case OP_MINPLUSI: -
5544 case OP_QUERYI: -
5545 case OP_MINQUERYI: -
5546 case OP_UPTOI: -
5547 case OP_MINUPTOI: -
5548 case OP_EXACTI: -
5549 case OP_POSSTARI: -
5550 case OP_POSPLUSI: -
5551 case OP_POSQUERYI: -
5552 case OP_POSUPTOI: -
5553 case OP_NOTSTAR: -
5554 case OP_NOTMINSTAR: -
5555 case OP_NOTPLUS: -
5556 case OP_NOTMINPLUS: -
5557 case OP_NOTQUERY: -
5558 case OP_NOTMINQUERY: -
5559 case OP_NOTUPTO: -
5560 case OP_NOTMINUPTO: -
5561 case OP_NOTEXACT: -
5562 case OP_NOTPOSSTAR: -
5563 case OP_NOTPOSPLUS: -
5564 case OP_NOTPOSQUERY: -
5565 case OP_NOTPOSUPTO: -
5566 case OP_NOTSTARI: -
5567 case OP_NOTMINSTARI: -
5568 case OP_NOTPLUSI: -
5569 case OP_NOTMINPLUSI: -
5570 case OP_NOTQUERYI: -
5571 case OP_NOTMINQUERYI: -
5572 case OP_NOTUPTOI: -
5573 case OP_NOTMINUPTOI: -
5574 case OP_NOTEXACTI: -
5575 case OP_NOTPOSSTARI: -
5576 case OP_NOTPOSPLUSI: -
5577 case OP_NOTPOSQUERYI: -
5578 case OP_NOTPOSUPTOI: -
5579 case OP_TYPESTAR: -
5580 case OP_TYPEMINSTAR: -
5581 case OP_TYPEPLUS: -
5582 case OP_TYPEMINPLUS: -
5583 case OP_TYPEQUERY: -
5584 case OP_TYPEMINQUERY: -
5585 case OP_TYPEUPTO: -
5586 case OP_TYPEMINUPTO: -
5587 case OP_TYPEEXACT: -
5588 case OP_TYPEPOSSTAR: -
5589 case OP_TYPEPOSPLUS: -
5590 case OP_TYPEPOSQUERY: -
5591 case OP_TYPEPOSUPTO: -
5592 case OP_CLASS: -
5593 case OP_NCLASS: -
5594 -
5595 case OP_XCLASS: -
5596 -
5597 compile_iterator_fallbackpath(common, current); -
5598 break;
executed: break;
Execution Count:8
8
5599 -
5600 case OP_REF: -
5601 case OP_REFI: -
5602 compile_ref_iterator_fallbackpath(common, current); -
5603 break;
never executed: break;
0
5604 -
5605 case OP_RECURSE: -
5606 compile_recurse_fallbackpath(common, current); -
5607 break;
never executed: break;
0
5608 -
5609 case OP_ASSERT: -
5610 case OP_ASSERT_NOT: -
5611 case OP_ASSERTBACK: -
5612 case OP_ASSERTBACK_NOT: -
5613 compile_assert_fallbackpath(common, current); -
5614 break;
never executed: break;
0
5615 -
5616 case OP_ONCE: -
5617 case OP_ONCE_NC: -
5618 case OP_BRA: -
5619 case OP_CBRA: -
5620 case OP_COND: -
5621 case OP_SBRA: -
5622 case OP_SCBRA: -
5623 case OP_SCOND: -
5624 compile_bracket_fallbackpath(common, current); -
5625 break;
executed: break;
Execution Count:15
15
5626 -
5627 case OP_BRAZERO: -
5628 if (current->cc[1] > OP_ASSERTBACK_NOT)
never evaluated: current->cc[1] > OP_ASSERTBACK_NOT
0
5629 compile_bracket_fallbackpath(common, current);
never executed: compile_bracket_fallbackpath(common, current);
0
5630 else -
5631 compile_assert_fallbackpath(common, current);
never executed: compile_assert_fallbackpath(common, current);
0
5632 break;
never executed: break;
0
5633 -
5634 case OP_BRAPOS: -
5635 case OP_CBRAPOS: -
5636 case OP_SBRAPOS: -
5637 case OP_SCBRAPOS: -
5638 case OP_BRAPOSZERO: -
5639 compile_bracketpos_fallbackpath(common, current); -
5640 break;
never executed: break;
0
5641 -
5642 case OP_BRAMINZERO: -
5643 compile_braminzero_fallbackpath(common, current); -
5644 break;
never executed: break;
0
5645 -
5646 case OP_FAIL: -
5647 case OP_ACCEPT: -
5648 case OP_ASSERT_ACCEPT: -
5649 set_jumps(current->topfallbacks, sljit_emit_label(compiler)); -
5650 break;
never executed: break;
0
5651 -
5652 default: -
5653 do { } while (0);
never evaluated: 0
never executed: }
0
5654 break;
never executed: break;
0
5655 } -
5656 current = current->prev; -
5657 }
executed: }
Execution Count:23
23
5658}
executed: }
Execution Count:31
31
5659 -
5660static __inline void compile_recurse(compiler_common *common) -
5661{ -
5662struct sljit_compiler *compiler = common->compiler; -
5663pcre_uchar *cc = common->start + common->currententry->start; -
5664pcre_uchar *ccbegin = cc + 1 + 1 + (*cc == OP_BRA ? 0 : 1);
never evaluated: *cc == OP_BRA
0
5665pcre_uchar *ccend = bracketend(cc); -
5666int localsize = get_localsize(common, ccbegin, ccend); -
5667int framesize = get_framesize(common, cc, 1); -
5668int alternativesize; -
5669BOOL needsframe; -
5670fallback_common altfallback; -
5671struct sljit_jump *jump; -
5672 -
5673do { } while (0);
never evaluated: 0
never executed: }
0
5674needsframe = framesize >= 0; -
5675if (!needsframe)
never evaluated: !needsframe
0
5676 framesize = 0;
never executed: framesize = 0;
0
5677alternativesize = *(cc + (cc[1])) == OP_ALT ? 1 : 0;
never evaluated: *(cc + (cc[1])) == OP_ALT
0
5678 -
5679do { } while (0);
never evaluated: 0
never executed: }
0
5680common->currententry->entry = sljit_emit_label(compiler); -
5681set_jumps(common->currententry->calls, common->currententry->entry); -
5682 -
5683sljit_emit_fast_enter(compiler, 3, 0, 1, 5, 5, common->localsize); -
5684allocate_stack(common, localsize + framesize + alternativesize); -
5685sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(localsize + framesize + alternativesize - 1) - 1) * (int)sizeof(sljit_w))), (3), (0)); -
5686copy_locals(common, ccbegin, ccend, 1, localsize + framesize + alternativesize, framesize + alternativesize); -
5687sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((4 * sizeof(sljit_w))), (2), (0)); -
5688if (needsframe)
never evaluated: needsframe
0
5689 init_frame(common, cc, framesize + alternativesize - 1, alternativesize, 0);
never executed: init_frame(common, cc, framesize + alternativesize - 1, alternativesize, 0);
0
5690 -
5691if (alternativesize > 0)
never evaluated: alternativesize > 0
0
5692 sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))), (6), (0));
0
5693 -
5694memset(&altfallback, 0, sizeof(fallback_common)); -
5695common->acceptlabel = ((void *)0); -
5696common->accept = ((void *)0); -
5697altfallback.cc = ccbegin; -
5698cc += (cc[1]); -
5699while (1)
never evaluated: 1
0
5700 { -
5701 altfallback.top = ((void *)0); -
5702 altfallback.topfallbacks = ((void *)0); -
5703 -
5704 if (altfallback.cc != ccbegin)
never evaluated: altfallback.cc != ccbegin
0
5705 sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
never executed: sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (2))), (((-(0) - 1) * (int)sizeof(sljit_w))));
0
5706 -
5707 compile_hotpath(common, altfallback.cc, cc, &altfallback); -
5708 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
5709 return;
never executed: return;
0
5710 -
5711 add_jump(compiler, &common->accept, sljit_emit_jump(compiler, (22))); -
5712 -
5713 compile_fallbackpath(common, altfallback.top); -
5714 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
5715 return;
never executed: return;
0
5716 set_jumps(altfallback.topfallbacks, sljit_emit_label(compiler)); -
5717 -
5718 if (*cc != OP_ALT)
never evaluated: *cc != OP_ALT
0
5719 break;
never executed: break;
0
5720 -
5721 altfallback.cc = cc + 1 + 1; -
5722 cc += (cc[1]); -
5723 }
never executed: }
0
5724 -
5725sljit_emit_op1(compiler, (6), (5), (0), (0x200), (0)); -
5726jump = sljit_emit_jump(compiler, (22)); -
5727 -
5728set_jumps(common->accept, sljit_emit_label(compiler)); -
5729sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (11))), ((4 * sizeof(sljit_w)))); -
5730if (needsframe)
never evaluated: needsframe
0
5731 { -
5732 sljit_emit_op1(compiler, (6), (5), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
5733 sljit_emit_op2(compiler, (25), (2), (0), (2), (0), (0x200), ((framesize + alternativesize) * sizeof(sljit_w))); -
5734 add_jump(compiler, &common->revertframes, sljit_emit_jump(compiler, (23))); -
5735 sljit_emit_op2(compiler, (23), (2), (0), (2), (0), (0x200), ((framesize + alternativesize) * sizeof(sljit_w))); -
5736 sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (5), (0)); -
5737 }
never executed: }
0
5738sljit_emit_op1(compiler, (6), (5), (0), (0x200), (1)); -
5739 -
5740sljit_set_label((jump), sljit_emit_label(compiler)); -
5741copy_locals(common, ccbegin, ccend, 0, localsize + framesize + alternativesize, framesize + alternativesize); -
5742free_stack(common, localsize + framesize + alternativesize); -
5743sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (2))), (sizeof(sljit_w))); -
5744sljit_emit_op1(compiler, (6), (1), (0), (5), (0)); -
5745sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((4 * sizeof(sljit_w))), (3), (0)); -
5746sljit_emit_fast_return(compiler, (0x100 | (2)), 0); -
5747}
never executed: }
0
5748 -
5749 -
5750 -
5751 -
5752void -
5753_pcre16_jit_compile(const real_pcre16 *re, pcre16_extra *extra) -
5754{ -
5755struct sljit_compiler *compiler; -
5756fallback_common rootfallback; -
5757compiler_common common_data; -
5758compiler_common *common = &common_data; -
5759const pcre_uint8 *tables = re->tables; -
5760pcre_study_data *study; -
5761pcre_uchar *ccend; -
5762executable_function *function; -
5763void *executable_func; -
5764sljit_uw executable_size; -
5765struct sljit_label *leave; -
5766struct sljit_label *mainloop = ((void *)0); -
5767struct sljit_label *empty_match_found; -
5768struct sljit_label *empty_match_fallback; -
5769struct sljit_jump *alloc_error; -
5770struct sljit_jump *reqbyte_notfound = ((void *)0); -
5771struct sljit_jump *empty_match; -
5772 -
5773do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
5774study = extra->study_data; -
5775 -
5776if (!tables)
partially evaluated: !tables
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
5777 tables = _pcre16_default_tables;
executed: tables = _pcre16_default_tables;
Execution Count:15
15
5778 -
5779memset(&rootfallback, 0, sizeof(fallback_common)); -
5780rootfallback.cc = (pcre_uchar *)re + re->name_table_offset + re->name_count * re->name_entry_size; -
5781 -
5782common->compiler = ((void *)0); -
5783common->start = rootfallback.cc; -
5784common->cbraptr = (8 * sizeof(sljit_w)) + (re->top_bracket + 1) * 2 * sizeof(sljit_w); -
5785common->fcc = tables + 256; -
5786common->lcc = (sljit_w)(tables + 0); -
5787common->nltype = 0; -
5788switch(re->options & (0x00100000|0x00200000|0x00400000| 0x00500000)) -
5789 { -
5790 case 0: -
5791 -
5792 switch (10) -
5793 { -
5794 case -1: common->newline = ('\015' << 8) | '\012'; common->nltype = 1; break;
never executed: break;
0
5795 case -2: common->newline = ('\015' << 8) | '\012'; common->nltype = 2; break;
never executed: break;
0
5796 default: common->newline = 10; break;
executed: break;
Execution Count:12
12
5797 } -
5798 break;
executed: break;
Execution Count:12
12
5799 case 0x00100000: common->newline = '\015'; break;
never executed: break;
0
5800 case 0x00200000: common->newline = '\012'; break;
never executed: break;
0
5801 case 0x00100000 + -
5802 0x00200000: common->newline = ('\015' << 8) | '\012'; break;
executed: break;
Execution Count:2
2
5803 case 0x00400000: common->newline = ('\015' << 8) | '\012'; common->nltype = 1; break;
never executed: break;
0
5804 case 0x00500000: common->newline = ('\015' << 8) | '\012'; common->nltype = 2; break;
executed: break;
Execution Count:1
1
5805 default: return;
never executed: return;
0
5806 } -
5807if ((re->options & 0x00800000) != 0)
partially evaluated: (re->options & 0x00800000) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5808 common->bsr_nltype = 2;
never executed: common->bsr_nltype = 2;
0
5809else if ((re->options & 0x01000000) != 0)
partially evaluated: (re->options & 0x01000000) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5810 common->bsr_nltype = 1;
never executed: common->bsr_nltype = 1;
0
5811else -
5812 { -
5813 -
5814 -
5815 -
5816 common->bsr_nltype = 1; -
5817 -
5818 }
executed: }
Execution Count:15
15
5819common->endonly = (re->options & 0x00000020) != 0; -
5820common->ctypes = (sljit_w)(tables + (512 + 320)); -
5821common->name_table = (sljit_w)((pcre_uchar *)re + re->name_table_offset); -
5822common->name_count = re->name_count; -
5823common->name_entry_size = re->name_entry_size; -
5824common->acceptlabel = ((void *)0); -
5825common->stubs = ((void *)0); -
5826common->entries = ((void *)0); -
5827common->currententry = ((void *)0); -
5828common->accept = ((void *)0); -
5829common->calllimit = ((void *)0); -
5830common->stackalloc = ((void *)0); -
5831common->revertframes = ((void *)0); -
5832common->wordboundary = ((void *)0); -
5833common->anynewline = ((void *)0); -
5834common->hspace = ((void *)0); -
5835common->vspace = ((void *)0); -
5836common->casefulcmp = ((void *)0); -
5837common->caselesscmp = ((void *)0); -
5838common->jscript_compat = (re->options & 0x02000000) != 0; -
5839 -
5840 -
5841common->utf = (re->options & 0x00000800) != 0; -
5842 -
5843common->use_ucp = (re->options & 0x20000000) != 0; -
5844 -
5845common->utfreadchar = ((void *)0); -
5846 -
5847 -
5848 -
5849 -
5850 -
5851common->getucd = ((void *)0); -
5852 -
5853ccend = bracketend(rootfallback.cc); -
5854do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
5855common->localsize = get_localspace(common, rootfallback.cc, ccend); -
5856if (common->localsize < 0)
partially evaluated: common->localsize < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5857 return;
never executed: return;
0
5858common->localsize += common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w); -
5859if (common->localsize > 65536)
partially evaluated: common->localsize > 65536
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5860 return;
never executed: return;
0
5861common->localptrs = (int*)(pcre16_malloc)((ccend - rootfallback.cc) * sizeof(int)); -
5862if (!common->localptrs)
partially evaluated: !common->localptrs
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5863 return;
never executed: return;
0
5864memset(common->localptrs, 0, (ccend - rootfallback.cc) * sizeof(int)); -
5865set_localptrs(common, common->cbraptr + (re->top_bracket + 1) * sizeof(sljit_w), ccend); -
5866 -
5867compiler = sljit_create_compiler(); -
5868if (!compiler)
partially evaluated: !compiler
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5869 { -
5870 (pcre16_free)(common->localptrs); -
5871 return;
never executed: return;
0
5872 } -
5873common->compiler = compiler; -
5874 -
5875 -
5876sljit_emit_enter(compiler, 1, 5, 5, common->localsize); -
5877 -
5878 -
5879reset_ovector(common, (re->top_bracket + 1) * 2); -
5880if ((re->flags & 0x0040) != 0)
partially evaluated: (re->flags & 0x0040) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5881 sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((6 * sizeof(sljit_w))), (1), (0));
never executed: sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((6 * sizeof(sljit_w))), (1), (0));
0
5882 -
5883sljit_emit_op1(compiler, (6), (9), (0), (6), (0)); -
5884sljit_emit_op1(compiler, (6), (1), (0), (6), (0)); -
5885sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
5886sljit_emit_op1(compiler, (6), (7), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->end) - 0x10))); -
5887sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10))); -
5888sljit_emit_op1(compiler, (12), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->calllimit) - 0x10))); -
5889sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (3))), (((sljit_w)(&((struct sljit_stack*)0x10)->base) - 0x10))); -
5890sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (3))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10))); -
5891sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((5 * sizeof(sljit_w))), (1), (0)); -
5892 -
5893 -
5894if ((re->options & 0x00000010) == 0)
partially evaluated: (re->options & 0x00000010) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
5895 { -
5896 mainloop = mainloop_entry(common, (re->flags & 0x0800) != 0, (re->options & 0x00040000) != 0); -
5897 -
5898 if ((re->flags & 0x0010) != 0)
evaluated: (re->flags & 0x0010) != 0
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:9
6-9
5899 fast_forward_first_char(common, re->first_char, (re->flags & 0x0020) != 0, (re->options & 0x00040000) != 0);
executed: fast_forward_first_char(common, re->first_char, (re->flags & 0x0020) != 0, (re->options & 0x00040000) != 0);
Execution Count:6
6
5900 else if ((re->flags & 0x0100) != 0)
evaluated: (re->flags & 0x0100) != 0
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:4
4-5
5901 fast_forward_newline(common, (re->options & 0x00040000) != 0);
executed: fast_forward_newline(common, (re->options & 0x00040000) != 0);
Execution Count:5
5
5902 else if ((re->flags & 0x0100) == 0 && study != ((void *)0) && (study->flags & 0x0001) != 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
5903 fast_forward_start_bits(common, (sljit_uw)study->start_bits, (re->options & 0x00040000) != 0);
never executed: fast_forward_start_bits(common, (sljit_uw)study->start_bits, (re->options & 0x00040000) != 0);
0
5904 } -
5905if ((re->flags & 0x0040) != 0)
partially evaluated: (re->flags & 0x0040) != 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5906 reqbyte_notfound = search_requested_char(common, re->req_char, (re->flags & 0x0080) != 0, (re->flags & 0x0010) != 0);
never executed: reqbyte_notfound = search_requested_char(common, re->req_char, (re->flags & 0x0080) != 0, (re->flags & 0x0010) != 0);
0
5907 -
5908 -
5909sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), (6), (0)); -
5910 -
5911sljit_emit_op1(compiler, (6), (10), (0), ((0x100 | (11))), ((5 * sizeof(sljit_w)))); -
5912 -
5913compile_hotpath(common, rootfallback.cc, ccend, &rootfallback); -
5914if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5915 { -
5916 sljit_free_compiler(compiler); -
5917 (pcre16_free)(common->localptrs); -
5918 return;
never executed: return;
0
5919 } -
5920 -
5921empty_match = sljit_emit_cmp(compiler, (0), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
5922empty_match_found = sljit_emit_label(compiler); -
5923 -
5924common->acceptlabel = sljit_emit_label(compiler); -
5925if (common->accept != ((void *)0))
partially evaluated: common->accept != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5926 set_jumps(common->accept, common->acceptlabel);
never executed: set_jumps(common->accept, common->acceptlabel);
0
5927 -
5928 -
5929copy_ovector(common, re->top_bracket + 1); -
5930leave = sljit_emit_label(compiler); -
5931sljit_emit_return(compiler, 6, 1, 0); -
5932 -
5933empty_match_fallback = sljit_emit_label(compiler); -
5934compile_fallbackpath(common, rootfallback.top); -
5935if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
partially evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5936 { -
5937 sljit_free_compiler(compiler); -
5938 (pcre16_free)(common->localptrs); -
5939 return;
never executed: return;
0
5940 } -
5941 -
5942do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
5943 -
5944 -
5945sljit_emit_op1(compiler, (6), (6), (0), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w)))); -
5946 -
5947if ((re->options & 0x00000010) == 0)
partially evaluated: (re->options & 0x00000010) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
5948 { -
5949 if ((re->options & 0x00040000) == 0)
partially evaluated: (re->options & 0x00040000) == 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
5950 { -
5951 if (study != ((void *)0) && 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
5952 { -
5953 sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((study->minlength) << 1))); -
5954 sljit_set_label(sljit_emit_cmp(compiler, (5), (1), (0), (7), (0)), (mainloop)); -
5955 }
never executed: }
0
5956 else -
5957 sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)), (mainloop));
executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), (7), (0)), (mainloop));
Execution Count:15
15
5958 } -
5959 else -
5960 { -
5961 if (study != ((void *)0) && study->minlength > 1)
never evaluated: study != ((void *)0)
never evaluated: study->minlength > 1
0
5962 { -
5963 sljit_emit_op2(compiler, (23), (1), (0), (6), (0), (0x200), (((study->minlength) << 1))); -
5964 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (1), (0), (7), (0)); -
5965 sljit_emit_cond_value(compiler, (6), (3), (0), (4)); -
5966 sljit_emit_op2(compiler, (25 | 0x0800), (0), (0), (6), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))); -
5967 sljit_emit_cond_value(compiler, (29 | 0x0200), (3), (0), (3)); -
5968 sljit_set_label(sljit_emit_jump(compiler, (0)), (mainloop)); -
5969 }
never executed: }
0
5970 else -
5971 sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))), (mainloop));
never executed: sljit_set_label(sljit_emit_cmp(compiler, (2), (6), (0), ((0x100 | (11))), ((7 * sizeof(sljit_w)))), (mainloop));
0
5972 } -
5973 } -
5974 -
5975if (reqbyte_notfound != ((void *)0))
partially evaluated: reqbyte_notfound != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5976 sljit_set_label((reqbyte_notfound), sljit_emit_label(compiler));
never executed: sljit_set_label((reqbyte_notfound), sljit_emit_label(compiler));
0
5977 -
5978sljit_emit_op1(compiler, (6), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (0) * sizeof(sljit_w))), ((0x100 | (11))), (((8 * sizeof(sljit_w)) + (1) * sizeof(sljit_w)))); -
5979sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-1))); -
5980sljit_set_label(sljit_emit_jump(compiler, (22)), (leave)); -
5981 -
5982flush_stubs(common); -
5983 -
5984sljit_set_label((empty_match), sljit_emit_label(compiler)); -
5985sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
5986sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty) - 0x10))); -
5987sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (0x200), (0)), (empty_match_fallback)); -
5988sljit_emit_op1(compiler, (7), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->notempty_atstart) - 0x10))); -
5989sljit_set_label(sljit_emit_cmp(compiler, (0), (3), (0), (0x200), (0)), (empty_match_found)); -
5990sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->str) - 0x10))); -
5991sljit_set_label(sljit_emit_cmp(compiler, (1), (3), (0), (6), (0)), (empty_match_found)); -
5992sljit_set_label(sljit_emit_jump(compiler, (22)), (empty_match_fallback)); -
5993 -
5994common->currententry = common->entries; -
5995while (common->currententry != ((void *)0))
partially evaluated: common->currententry != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
5996 { -
5997 -
5998 compile_recurse(common); -
5999 if (__builtin_expect((sljit_get_compiler_error(compiler)), 0))
never evaluated: __builtin_expect((sljit_get_compiler_error(compiler)), 0)
0
6000 { -
6001 sljit_free_compiler(compiler); -
6002 (pcre16_free)(common->localptrs); -
6003 return;
never executed: return;
0
6004 } -
6005 flush_stubs(common); -
6006 common->currententry = common->currententry->next; -
6007 }
never executed: }
0
6008 -
6009 -
6010 -
6011set_jumps(common->stackalloc, sljit_emit_label(compiler)); -
6012 -
6013sljit_emit_fast_enter(compiler, (0x100 | (11)), (0 * sizeof(sljit_w)), 1, 5, 5, common->localsize); -
6014sljit_emit_op1(compiler, (6), ((0x100 | (11))), ((1 * sizeof(sljit_w))), (3), (0)); -
6015sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
6016sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10))); -
6017sljit_emit_op1(compiler, (6), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->top) - 0x10)), (2), (0)); -
6018sljit_emit_op2(compiler, (23), (3), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10)), (0x200), (8192)); -
6019 -
6020sljit_emit_ijump(compiler, 26, 0x200, ((sljit_w)sljit_stack_resize)); -
6021alloc_error = sljit_emit_cmp(compiler, (1), (1), (0), (0x200), (0)); -
6022sljit_emit_op1(compiler, (6), (1), (0), (9), (0)); -
6023sljit_emit_op1(compiler, (6), (1), (0), ((0x100 | (1))), (((sljit_w)(&((jit_arguments*)0x10)->stack) - 0x10))); -
6024sljit_emit_op1(compiler, (6), (2), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->top) - 0x10))); -
6025sljit_emit_op1(compiler, (6), (8), (0), ((0x100 | (1))), (((sljit_w)(&((struct sljit_stack*)0x10)->limit) - 0x10))); -
6026sljit_emit_op1(compiler, (6), (3), (0), ((0x100 | (11))), ((1 * sizeof(sljit_w)))); -
6027sljit_emit_fast_return(compiler, (0x100 | (11)), (0 * sizeof(sljit_w))); -
6028 -
6029 -
6030sljit_set_label((alloc_error), sljit_emit_label(compiler)); -
6031 -
6032sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-27))); -
6033sljit_set_label(sljit_emit_jump(compiler, (22)), (leave)); -
6034 -
6035 -
6036set_jumps(common->calllimit, sljit_emit_label(compiler)); -
6037sljit_emit_op1(compiler, (6), (1), (0), (0x200), ((-8))); -
6038sljit_set_label(sljit_emit_jump(compiler, (22)), (leave)); -
6039 -
6040if (common->revertframes != ((void *)0))
partially evaluated: common->revertframes != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6041 { -
6042 set_jumps(common->revertframes, sljit_emit_label(compiler)); -
6043 do_revertframes(common); -
6044 }
never executed: }
0
6045if (common->wordboundary != ((void *)0))
evaluated: common->wordboundary != ((void *)0)
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:14
1-14
6046 { -
6047 set_jumps(common->wordboundary, sljit_emit_label(compiler)); -
6048 check_wordboundary(common); -
6049 }
executed: }
Execution Count:1
1
6050if (common->anynewline != ((void *)0))
partially evaluated: common->anynewline != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6051 { -
6052 set_jumps(common->anynewline, sljit_emit_label(compiler)); -
6053 check_anynewline(common); -
6054 }
never executed: }
0
6055if (common->hspace != ((void *)0))
partially evaluated: common->hspace != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6056 { -
6057 set_jumps(common->hspace, sljit_emit_label(compiler)); -
6058 check_hspace(common); -
6059 }
never executed: }
0
6060if (common->vspace != ((void *)0))
partially evaluated: common->vspace != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6061 { -
6062 set_jumps(common->vspace, sljit_emit_label(compiler)); -
6063 check_vspace(common); -
6064 }
never executed: }
0
6065if (common->casefulcmp != ((void *)0))
partially evaluated: common->casefulcmp != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6066 { -
6067 set_jumps(common->casefulcmp, sljit_emit_label(compiler)); -
6068 do_casefulcmp(common); -
6069 }
never executed: }
0
6070if (common->caselesscmp != ((void *)0))
partially evaluated: common->caselesscmp != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6071 { -
6072 set_jumps(common->caselesscmp, sljit_emit_label(compiler)); -
6073 do_caselesscmp(common); -
6074 }
never executed: }
0
6075 -
6076if (common->utfreadchar != ((void *)0))
evaluated: common->utfreadchar != ((void *)0)
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:8
7-8
6077 { -
6078 set_jumps(common->utfreadchar, sljit_emit_label(compiler)); -
6079 do_utfreadchar(common); -
6080 }
executed: }
Execution Count:7
7
6081if (common->getucd != ((void *)0))
partially evaluated: common->getucd != ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6082 { -
6083 set_jumps(common->getucd, sljit_emit_label(compiler)); -
6084 do_getucd(common); -
6085 }
never executed: }
0
6086 -
6087 -
6088(pcre16_free)(common->localptrs); -
6089executable_func = sljit_generate_code(compiler); -
6090executable_size = sljit_get_generated_code_size(compiler); -
6091sljit_free_compiler(compiler); -
6092if (executable_func == ((void *)0))
partially evaluated: executable_func == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6093 return;
never executed: return;
0
6094 -
6095function = (pcre16_malloc)(sizeof(executable_function)); -
6096if (function == ((void *)0))
partially evaluated: function == ((void *)0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
6097 { -
6098 -
6099 -
6100 sljit_free_code(executable_func); -
6101 return;
never executed: return;
0
6102 } -
6103 -
6104function->executable_func = executable_func; -
6105function->executable_size = executable_size; -
6106function->callback = ((void *)0); -
6107function->userdata = ((void *)0); -
6108extra->executable_jit = function; -
6109extra->flags |= 0x0040; -
6110}
executed: }
Execution Count:15
15
6111 -
6112static int jit_machine_stack_exec(jit_arguments *arguments, executable_function *function) -
6113{ -
6114union { -
6115 void* executable_func; -
6116 jit_function call_executable_func; -
6117} convert_executable_func; -
6118pcre_uint8 local_area[32768]; -
6119struct sljit_stack local_stack; -
6120 -
6121local_stack.top = (sljit_w)&local_area; -
6122local_stack.base = local_stack.top; -
6123local_stack.limit = local_stack.base + 32768; -
6124local_stack.max_limit = local_stack.limit; -
6125arguments->stack = &local_stack; -
6126convert_executable_func.executable_func = function->executable_func; -
6127return convert_executable_func.call_executable_func(arguments);
executed: return convert_executable_func.call_executable_func(arguments);
Execution Count:172
172
6128} -
6129 -
6130int -
6131_pcre16_jit_exec(const real_pcre16 *re, void *executable_func, -
6132 const pcre_uchar *subject, int length, int start_offset, int options, -
6133 int match_limit, int *offsets, int offsetcount) -
6134{ -
6135executable_function *function = (executable_function*)executable_func; -
6136union { -
6137 void* executable_func; -
6138 jit_function call_executable_func; -
6139} convert_executable_func; -
6140jit_arguments arguments; -
6141int maxoffsetcount; -
6142int retval; -
6143 -
6144 -
6145arguments.stack = ((void *)0); -
6146arguments.str = subject + start_offset; -
6147arguments.begin = subject; -
6148arguments.end = subject + length; -
6149arguments.calllimit = match_limit; -
6150arguments.notbol = (options & 0x00000080) != 0; -
6151arguments.noteol = (options & 0x00000100) != 0; -
6152arguments.notempty = (options & 0x00000400) != 0; -
6153arguments.notempty_atstart = (options & 0x10000000) != 0; -
6154arguments.offsets = offsets; -
6155 -
6156 -
6157 -
6158 -
6159 -
6160 -
6161 -
6162if (offsetcount != 2)
partially evaluated: offsetcount != 2
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6163 offsetcount = ((offsetcount - (offsetcount % 3)) * 2) / 3;
executed: offsetcount = ((offsetcount - (offsetcount % 3)) * 2) / 3;
Execution Count:172
172
6164maxoffsetcount = (re->top_bracket + 1) * 2; -
6165if (offsetcount > maxoffsetcount)
partially evaluated: offsetcount > maxoffsetcount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:172
0-172
6166 offsetcount = maxoffsetcount;
never executed: offsetcount = maxoffsetcount;
0
6167arguments.offsetcount = offsetcount; -
6168 -
6169if (function->callback)
partially evaluated: function->callback
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6170 arguments.stack = (struct sljit_stack*)function->callback(function->userdata);
executed: arguments.stack = (struct sljit_stack*)function->callback(function->userdata);
Execution Count:172
172
6171else -
6172 arguments.stack = (struct sljit_stack*)function->userdata;
never executed: arguments.stack = (struct sljit_stack*)function->userdata;
0
6173 -
6174if (arguments.stack == ((void *)0))
partially evaluated: arguments.stack == ((void *)0)
TRUEFALSE
yes
Evaluation Count:172
no
Evaluation Count:0
0-172
6175 retval = jit_machine_stack_exec(&arguments, function);
executed: retval = jit_machine_stack_exec(&arguments, function);
Execution Count:172
172
6176else -
6177 { -
6178 convert_executable_func.executable_func = function->executable_func; -
6179 retval = convert_executable_func.call_executable_func(&arguments); -
6180 }
never executed: }
0
6181 -
6182if (retval * 2 > offsetcount)
partially evaluated: retval * 2 > offsetcount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:172
0-172
6183 retval = 0;
never executed: retval = 0;
0
6184return retval;
executed: return retval;
Execution Count:172
172
6185} -
6186 -
6187void -
6188_pcre16_jit_free(void *executable_func) -
6189{ -
6190executable_function *function = (executable_function*)executable_func; -
6191sljit_free_code(function->executable_func); -
6192(pcre16_free)(function); -
6193}
executed: }
Execution Count:15
15
6194 -
6195int -
6196_pcre16_jit_get_size(void *executable_func) -
6197{ -
6198return ((executable_function*)executable_func)->executable_size;
never executed: return ((executable_function*)executable_func)->executable_size;
0
6199} -
6200 -
6201const char* -
6202_pcre16_jit_get_target(void) -
6203{ -
6204return sljit_get_platform_name();
never executed: return sljit_get_platform_name();
0
6205} -
6206 -
6207 -
6208 -
6209 -
6210 -
6211extern pcre16_jit_stack * -
6212pcre16_jit_stack_alloc(int startsize, int maxsize) -
6213 -
6214{ -
6215if (startsize < 1 || maxsize < 1)
never evaluated: startsize < 1
never evaluated: maxsize < 1
0
6216 return ((void *)0);
never executed: return ((void *)0);
0
6217if (startsize > maxsize)
never evaluated: startsize > maxsize
0
6218 startsize = maxsize;
never executed: startsize = maxsize;
0
6219startsize = (startsize + 8192 - 1) & ~(8192 - 1); -
6220maxsize = (maxsize + 8192 - 1) & ~(8192 - 1); -
6221return (pcre16_jit_stack*)sljit_allocate_stack(startsize, maxsize);
never executed: return (pcre16_jit_stack*)sljit_allocate_stack(startsize, maxsize);
0
6222} -
6223 -
6224 -
6225 -
6226 -
6227 -
6228extern void -
6229pcre16_jit_stack_free(pcre16_jit_stack *stack) -
6230 -
6231{ -
6232sljit_free_stack((struct sljit_stack*)stack); -
6233}
never executed: }
0
6234 -
6235 -
6236 -
6237 -
6238 -
6239extern void -
6240pcre16_assign_jit_stack(pcre16_extra *extra, pcre16_jit_callback callback, void *userdata) -
6241 -
6242{ -
6243executable_function *function; -
6244if (extra != ((void *)0) &&
partially evaluated: extra != ((void *)0)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6245 (extra->flags & 0x0040) != 0 &&
partially evaluated: (extra->flags & 0x0040) != 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6246 extra->executable_jit != ((void *)0))
partially evaluated: extra->executable_jit != ((void *)0)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
6247 { -
6248 function = (executable_function*)extra->executable_jit; -
6249 function->callback = callback; -
6250 function->userdata = userdata; -
6251 }
executed: }
Execution Count:15
15
6252}
executed: }
Execution Count:15
15
6253 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial