Lines Matching refs:backtracks
299 jump_list *backtracks; member
2768 static void detect_partial_match(compiler_common *common, jump_list **backtracks) in detect_partial_match() argument
2775 add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); in detect_partial_match()
2781 add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(SLJIT_SP), common->start_used_pt… in detect_partial_match()
2785 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in detect_partial_match()
3118 static void check_newlinechar(compiler_common *common, int nltype, jump_list **backtracks, BOOL jum… in check_newlinechar() argument
3127 add_jump(compiler, backtracks, JUMP(jumpifmatch ? SLJIT_NOT_ZERO : SLJIT_ZERO)); in check_newlinechar()
3133 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_CR)); in check_newlinechar()
3134 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL)); in check_newlinechar()
3139 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL)); in check_newlinechar()
3146 …add_jump(compiler, backtracks, CMP(jumpifmatch ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM… in check_newlinechar()
4657 …s(compiler_common *common, const sljit_u8 *bits, BOOL nclass, BOOL invert, jump_list **backtracks);
4942 …es(compiler_common *common, const sljit_u8 *bits, BOOL nclass, BOOL invert, jump_list **backtracks) in check_class_ranges() argument
4991 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in check_class_ranges()
5000 …add_jump(compiler, backtracks, CMP(bit == 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM… in check_class_ranges()
5007 …add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM… in check_class_ranges()
5010 …add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, r… in check_class_ranges()
5016 add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2])); in check_class_ranges()
5020 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0])); in check_class_ranges()
5023 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0])); in check_class_ranges()
5027 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[0])); in check_class_ranges()
5031 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1])); in check_class_ranges()
5034 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1])); in check_class_ranges()
5048 …add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_LESS : SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM… in check_class_ranges()
5051 …add_jump(compiler, backtracks, CMP(bit != 0 ? SLJIT_EQUAL : SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, r… in check_class_ranges()
5061 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0])); in check_class_ranges()
5065 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[0])); in check_class_ranges()
5070 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[2])); in check_class_ranges()
5073 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[2] - i)); in check_class_ranges()
5078 …add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, ranges[3] - ranges[0])… in check_class_ranges()
5082 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[1])); in check_class_ranges()
5085 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, ranges[1] - ranges[0])); in check_class_ranges()
5301 compare_context *context, jump_list **backtracks) in byte_sequence_compare() argument
5401 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.a… in byte_sequence_compare()
5407 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.a… in byte_sequence_compare()
5414 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, context->c.a… in byte_sequence_compare()
5436 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc | otherc… in byte_sequence_compare()
5439 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc)); in byte_sequence_compare()
5475 …(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtracks, BOOL check_str_…
5477 …ic void compile_xclass_matchingpath(compiler_common *common, PCRE2_SPTR cc, jump_list **backtracks) in compile_xclass_matchingpath() argument
5481 jump_list **list = (cc[0] & XCL_NOT) == 0 ? &found : backtracks; in compile_xclass_matchingpath()
5560 compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE); in compile_xclass_matchingpath()
5561 if (list == backtracks) in compile_xclass_matchingpath()
5562 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_xclass_matchingpath()
5622 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_xclass_matchingpath()
5630 …add_jump(compiler, (cc[-1] & XCL_NOT) == 0 ? backtracks : &found, CMP(SLJIT_GREATER, TMP2, 0, SLJI… in compile_xclass_matchingpath()
5706 invertcmp = (compares == 0 && list != backtracks); in compile_xclass_matchingpath()
5710 add_jump(compiler, compares > 0 ? list : backtracks, jump); in compile_xclass_matchingpath()
5751 invertcmp = (compares == 0 && list != backtracks); in compile_xclass_matchingpath()
6016 add_jump(compiler, compares > 0 ? list : backtracks, jump); in compile_xclass_matchingpath()
6028 …tion_matchingpath(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtracks) in compile_simple_assertion_matchingpath() argument
6042 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, TMP1, 0)); in compile_simple_assertion_matchingpath()
6048 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, TMP1, 0)); in compile_simple_assertion_matchingpath()
6054 add_jump(compiler, backtracks, JUMP(type == OP_NOT_WORD_BOUNDARY ? SLJIT_NOT_ZERO : SLJIT_ZERO)); in compile_simple_assertion_matchingpath()
6065 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6073 add_jump(compiler, backtracks, JUMP(SLJIT_NOT_EQUAL)); in compile_simple_assertion_matchingpath()
6075 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_simple_assertion_matchingpath()
6079 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0… in compile_simple_assertion_matchingpath()
6080 … add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff)); in compile_simple_assertion_matchingpath()
6086 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6087 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline)); in compile_simple_assertion_matchingpath()
6096 add_jump(compiler, backtracks, JUMP(SLJIT_LESS)); in compile_simple_assertion_matchingpath()
6100 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_simple_assertion_matchingpath()
6106 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP2, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6107 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, CHAR_NL)); in compile_simple_assertion_matchingpath()
6113 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, STR_PTR, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6115 add_jump(compiler, backtracks, JUMP(SLJIT_ZERO)); in compile_simple_assertion_matchingpath()
6126 add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6133 add_jump(compiler, backtracks, JUMP(SLJIT_NOT_ZERO)); in compile_simple_assertion_matchingpath()
6136 compile_simple_assertion_matchingpath(common, OP_EODN, cc, backtracks); in compile_simple_assertion_matchingpath()
6139 add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6148 add_jump(compiler, backtracks, JUMP(SLJIT_NOT_ZERO)); in compile_simple_assertion_matchingpath()
6158 add_jump(compiler, backtracks, CMP(SLJIT_GREATER, TMP2, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6163 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0… in compile_simple_assertion_matchingpath()
6165 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_simple_assertion_matchingpath()
6170 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0… in compile_simple_assertion_matchingpath()
6171 … add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff)); in compile_simple_assertion_matchingpath()
6176 check_newlinechar(common, common->nltype, backtracks, FALSE); in compile_simple_assertion_matchingpath()
6184 add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, TMP1, 0)); in compile_simple_assertion_matchingpath()
6186 add_jump(compiler, backtracks, JUMP(SLJIT_NOT_ZERO)); in compile_simple_assertion_matchingpath()
6194 add_jump(compiler, backtracks, JUMP(SLJIT_NOT_ZERO)); in compile_simple_assertion_matchingpath()
6199 add_jump(compiler, backtracks, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); in compile_simple_assertion_matchingpath()
6204 add_jump(compiler, backtracks, CMP(SLJIT_LESS, TMP2, 0, TMP1, 0)); in compile_simple_assertion_matchingpath()
6207 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, (common->newline >> 8) & 0… in compile_simple_assertion_matchingpath()
6208 … add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, common->newline & 0xff)); in compile_simple_assertion_matchingpath()
6214 check_newlinechar(common, common->nltype, backtracks, FALSE); in compile_simple_assertion_matchingpath()
6230 add_jump(compiler, backtracks, CMP(SLJIT_LESS_EQUAL, STR_PTR, 0, TMP3, 0)); in compile_simple_assertion_matchingpath()
6240 add_jump(compiler, backtracks, CMP(SLJIT_LESS, STR_PTR, 0, TMP1, 0)); in compile_simple_assertion_matchingpath()
6249 …(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtracks, BOOL check_str_… in compile_char1_matchingpath() argument
6268 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6277 add_jump(compiler, backtracks, JUMP(type == OP_DIGIT ? SLJIT_ZERO : SLJIT_NOT_ZERO)); in compile_char1_matchingpath()
6283 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6291 add_jump(compiler, backtracks, JUMP(type == OP_WHITESPACE ? SLJIT_ZERO : SLJIT_NOT_ZERO)); in compile_char1_matchingpath()
6297 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6305 add_jump(compiler, backtracks, JUMP(type == OP_WORDCHAR ? SLJIT_ZERO : SLJIT_NOT_ZERO)); in compile_char1_matchingpath()
6310 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6322 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, common->newline & 0xff)); in compile_char1_matchingpath()
6327 check_newlinechar(common, common->nltype, backtracks, TRUE); in compile_char1_matchingpath()
6332 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6361 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6374 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6375 compile_xclass_matchingpath(common, propdata, backtracks); in compile_char1_matchingpath()
6381 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6395 check_newlinechar(common, common->bsr_nltype, backtracks, FALSE); in compile_char1_matchingpath()
6404 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6407 add_jump(compiler, backtracks, JUMP(type == OP_NOT_HSPACE ? SLJIT_NOT_ZERO : SLJIT_ZERO)); in compile_char1_matchingpath()
6413 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6416 add_jump(compiler, backtracks, JUMP(type == OP_NOT_VSPACE ? SLJIT_NOT_ZERO : SLJIT_ZERO)); in compile_char1_matchingpath()
6422 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6469 add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, STR_END, 0)); in compile_char1_matchingpath()
6476 return byte_sequence_compare(common, type == OP_CHARI, cc, &context, backtracks); in compile_char1_matchingpath()
6480 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6493 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c)); in compile_char1_matchingpath()
6502 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, c | bit)); in compile_char1_matchingpath()
6506 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP1, 0, SLJIT_IMM, oc)); in compile_char1_matchingpath()
6513 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6525 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c)); in compile_char1_matchingpath()
6530 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, c | 0x20)); in compile_char1_matchingpath()
6553 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c)); in compile_char1_matchingpath()
6563 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c | bit)); in compile_char1_matchingpath()
6567 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, c)); in compile_char1_matchingpath()
6568 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, oc)); in compile_char1_matchingpath()
6576 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6585 if (check_class_ranges(common, (const sljit_u8 *)cc, type == OP_NCLASS, FALSE, backtracks)) in compile_char1_matchingpath()
6595 add_jump(compiler, backtracks, jump[0]); in compile_char1_matchingpath()
6603 add_jump(compiler, backtracks, jump[0]); in compile_char1_matchingpath()
6613 add_jump(compiler, backtracks, JUMP(SLJIT_ZERO)); in compile_char1_matchingpath()
6624 detect_partial_match(common, backtracks); in compile_char1_matchingpath()
6625 compile_xclass_matchingpath(common, cc + LINK_SIZE, backtracks); in compile_char1_matchingpath()
6633 …harn_matchingpath(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, jump_list **backtracks) in compile_charn_matchingpath() argument
6685 add_jump(compiler, backtracks, CMP(SLJIT_GREATER, STR_PTR, 0, STR_END, 0)); in compile_charn_matchingpath()
6691 …do cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, backtracks); while (conte… in compile_charn_matchingpath()
6696 return compile_char1_matchingpath(common, *cc, cc + 1, backtracks, TRUE); in compile_charn_matchingpath()
6731 static void compile_dnref_search(compiler_common *common, PCRE2_SPTR cc, jump_list **backtracks) in compile_dnref_search() argument
6755 if (backtracks != NULL && !common->unset_backref) in compile_dnref_search()
6756 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset), TMP1, 0)); in compile_dnref_search()
6761 static void compile_ref_matchingpath(compiler_common *common, PCRE2_SPTR cc, jump_list **backtracks… in compile_ref_matchingpath() argument
6776 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1))); in compile_ref_matchingpath()
6800 add_jump(compiler, backtracks, CMP(SLJIT_LESS_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 1)); in compile_ref_matchingpath()
6803 add_jump(compiler, backtracks, CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0)); in compile_ref_matchingpath()
6806 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_ref_matchingpath()
6825 add_jump(compiler, backtracks, partial); in compile_ref_matchingpath()
6828 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0)); in compile_ref_matchingpath()
6840 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0)); in compile_ref_matchingpath()
6843 add_jump(compiler, backtracks, JUMP(SLJIT_JUMP)); in compile_ref_matchingpath()
6851 add_jump(compiler, backtracks, jump); in compile_ref_matchingpath()
8905 …e_char1_matchingpath(common, type, cc, &BACKTRACK_AS(char_iterator_backtrack)->u.backtracks, TRUE); in compile_iterator_matchingpath()
9116 …e_char1_matchingpath(common, type, cc, &BACKTRACK_AS(char_iterator_backtrack)->u.backtracks, TRUE); in compile_iterator_matchingpath()
9676 set_jumps(CURRENT_AS(char_iterator_backtrack)->u.backtracks, LABEL()); in compile_iterator_backtrackingpath()
9744 set_jumps(CURRENT_AS(char_iterator_backtrack)->u.backtracks, LABEL()); in compile_iterator_backtrackingpath()