Lines Matching refs:cc

246   PCRE2_SPTR cc;  member
595 #define PRIVATE_DATA(cc) (common->private_data_ptrs[(cc) - common->start]) argument
837 static PCRE2_SPTR bracketend(PCRE2_SPTR cc) in bracketend() argument
839 SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NA) || (*cc >= OP_ONCE && *cc <= OP_SCOND)); in bracketend()
840 do cc += GET(cc, 1); while (*cc == OP_ALT); in bracketend()
841 SLJIT_ASSERT(*cc >= OP_KET && *cc <= OP_KETRPOS); in bracketend()
842 cc += 1 + LINK_SIZE; in bracketend()
843 return cc; in bracketend()
846 static int no_alternatives(PCRE2_SPTR cc) in no_alternatives() argument
849 SLJIT_ASSERT((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NA) || (*cc >= OP_ONCE && *cc <= OP_SCOND)); in no_alternatives()
852 cc += GET(cc, 1); in no_alternatives()
855 while (*cc == OP_ALT); in no_alternatives()
856 SLJIT_ASSERT(*cc >= OP_KET && *cc <= OP_KETRPOS); in no_alternatives()
872 static PCRE2_SPTR next_opcode(compiler_common *common, PCRE2_SPTR cc) in next_opcode() argument
875 switch(*cc) in next_opcode()
966 return cc + PRIV(OP_lengths)[*cc]; in next_opcode()
1024 cc += PRIV(OP_lengths)[*cc]; in next_opcode()
1026 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in next_opcode()
1028 return cc; in next_opcode()
1044 return cc + PRIV(OP_lengths)[*cc] - 1; in next_opcode()
1050 return cc + 1; in next_opcode()
1053 return cc + GET(cc, 1 + 2*LINK_SIZE); in next_opcode()
1057 return cc + GET(cc, 1); in next_opcode()
1065 return cc + 1 + 2 + cc[1]; in next_opcode()
1073 static BOOL check_opcode_types(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend) in check_opcode_types() argument
1077 PCRE2_SPTR assert_back_end = cc - 1; in check_opcode_types()
1078 PCRE2_SPTR assert_na_end = cc - 1; in check_opcode_types()
1081 while (cc < ccend) in check_opcode_types()
1083 switch(*cc) in check_opcode_types()
1088 cc += 1; in check_opcode_types()
1101 common->optimized_cbracket[GET2(cc, 1)] = 0; in check_opcode_types()
1102 cc += 1 + IMM2_SIZE; in check_opcode_types()
1107 slot = bracketend(cc); in check_opcode_types()
1110 cc += 1 + LINK_SIZE; in check_opcode_types()
1115 common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] = 0; in check_opcode_types()
1116 cc += 1 + LINK_SIZE + IMM2_SIZE; in check_opcode_types()
1123 if (cc[1 + LINK_SIZE] == OP_CALLOUT || cc[1 + LINK_SIZE] == OP_CALLOUT_STR) in check_opcode_types()
1125 cc += 1 + LINK_SIZE; in check_opcode_types()
1129 common->optimized_cbracket[GET2(cc, 1)] = 0; in check_opcode_types()
1130 cc += 1 + IMM2_SIZE; in check_opcode_types()
1136 count = GET2(cc, 1 + IMM2_SIZE); in check_opcode_types()
1137 slot = common->name_table + GET2(cc, 1) * common->name_entry_size; in check_opcode_types()
1143 cc += 1 + 2 * IMM2_SIZE; in check_opcode_types()
1153 cc += 1 + LINK_SIZE; in check_opcode_types()
1163 cc += (*cc == OP_CALLOUT) ? PRIV(OP_lengths)[OP_CALLOUT] : GET(cc, 1 + 2*LINK_SIZE); in check_opcode_types()
1167 slot = bracketend(cc); in check_opcode_types()
1170 cc += 1 + LINK_SIZE; in check_opcode_types()
1180 if (cc < assert_na_end) in check_opcode_types()
1189 cc += 1 + 2 + cc[1]; in check_opcode_types()
1195 cc += 1; in check_opcode_types()
1199 if (cc < assert_back_end) in check_opcode_types()
1201 if (cc < assert_na_end) in check_opcode_types()
1203 cc += 1; in check_opcode_types()
1209 if (cc < assert_back_end) in check_opcode_types()
1211 if (cc < assert_na_end) in check_opcode_types()
1213 cc += 1 + 2 + cc[1]; in check_opcode_types()
1219 if (cc < assert_na_end) in check_opcode_types()
1221 cc++; in check_opcode_types()
1225 cc = next_opcode(common, cc); in check_opcode_types()
1226 if (cc == NULL) in check_opcode_types()
1244 static int detect_early_fail(compiler_common *common, PCRE2_SPTR cc, int *private_data_start, in detect_early_fail() argument
1247 PCRE2_SPTR begin = cc; in detect_early_fail()
1255 SLJIT_ASSERT(*cc == OP_ONCE || *cc == OP_BRA || *cc == OP_CBRA); in detect_early_fail()
1256 SLJIT_ASSERT(*cc != OP_CBRA || common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] != 0); in detect_early_fail()
1259 next_alt = cc + GET(cc, 1); in detect_early_fail()
1266 cc += 1 + LINK_SIZE + ((*cc == OP_CBRA) ? IMM2_SIZE : 0); in detect_early_fail()
1272 switch(*cc) in detect_early_fail()
1286 cc++; in detect_early_fail()
1303 cc++; in detect_early_fail()
1311 cc++; in detect_early_fail()
1317 cc += 1 + 2; in detect_early_fail()
1325 cc += 2; in detect_early_fail()
1327 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in detect_early_fail()
1338 cc += 1; in detect_early_fail()
1340 if (cc[0] != OP_ANYNL && cc[0] != OP_EXTUNI) in detect_early_fail()
1342 accelerated_start = cc - 1; in detect_early_fail()
1355 cc += IMM2_SIZE; in detect_early_fail()
1365 cc += 1; in detect_early_fail()
1395 accelerated_start = cc; in detect_early_fail()
1396 cc += 2; in detect_early_fail()
1398 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in detect_early_fail()
1418 cc += IMM2_SIZE; in detect_early_fail()
1436 cc += 2; in detect_early_fail()
1438 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in detect_early_fail()
1446 accelerated_start = cc; in detect_early_fail()
1447 cc += ((*cc == OP_XCLASS) ? GET(cc, 1) : (unsigned int)(1 + (32 / sizeof(PCRE2_UCHAR)))); in detect_early_fail()
1449 accelerated_start = cc; in detect_early_fail()
1450 cc += (1 + (32 / sizeof(PCRE2_UCHAR))); in detect_early_fail()
1453 switch (*cc) in detect_early_fail()
1461 cc++; in detect_early_fail()
1467 cc += 2 * IMM2_SIZE; in detect_early_fail()
1472 cc++; in detect_early_fail()
1486 end = cc + GET(cc, 1); in detect_early_fail()
1493 end = bracketend(cc) - (1 + LINK_SIZE); in detect_early_fail()
1494 …if (*end != OP_KET || (*cc == OP_CBRA && common->optimized_cbracket[GET2(cc, 1 + LINK_SIZE)] == 0)) in detect_early_fail()
1497 …count = detect_early_fail(common, cc, private_data_start, depth + 1, count, prev_fast_forward_allo… in detect_early_fail()
1499 if (PRIVATE_DATA(cc) != 0) in detect_early_fail()
1504 cc = end + (1 + LINK_SIZE); in detect_early_fail()
1510 SLJIT_ASSERT(PRIVATE_DATA(cc) == 0); in detect_early_fail()
1511 if (cc >= next_alt) in detect_early_fail()
1513 cc += 1 + LINK_SIZE; in detect_early_fail()
1568 if (*cc != OP_ALT && *cc != OP_KET) in detect_early_fail()
1573 cc = next_alt; in detect_early_fail()
1574 next_alt = cc + GET(cc, 1); in detect_early_fail()
1576 while (*cc == OP_ALT); in detect_early_fail()
1581 static int get_class_iterator_size(PCRE2_SPTR cc) in get_class_iterator_size() argument
1585 switch(*cc) in get_class_iterator_size()
1599 min = GET2(cc, 1); in get_class_iterator_size()
1600 max = GET2(cc, 1 + IMM2_SIZE); in get_class_iterator_size()
1602 return (*cc == OP_CRRANGE) ? 2 : 1; in get_class_iterator_size()
1753 PCRE2_SPTR cc = common->start; in set_private_data_ptrs() local
1760 while (cc < ccend) in set_private_data_ptrs()
1769 if (repeat_check && (*cc == OP_ONCE || *cc == OP_BRA || *cc == OP_CBRA || *cc == OP_COND)) in set_private_data_ptrs()
1771 if (detect_repeat(common, cc)) in set_private_data_ptrs()
1775 if (cc >= end) in set_private_data_ptrs()
1776 end = bracketend(cc); in set_private_data_ptrs()
1781 switch(*cc) in set_private_data_ptrs()
1784 if (common->private_data_ptrs[cc + 1 - common->start] != 0) in set_private_data_ptrs()
1786 common->private_data_ptrs[cc - common->start] = private_data_ptr; in set_private_data_ptrs()
1788 cc += common->private_data_ptrs[cc + 1 - common->start]; in set_private_data_ptrs()
1790 cc += 1 + LINK_SIZE; in set_private_data_ptrs()
1805 common->private_data_ptrs[cc - common->start] = private_data_ptr; in set_private_data_ptrs()
1812 common->private_data_ptrs[cc - common->start] = private_data_ptr; in set_private_data_ptrs()
1819 common->private_data_ptrs[cc - common->start] = 0; in set_private_data_ptrs()
1820 alternative = cc + GET(cc, 1); in set_private_data_ptrs()
1823 common->private_data_ptrs[cc - common->start] = private_data_ptr; in set_private_data_ptrs()
1867 if (cc[1] != OP_ANYNL && cc[1] != OP_EXTUNI) in set_private_data_ptrs()
1873 if (cc[1 + IMM2_SIZE] != OP_ANYNL && cc[1 + IMM2_SIZE] != OP_EXTUNI) in set_private_data_ptrs()
1885 space = get_class_iterator_size(cc + size); in set_private_data_ptrs()
1890 size = GET(cc, 1); in set_private_data_ptrs()
1891 space = get_class_iterator_size(cc + size); in set_private_data_ptrs()
1896 cc = next_opcode(common, cc); in set_private_data_ptrs()
1897 SLJIT_ASSERT(cc != NULL); in set_private_data_ptrs()
1903 if (space > 0 && cc >= end) in set_private_data_ptrs()
1905 common->private_data_ptrs[cc - common->start] = private_data_ptr; in set_private_data_ptrs()
1913 cc += -size; in set_private_data_ptrs()
1915 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in set_private_data_ptrs()
1919 cc += size; in set_private_data_ptrs()
1924 if (cc >= end) in set_private_data_ptrs()
1926 end = bracketend(cc); in set_private_data_ptrs()
1930 cc += bracketlen; in set_private_data_ptrs()
1937 static int get_framesize(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, BOOL recursive, … in get_framesize() argument
1956 ccend = bracketend(cc) - (1 + LINK_SIZE); in get_framesize()
1957 if (!recursive && (*cc == OP_CBRAPOS || *cc == OP_SCBRAPOS)) in get_framesize()
1963 cc = next_opcode(common, cc); in get_framesize()
1966 SLJIT_ASSERT(cc != NULL); in get_framesize()
1967 while (cc < ccend) in get_framesize()
1968 switch(*cc) in get_framesize()
1978 cc += 1; in get_framesize()
1994 cc += 1 + 2 + cc[1]; in get_framesize()
2014 cc += 1 + LINK_SIZE; in get_framesize()
2028 cc += 1 + LINK_SIZE + IMM2_SIZE; in get_framesize()
2035 cc ++; in get_framesize()
2109 cc = next_opcode(common, cc); in get_framesize()
2110 SLJIT_ASSERT(cc != NULL); in get_framesize()
2123 static void init_frame(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, int stackpos, int … in init_frame() argument
2139 ccend = bracketend(cc) - (1 + LINK_SIZE); in init_frame()
2140 if (*cc != OP_CBRAPOS && *cc != OP_SCBRAPOS) in init_frame()
2141 cc = next_opcode(common, cc); in init_frame()
2144 SLJIT_ASSERT(cc != NULL); in init_frame()
2145 while (cc < ccend) in init_frame()
2146 switch(*cc) in init_frame()
2159 cc += 1; in init_frame()
2176 cc += 1 + 2 + cc[1]; in init_frame()
2207 cc += 1 + LINK_SIZE; in init_frame()
2223 offset = (GET2(cc, 1 + LINK_SIZE)) << 1; in init_frame()
2233 cc += 1 + LINK_SIZE + IMM2_SIZE; in init_frame()
2237 cc = next_opcode(common, cc); in init_frame()
2238 SLJIT_ASSERT(cc != NULL); in init_frame()
2352 static int get_recurse_data_length(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, uint32… in get_recurse_data_length() argument
2367 while (cc < ccend) in get_recurse_data_length()
2370 switch(*cc) in get_recurse_data_length()
2375 cc += 1; in get_recurse_data_length()
2385 cc += 1 + LINK_SIZE; in get_recurse_data_length()
2389 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2394 SLJIT_ASSERT(PRIVATE_DATA(cc + 1) != 0); in get_recurse_data_length()
2395 cc += PRIVATE_DATA(cc + 1); in get_recurse_data_length()
2397 cc += 1 + LINK_SIZE; in get_recurse_data_length()
2412 SLJIT_ASSERT(PRIVATE_DATA(cc) != 0); in get_recurse_data_length()
2413 if (recurse_check_bit(common, PRIVATE_DATA(cc))) in get_recurse_data_length()
2415 cc += 1 + LINK_SIZE; in get_recurse_data_length()
2420 offset = GET2(cc, 1 + LINK_SIZE); in get_recurse_data_length()
2430 cc += 1 + LINK_SIZE + IMM2_SIZE; in get_recurse_data_length()
2435 offset = GET2(cc, 1 + LINK_SIZE); in get_recurse_data_length()
2443 if (recurse_check_bit(common, PRIVATE_DATA(cc))) in get_recurse_data_length()
2447 cc += 1 + LINK_SIZE + IMM2_SIZE; in get_recurse_data_length()
2452 alternative = cc + GET(cc, 1); in get_recurse_data_length()
2453 …native == OP_KETRMAX || *alternative == OP_KETRMIN) && recurse_check_bit(common, PRIVATE_DATA(cc))) in get_recurse_data_length()
2455 cc += 1 + LINK_SIZE; in get_recurse_data_length()
2459 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2462 cc += 2; in get_recurse_data_length()
2464 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in get_recurse_data_length()
2469 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2475 cc += 2; in get_recurse_data_length()
2477 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in get_recurse_data_length()
2482 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2488 cc += 2 + IMM2_SIZE; in get_recurse_data_length()
2490 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in get_recurse_data_length()
2495 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2498 cc += 1; in get_recurse_data_length()
2502 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2508 cc += 1; in get_recurse_data_length()
2512 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2518 cc += 1 + IMM2_SIZE; in get_recurse_data_length()
2525 size = (*cc == OP_XCLASS) ? GET(cc, 1) : 1 + 32 / (int)sizeof(PCRE2_UCHAR); in get_recurse_data_length()
2530 offset = PRIVATE_DATA(cc); in get_recurse_data_length()
2532 length += get_class_iterator_size(cc + size); in get_recurse_data_length()
2533 cc += size; in get_recurse_data_length()
2544 if (*cc != OP_MARK) in get_recurse_data_length()
2547 cc += 1 + 2 + cc[1]; in get_recurse_data_length()
2554 cc++; in get_recurse_data_length()
2559 cc += 1 + 2 + cc[1]; in get_recurse_data_length()
2565 cc++; in get_recurse_data_length()
2571 cc++; in get_recurse_data_length()
2575 cc = next_opcode(common, cc); in get_recurse_data_length()
2576 SLJIT_ASSERT(cc != NULL); in get_recurse_data_length()
2580 SLJIT_ASSERT(cc == ccend); in get_recurse_data_length()
2604 static void copy_recurse_data(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, in copy_recurse_data() argument
2697 while (cc < ccend) in copy_recurse_data()
2703 switch(*cc) in copy_recurse_data()
2712 cc += 1; in copy_recurse_data()
2734 cc += 1 + LINK_SIZE; in copy_recurse_data()
2738 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2743 SLJIT_ASSERT(PRIVATE_DATA(cc + 1) != 0); in copy_recurse_data()
2744 cc += PRIVATE_DATA(cc + 1); in copy_recurse_data()
2746 cc += 1 + LINK_SIZE; in copy_recurse_data()
2761 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2764 cc += 1 + LINK_SIZE; in copy_recurse_data()
2769 offset = GET2(cc, 1 + LINK_SIZE); in copy_recurse_data()
2791 cc += 1 + LINK_SIZE + IMM2_SIZE; in copy_recurse_data()
2796 offset = GET2(cc, 1 + LINK_SIZE); in copy_recurse_data()
2811 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2821 cc += 1 + LINK_SIZE + IMM2_SIZE; in copy_recurse_data()
2826 alternative = cc + GET(cc, 1); in copy_recurse_data()
2829 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2833 cc += 1 + LINK_SIZE; in copy_recurse_data()
2837 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2840 cc += 2; in copy_recurse_data()
2842 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in copy_recurse_data()
2847 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2854 cc += 2; in copy_recurse_data()
2856 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in copy_recurse_data()
2861 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2868 cc += 2 + IMM2_SIZE; in copy_recurse_data()
2870 if (common->utf && HAS_EXTRALEN(cc[-1])) cc += GET_EXTRALEN(cc[-1]); in copy_recurse_data()
2875 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2878 cc += 1; in copy_recurse_data()
2882 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2889 cc += 1; in copy_recurse_data()
2893 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2900 cc += 1 + IMM2_SIZE; in copy_recurse_data()
2907 i = (*cc == OP_XCLASS) ? GET(cc, 1) : 1 + 32 / (int)sizeof(PCRE2_UCHAR); in copy_recurse_data()
2911 if (PRIVATE_DATA(cc) != 0) in copy_recurse_data()
2914 private_srcw[0] = PRIVATE_DATA(cc); in copy_recurse_data()
2915 switch(get_class_iterator_size(cc + i)) in copy_recurse_data()
2934 cc += i; in copy_recurse_data()
2952 cc += 1 + 2 + cc[1]; in copy_recurse_data()
2962 cc++; in copy_recurse_data()
2966 cc = next_opcode(common, cc); in copy_recurse_data()
2967 SLJIT_ASSERT(cc != NULL); in copy_recurse_data()
3032 SLJIT_ASSERT(cc == ccend && stackptr == stacktop); in copy_recurse_data()
3037 static SLJIT_INLINE PCRE2_SPTR set_then_offsets(compiler_common *common, PCRE2_SPTR cc, sljit_u8 *c… in set_then_offsets() argument
3039 PCRE2_SPTR end = bracketend(cc); in set_then_offsets()
3040 BOOL has_alternatives = cc[GET(cc, 1)] == OP_ALT; in set_then_offsets()
3043 if (*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NA) in set_then_offsets()
3046 if (*cc == OP_COND || *cc == OP_SCOND) in set_then_offsets()
3049 cc = next_opcode(common, cc); in set_then_offsets()
3051 current_offset = common->then_offsets + (cc - common->start); in set_then_offsets()
3053 while (cc < end) in set_then_offsets()
3055 if ((*cc >= OP_ASSERT && *cc <= OP_ASSERTBACK_NA) || (*cc >= OP_ONCE && *cc <= OP_SCOND)) in set_then_offsets()
3056 cc = set_then_offsets(common, cc, current_offset); in set_then_offsets()
3059 if (*cc == OP_ALT && has_alternatives) in set_then_offsets()
3060 current_offset = common->then_offsets + (cc + 1 + LINK_SIZE - common->start); in set_then_offsets()
3061 if (*cc >= OP_THEN && *cc <= OP_THEN_ARG && current_offset != NULL) in set_then_offsets()
3063 cc = next_opcode(common, cc); in set_then_offsets()
3512 static SLJIT_INLINE BOOL char_has_othercase(compiler_common *common, PCRE2_SPTR cc) in char_has_othercase() argument
3522 GETCHAR(c, cc); in char_has_othercase()
3525 c = *cc; in char_has_othercase()
3534 c = *cc; in char_has_othercase()
3548 static unsigned int char_get_othercase_bit(compiler_common *common, PCRE2_SPTR cc) in char_get_othercase_bit() argument
3561 GETCHAR(c, cc); in char_get_othercase_bit()
3564 c = *cc; in char_get_othercase_bit()
3573 c = *cc; in char_get_othercase_bit()
3577 c = *cc; in char_get_othercase_bit()
3597 n = GET_EXTRALEN(*cc); in char_get_othercase_bit()
5440 static int scan_prefix(compiler_common *common, PCRE2_SPTR cc, fast_forward_char_data *chars, int m… in scan_prefix() argument
5468 switch (*cc) in scan_prefix()
5475 cc++; in scan_prefix()
5490 cc++; in scan_prefix()
5499 cc = bracketend(cc); in scan_prefix()
5510 cc++; in scan_prefix()
5517 repeat = GET2(cc, 1); in scan_prefix()
5519 cc += 1 + IMM2_SIZE; in scan_prefix()
5531 cc++; in scan_prefix()
5533 if (common->utf && HAS_EXTRALEN(*cc)) len += GET_EXTRALEN(*cc); in scan_prefix()
5535 max_chars = scan_prefix(common, cc + len, chars, max_chars, rec_count); in scan_prefix()
5542 cc += 1 + LINK_SIZE; in scan_prefix()
5546 cc += GET(cc, 1); in scan_prefix()
5554 alternative = cc + GET(cc, 1); in scan_prefix()
5563 if (*cc == OP_CBRA || *cc == OP_CBRAPOS) in scan_prefix()
5564 cc += IMM2_SIZE; in scan_prefix()
5565 cc += 1 + LINK_SIZE; in scan_prefix()
5570 if (common->utf && !is_char7_bitset((const sljit_u8 *)(cc + 1), FALSE)) in scan_prefix()
5589 cc += GET(cc, 1); in scan_prefix()
5599 cc++; in scan_prefix()
5608 cc++; in scan_prefix()
5617 cc++; in scan_prefix()
5622 cc++; in scan_prefix()
5633 cc++; in scan_prefix()
5643 cc += 1 + 2; in scan_prefix()
5648 repeat = GET2(cc, 1); in scan_prefix()
5649 cc += 1 + IMM2_SIZE; in scan_prefix()
5658 repeat = GET2(cc, 1); in scan_prefix()
5659 cc += 1 + IMM2_SIZE + 1; in scan_prefix()
5685 bytes = (sljit_u8*) (cc + 1); in scan_prefix()
5686 cc += 1 + 32 / sizeof(PCRE2_UCHAR); in scan_prefix()
5688 switch (*cc) in scan_prefix()
5696 max_chars = scan_prefix(common, cc + 1, chars, max_chars, rec_count); in scan_prefix()
5710 repeat = GET2(cc, 1); in scan_prefix()
5754 switch (*cc) in scan_prefix()
5764 cc++; in scan_prefix()
5770 if (GET2(cc, 1) != GET2(cc, 1 + IMM2_SIZE)) in scan_prefix()
5772 cc += 1 + 2 * IMM2_SIZE; in scan_prefix()
5782 if (common->utf && HAS_EXTRALEN(*cc)) len += GET_EXTRALEN(*cc); in scan_prefix()
5785 if (caseless && char_has_othercase(common, cc)) in scan_prefix()
5790 GETCHAR(chr, cc); in scan_prefix()
5797 chr = *cc; in scan_prefix()
5813 cc_save = cc; in scan_prefix()
5822 chr = *cc; in scan_prefix()
5823 add_prefix_char(*cc, chars, len == 0); in scan_prefix()
5831 cc++; in scan_prefix()
5840 cc = cc_save; in scan_prefix()
7312 static PCRE2_SPTR byte_sequence_compare(compiler_common *common, BOOL caseless, PCRE2_SPTR cc, in byte_sequence_compare() argument
7322 if (caseless && char_has_othercase(common, cc)) in byte_sequence_compare()
7324 othercasebit = char_get_othercase_bit(common, cc); in byte_sequence_compare()
7328 othercasechar = cc + (othercasebit >> 8); in byte_sequence_compare()
7335 othercasechar = cc + (othercasebit >> 9); in byte_sequence_compare()
7369 if (common->utf && HAS_EXTRALEN(*cc)) in byte_sequence_compare()
7370 utflength += GET_EXTRALEN(*cc); in byte_sequence_compare()
7380 if (othercasebit != 0 && othercasechar == cc) in byte_sequence_compare()
7382 context->c.asuchars[context->ucharptr] = *cc | othercasebit; in byte_sequence_compare()
7387 context->c.asuchars[context->ucharptr] = *cc; in byte_sequence_compare()
7445 if (othercasebit != 0 && othercasechar == cc) in byte_sequence_compare()
7448 …add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc | otherc… in byte_sequence_compare()
7451 add_jump(compiler, backtracks, CMP(SLJIT_NOT_EQUAL, context->sourcereg, 0, SLJIT_IMM, *cc)); in byte_sequence_compare()
7455 cc++; in byte_sequence_compare()
7462 return cc; in byte_sequence_compare()
7487 …e_char1_matchingpath(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtra…
7504 static void compile_xclass_matchingpath(compiler_common *common, PCRE2_SPTR cc, jump_list **backtra… in compile_xclass_matchingpath() argument
7508 jump_list **list = (cc[0] & XCL_NOT) == 0 ? &found : backtracks; in compile_xclass_matchingpath()
7525 cc++; in compile_xclass_matchingpath()
7526 ccbegin = cc; in compile_xclass_matchingpath()
7529 if (cc[-1] & XCL_MAP) in compile_xclass_matchingpath()
7532 cc += 32 / sizeof(PCRE2_UCHAR); in compile_xclass_matchingpath()
7535 while (*cc != XCL_END) in compile_xclass_matchingpath()
7538 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7540 cc ++; in compile_xclass_matchingpath()
7541 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7548 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7550 cc ++; in compile_xclass_matchingpath()
7551 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7553 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7562 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
7563 cc++; in compile_xclass_matchingpath()
7564 if (*cc == PT_CLIST && cc[-1] == XCL_PROP) in compile_xclass_matchingpath()
7566 other_cases = PRIV(ucd_caseless_sets) + cc[1]; in compile_xclass_matchingpath()
7580 switch(*cc) in compile_xclass_matchingpath()
7584 if (cc[-1] == XCL_PROP) in compile_xclass_matchingpath()
7586 compile_char1_matchingpath(common, OP_ALLANY, cc, backtracks, FALSE); in compile_xclass_matchingpath()
7602 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7640 cc += 2; in compile_xclass_matchingpath()
7647 cc = ccbegin; in compile_xclass_matchingpath()
7648 if ((cc[-1] & XCL_NOT) != 0) in compile_xclass_matchingpath()
7659 if ((cc[-1] & XCL_HASPROP) == 0) in compile_xclass_matchingpath()
7661 if ((cc[-1] & XCL_MAP) != 0) in compile_xclass_matchingpath()
7664 …if (!optimize_class(common, (const sljit_u8 *)cc, (((const sljit_u8 *)cc)[31] & 0x80) != 0, TRUE, … in compile_xclass_matchingpath()
7668 OP1(SLJIT_MOV_U8, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc); in compile_xclass_matchingpath()
7677 cc += 32 / sizeof(PCRE2_UCHAR); in compile_xclass_matchingpath()
7682 …add_jump(compiler, (cc[-1] & XCL_NOT) == 0 ? backtracks : &found, CMP(SLJIT_GREATER, TMP2, 0, SLJI… in compile_xclass_matchingpath()
7685 else if ((cc[-1] & XCL_MAP) != 0) in compile_xclass_matchingpath()
7691 if (!optimize_class(common, (const sljit_u8 *)cc, FALSE, TRUE, list)) in compile_xclass_matchingpath()
7701 OP1(SLJIT_MOV_U8, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc); in compile_xclass_matchingpath()
7713 cc += 32 / sizeof(PCRE2_UCHAR); in compile_xclass_matchingpath()
7743 ccbegin = cc; in compile_xclass_matchingpath()
7750 while (*cc != XCL_END) in compile_xclass_matchingpath()
7752 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7754 cc ++; in compile_xclass_matchingpath()
7755 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7757 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7759 cc ++; in compile_xclass_matchingpath()
7760 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7761 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7765 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
7766 cc++; in compile_xclass_matchingpath()
7767 if (*cc == PT_BIDICL) in compile_xclass_matchingpath()
7771 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7773 jump = CMP(SLJIT_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (int)cc[1]); in compile_xclass_matchingpath()
7776 cc += 2; in compile_xclass_matchingpath()
7780 cc = ccbegin; in compile_xclass_matchingpath()
7789 while (*cc != XCL_END) in compile_xclass_matchingpath()
7791 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7793 cc ++; in compile_xclass_matchingpath()
7794 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7796 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7798 cc ++; in compile_xclass_matchingpath()
7799 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7800 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7804 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
7805 cc++; in compile_xclass_matchingpath()
7806 if (*cc == PT_BOOL) in compile_xclass_matchingpath()
7810 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7813 …LJIT_MEM1(TMP1), (sljit_sw)(PRIV(ucd_boolprop_sets) + (cc[1] >> 5)), SLJIT_IMM, (sljit_sw)1 << (cc in compile_xclass_matchingpath()
7816 cc += 2; in compile_xclass_matchingpath()
7820 cc = ccbegin; in compile_xclass_matchingpath()
7827 while (*cc != XCL_END) in compile_xclass_matchingpath()
7829 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7831 cc ++; in compile_xclass_matchingpath()
7832 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7834 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7836 cc ++; in compile_xclass_matchingpath()
7837 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7838 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7842 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
7843 cc++; in compile_xclass_matchingpath()
7844 switch (*cc) in compile_xclass_matchingpath()
7847 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7854 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7857 …r, compares > 0 ? list : backtracks, CMP(SLJIT_EQUAL ^ invertcmp, TMP1, 0, SLJIT_IMM, (int)cc[1])); in compile_xclass_matchingpath()
7859 cc += 2; in compile_xclass_matchingpath()
7863 cc = ccbegin; in compile_xclass_matchingpath()
7890 while (*cc != XCL_END) in compile_xclass_matchingpath()
7892 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7894 cc ++; in compile_xclass_matchingpath()
7895 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7897 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7899 cc ++; in compile_xclass_matchingpath()
7900 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7901 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7905 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
7906 cc++; in compile_xclass_matchingpath()
7907 if (*cc == PT_SCX) in compile_xclass_matchingpath()
7913 if (cc[-1] == XCL_NOTPROP) in compile_xclass_matchingpath()
7915 jump = CMP(SLJIT_EQUAL, TMP2, 0, SLJIT_IMM, (int)cc[1]); in compile_xclass_matchingpath()
7924 … SLJIT_MEM1(TMP1), (sljit_sw)(PRIV(ucd_script_sets) + (cc[1] >> 5)), SLJIT_IMM, (sljit_sw)1 << (cc in compile_xclass_matchingpath()
7930 cc += 2; in compile_xclass_matchingpath()
7938 cc = ccbegin; in compile_xclass_matchingpath()
7961 while (*cc != XCL_END) in compile_xclass_matchingpath()
7967 if (*cc == XCL_SINGLE) in compile_xclass_matchingpath()
7969 cc ++; in compile_xclass_matchingpath()
7970 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7972 if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE)) in compile_xclass_matchingpath()
7991 else if (*cc == XCL_RANGE) in compile_xclass_matchingpath()
7993 cc ++; in compile_xclass_matchingpath()
7994 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7996 GETCHARINCTEST(c, cc); in compile_xclass_matchingpath()
7998 if (numberofcmps < 3 && (*cc == XCL_SINGLE || *cc == XCL_RANGE)) in compile_xclass_matchingpath()
8020 SLJIT_ASSERT(*cc == XCL_PROP || *cc == XCL_NOTPROP); in compile_xclass_matchingpath()
8021 if (*cc == XCL_NOTPROP) in compile_xclass_matchingpath()
8023 cc++; in compile_xclass_matchingpath()
8024 switch(*cc) in compile_xclass_matchingpath()
8042 c = PRIV(ucp_typerange)[(int)cc[1] * 2]; in compile_xclass_matchingpath()
8044 …jump = CMP(SLJIT_LESS_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, PRIV(ucp_typerange)[(int)cc[1] * 2… in compile_xclass_matchingpath()
8048 jump = CMP(SLJIT_EQUAL ^ invertcmp, typereg, 0, SLJIT_IMM, (int)cc[1] - typeoffset); in compile_xclass_matchingpath()
8085 OP_FLAGS((*cc == PT_ALNUM) ? SLJIT_MOV : SLJIT_OR, TMP2, 0, SLJIT_LESS_EQUAL); in compile_xclass_matchingpath()
8093 other_cases = PRIV(ucd_caseless_sets) + cc[1]; in compile_xclass_matchingpath()
8227 cc += 2; in compile_xclass_matchingpath()
8244 …sertion_matchingpath(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtra… in compile_simple_assertion_matchingpath() argument
8264 return cc; in compile_simple_assertion_matchingpath()
8275 return cc; in compile_simple_assertion_matchingpath()
8284 return cc; in compile_simple_assertion_matchingpath()
8289 return cc; in compile_simple_assertion_matchingpath()
8359 return cc; in compile_simple_assertion_matchingpath()
8365 return cc; in compile_simple_assertion_matchingpath()
8378 compile_simple_assertion_matchingpath(common, OP_EODN, cc, backtracks); in compile_simple_assertion_matchingpath()
8384 return cc; in compile_simple_assertion_matchingpath()
8426 return cc; in compile_simple_assertion_matchingpath()
8444 return cc; in compile_simple_assertion_matchingpath()
8483 return cc; in compile_simple_assertion_matchingpath()
8486 length = GET(cc, 0); in compile_simple_assertion_matchingpath()
8488 return cc + LINK_SIZE; in compile_simple_assertion_matchingpath()
8513 return cc + LINK_SIZE; in compile_simple_assertion_matchingpath()
8516 return cc; in compile_simple_assertion_matchingpath()
8523 static PCRE2_SPTR SLJIT_FUNC do_extuni_utf(jit_arguments *args, PCRE2_SPTR cc) in do_extuni_utf() argument
8532 prevcc = cc; in do_extuni_utf()
8536 GETCHARINC(c, cc); in do_extuni_utf()
8542 endcc = cc; in do_extuni_utf()
8582 endcc = cc; in do_extuni_utf()
8584 while (cc < end_subject); in do_extuni_utf()
8591 static PCRE2_SPTR SLJIT_FUNC do_extuni_utf_invalid(jit_arguments *args, PCRE2_SPTR cc) in do_extuni_utf_invalid() argument
8600 prevcc = cc; in do_extuni_utf_invalid()
8604 GETCHARINC_INVALID(c, cc, end_subject, break); in do_extuni_utf_invalid()
8610 endcc = cc; in do_extuni_utf_invalid()
8649 endcc = cc; in do_extuni_utf_invalid()
8651 while (cc < end_subject); in do_extuni_utf_invalid()
8656 static PCRE2_SPTR SLJIT_FUNC do_extuni_no_utf(jit_arguments *args, PCRE2_SPTR cc) in do_extuni_no_utf() argument
8666 c = *cc++; in do_extuni_no_utf()
8674 while (cc < end_subject) in do_extuni_no_utf()
8676 c = *cc; in do_extuni_no_utf()
8692 bptr = cc - 1; in do_extuni_no_utf()
8720 cc++; in do_extuni_no_utf()
8723 return cc; in do_extuni_no_utf()
8728 …e_char1_matchingpath(compiler_common *common, PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtra… in compile_char1_matchingpath() argument
8756 return cc; in compile_char1_matchingpath()
8770 return cc; in compile_char1_matchingpath()
8784 return cc; in compile_char1_matchingpath()
8806 return cc; in compile_char1_matchingpath()
8817 return cc; in compile_char1_matchingpath()
8836 return cc; in compile_char1_matchingpath()
8841 return cc; in compile_char1_matchingpath()
8847 return cc; in compile_char1_matchingpath()
8854 propdata[2] = cc[0]; in compile_char1_matchingpath()
8855 propdata[3] = cc[1]; in compile_char1_matchingpath()
8860 return cc + 2; in compile_char1_matchingpath()
8883 return cc; in compile_char1_matchingpath()
8898 return cc; in compile_char1_matchingpath()
8913 return cc; in compile_char1_matchingpath()
8944 return cc; in compile_char1_matchingpath()
8951 if (common->utf && HAS_EXTRALEN(*cc)) length += GET_EXTRALEN(*cc); in compile_char1_matchingpath()
8957 if (type == OP_CHAR || !char_has_othercase(common, cc) || char_get_othercase_bit(common, cc) != 0) in compile_char1_matchingpath()
8968 return byte_sequence_compare(common, type == OP_CHARI, cc, &context, backtracks); in compile_char1_matchingpath()
8974 GETCHAR(c, cc); in compile_char1_matchingpath()
8978 c = *cc; in compile_char1_matchingpath()
8980 SLJIT_ASSERT(type == OP_CHARI && char_has_othercase(common, cc)); in compile_char1_matchingpath()
9002 return cc + length; in compile_char1_matchingpath()
9014 c = *cc; in compile_char1_matchingpath()
9018 if (type == OP_NOT || !char_has_othercase(common, cc)) in compile_char1_matchingpath()
9032 return cc + 1; in compile_char1_matchingpath()
9037 GETCHARLEN(c, cc, length); in compile_char1_matchingpath()
9042 c = *cc; in compile_char1_matchingpath()
9044 if (type == OP_NOT || !char_has_othercase(common, cc)) in compile_char1_matchingpath()
9065 return cc + length; in compile_char1_matchingpath()
9073 bit = (common->utf && is_char7_bitset((const sljit_u8 *)cc, type == OP_NCLASS)) ? 127 : 255; in compile_char1_matchingpath()
9085 if (optimize_class(common, (const sljit_u8 *)cc, type == OP_NCLASS, FALSE, backtracks)) in compile_char1_matchingpath()
9086 return cc + 32 / sizeof(PCRE2_UCHAR); in compile_char1_matchingpath()
9110 OP1(SLJIT_MOV_U8, TMP1, 0, SLJIT_MEM1(TMP1), (sljit_sw)cc); in compile_char1_matchingpath()
9119 return cc + 32 / sizeof(PCRE2_UCHAR); in compile_char1_matchingpath()
9125 compile_xclass_matchingpath(common, cc + LINK_SIZE, backtracks); in compile_char1_matchingpath()
9126 return cc + GET(cc, 0) - 1; in compile_char1_matchingpath()
9130 return cc; in compile_char1_matchingpath()
9133 static SLJIT_INLINE PCRE2_SPTR compile_charn_matchingpath(compiler_common *common, PCRE2_SPTR cc, P… in compile_charn_matchingpath() argument
9138 PCRE2_SPTR ccbegin = cc; in compile_charn_matchingpath()
9145 if (cc >= ccend) in compile_charn_matchingpath()
9148 if (*cc == OP_CHAR) in compile_charn_matchingpath()
9152 if (common->utf && HAS_EXTRALEN(cc[1])) in compile_charn_matchingpath()
9153 size += GET_EXTRALEN(cc[1]); in compile_charn_matchingpath()
9156 else if (*cc == OP_CHARI) in compile_charn_matchingpath()
9162 if (char_has_othercase(common, cc + 1) && char_get_othercase_bit(common, cc + 1) == 0) in compile_charn_matchingpath()
9164 else if (HAS_EXTRALEN(cc[1])) in compile_charn_matchingpath()
9165 size += GET_EXTRALEN(cc[1]); in compile_charn_matchingpath()
9169 if (char_has_othercase(common, cc + 1) && char_get_othercase_bit(common, cc + 1) == 0) in compile_charn_matchingpath()
9175 cc += 1 + size; in compile_charn_matchingpath()
9180 cc = ccbegin; in compile_charn_matchingpath()
9191 …do cc = byte_sequence_compare(common, *cc == OP_CHARI, cc + 1, &context, backtracks); while (conte… in compile_charn_matchingpath()
9192 return cc; in compile_charn_matchingpath()
9196 return compile_char1_matchingpath(common, *cc, cc + 1, backtracks, TRUE); in compile_charn_matchingpath()
9211 backtrack->cc = (ccstart); \
9224 backtrack->cc = (ccstart); \
9231 static void compile_dnref_search(compiler_common *common, PCRE2_SPTR cc, jump_list **backtracks) in compile_dnref_search() argument
9235 int count = GET2(cc, 1 + IMM2_SIZE); in compile_dnref_search()
9236 PCRE2_SPTR slot = common->name_table + GET2(cc, 1) * common->name_entry_size; in compile_dnref_search()
9240 SLJIT_ASSERT(*cc == OP_DNREF || *cc == OP_DNREFI); in compile_dnref_search()
9261 static void compile_ref_matchingpath(compiler_common *common, PCRE2_SPTR cc, jump_list **backtracks… in compile_ref_matchingpath() argument
9264 BOOL ref = (*cc == OP_REF || *cc == OP_REFI); in compile_ref_matchingpath()
9280 offset = GET2(cc, 1) << 1; in compile_ref_matchingpath()
9290 if (common->utf && *cc == OP_REFI) in compile_ref_matchingpath()
9396 …add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, JUMP(SLJIT_FAST_CAL… in compile_ref_matchingpath()
9408 …add_jump(compiler, *cc == OP_REF ? &common->casefulcmp : &common->caselesscmp, JUMP(SLJIT_FAST_CAL… in compile_ref_matchingpath()
9426 …SPTR compile_ref_iterator_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack_common *p… in compile_ref_iterator_matchingpath() argument
9429 BOOL ref = (*cc == OP_REF || *cc == OP_REFI); in compile_ref_iterator_matchingpath()
9436 PCRE2_SPTR ccbegin = cc; in compile_ref_iterator_matchingpath()
9440 PUSH_BACKTRACK(sizeof(ref_iterator_backtrack), cc, NULL); in compile_ref_iterator_matchingpath()
9443 offset = GET2(cc, 1) << 1; in compile_ref_iterator_matchingpath()
9445 cc += IMM2_SIZE; in compile_ref_iterator_matchingpath()
9446 type = cc[1 + IMM2_SIZE]; in compile_ref_iterator_matchingpath()
9456 cc += 1 + IMM2_SIZE + 1; in compile_ref_iterator_matchingpath()
9462 cc += 1 + IMM2_SIZE + 1; in compile_ref_iterator_matchingpath()
9468 cc += 1 + IMM2_SIZE + 1; in compile_ref_iterator_matchingpath()
9472 min = GET2(cc, 1 + IMM2_SIZE + 1); in compile_ref_iterator_matchingpath()
9473 max = GET2(cc, 1 + IMM2_SIZE + 1 + IMM2_SIZE); in compile_ref_iterator_matchingpath()
9474 cc += 1 + IMM2_SIZE + 1 + 2 * IMM2_SIZE; in compile_ref_iterator_matchingpath()
9563 return cc; in compile_ref_iterator_matchingpath()
9630 return cc; in compile_ref_iterator_matchingpath()
9633 static SLJIT_INLINE PCRE2_SPTR compile_recurse_matchingpath(compiler_common *common, PCRE2_SPTR cc,… in compile_recurse_matchingpath() argument
9639 sljit_sw start = GET(cc, 1); in compile_recurse_matchingpath()
9643 PUSH_BACKTRACK(sizeof(recurse_backtrack), cc, NULL); in compile_recurse_matchingpath()
9651 return cc + 1 + LINK_SIZE; in compile_recurse_matchingpath()
9689 return cc + 1 + LINK_SIZE; in compile_recurse_matchingpath()
9749 static SLJIT_INLINE PCRE2_SPTR compile_callout_matchingpath(compiler_common *common, PCRE2_SPTR cc,… in compile_callout_matchingpath() argument
9754 unsigned int callout_length = (*cc == OP_CALLOUT) in compile_callout_matchingpath()
9755 ? PRIV(OP_lengths)[OP_CALLOUT] : GET(cc, 1 + 2 * LINK_SIZE); in compile_callout_matchingpath()
9761 PUSH_BACKTRACK(sizeof(backtrack_common), cc, NULL); in compile_callout_matchingpath()
9770 value1 = (*cc == OP_CALLOUT) ? cc[1 + 2 * LINK_SIZE] : 0; in compile_callout_matchingpath()
9781 OP1(mov_opcode, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(pattern_position), SLJIT_IMM, GET(cc, 1)); in compile_callout_matchingpath()
9782 OP1(mov_opcode, SLJIT_MEM1(STACK_TOP), CALLOUT_ARG_OFFSET(next_item_length), SLJIT_IMM, GET(cc, 1 +… in compile_callout_matchingpath()
9784 if (*cc == OP_CALLOUT) in compile_callout_matchingpath()
9792 value1 = (sljit_sw) (cc + (1 + 4*LINK_SIZE) + 1); in compile_callout_matchingpath()
9794 value3 = (sljit_sw) (GET(cc, 1 + 3*LINK_SIZE)); in compile_callout_matchingpath()
9820 return cc + callout_length; in compile_callout_matchingpath()
9826 static SLJIT_INLINE BOOL assert_needs_str_ptr_saving(PCRE2_SPTR cc) in assert_needs_str_ptr_saving() argument
9830 switch (*cc) in assert_needs_str_ptr_saving()
9833 cc += GET(cc, 1 + 2*LINK_SIZE); in assert_needs_str_ptr_saving()
9844 cc += PRIV(OP_lengths)[*cc]; in assert_needs_str_ptr_saving()
9856 static PCRE2_SPTR compile_assert_matchingpath(compiler_common *common, PCRE2_SPTR cc, assert_backtr… in compile_assert_matchingpath() argument
9886 if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO) in compile_assert_matchingpath()
9889 bra = *cc; in compile_assert_matchingpath()
9890 cc++; in compile_assert_matchingpath()
9892 private_data_ptr = PRIVATE_DATA(cc); in compile_assert_matchingpath()
9894 framesize = get_framesize(common, cc, NULL, FALSE, &needs_control_head); in compile_assert_matchingpath()
9897 opcode = *cc; in compile_assert_matchingpath()
9900 ccbegin = cc; in compile_assert_matchingpath()
9901 cc += GET(cc, 1); in compile_assert_matchingpath()
9986 altbacktrack.cc = ccbegin; in compile_assert_matchingpath()
9987 compile_matchingpath(common, ccbegin + 1 + LINK_SIZE, cc, &altbacktrack); in compile_assert_matchingpath()
10084 if (*cc != OP_ALT) in compile_assert_matchingpath()
10087 ccbegin = cc; in compile_assert_matchingpath()
10088 cc += GET(cc, 1); in compile_assert_matchingpath()
10280 return cc + 1 + LINK_SIZE; in compile_assert_matchingpath()
10445 static PCRE2_SPTR compile_bracket_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack_co… in compile_bracket_matchingpath() argument
10468 PUSH_BACKTRACK(sizeof(bracket_backtrack), cc, NULL); in compile_bracket_matchingpath()
10470 if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO) in compile_bracket_matchingpath()
10472 bra = *cc; in compile_bracket_matchingpath()
10473 cc++; in compile_bracket_matchingpath()
10474 opcode = *cc; in compile_bracket_matchingpath()
10477 opcode = *cc; in compile_bracket_matchingpath()
10478 ccbegin = cc; in compile_bracket_matchingpath()
10479 matchingpath = bracketend(cc) - 1 - LINK_SIZE; in compile_bracket_matchingpath()
10497 cc += GET(cc, 1); in compile_bracket_matchingpath()
10499 has_alternatives = *cc == OP_ALT; in compile_bracket_matchingpath()
10507 if (SLJIT_UNLIKELY(opcode == OP_COND) && (*cc == OP_KETRMAX || *cc == OP_KETRMIN)) in compile_bracket_matchingpath()
10811 if (*cc == OP_ALT) in compile_bracket_matchingpath()
10813 matchingpath = cc + 1 + LINK_SIZE; in compile_bracket_matchingpath()
10814 cc += GET(cc, 1); in compile_bracket_matchingpath()
10817 matchingpath = cc; in compile_bracket_matchingpath()
10828 assert->common.cc = matchingpath; in compile_bracket_matchingpath()
10834 compile_matchingpath(common, matchingpath, cc, backtrack); in compile_bracket_matchingpath()
10891 while (*cc == OP_ALT) in compile_bracket_matchingpath()
10893 cc += GET(cc, 1); in compile_bracket_matchingpath()
10994 cc += 1 + LINK_SIZE; in compile_bracket_matchingpath()
11003 return cc + repeat_length; in compile_bracket_matchingpath()
11006 static PCRE2_SPTR compile_bracketpos_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack… in compile_bracketpos_matchingpath() argument
11023 PUSH_BACKTRACK(sizeof(bracketpos_backtrack), cc, NULL); in compile_bracketpos_matchingpath()
11024 if (*cc == OP_BRAPOSZERO) in compile_bracketpos_matchingpath()
11027 cc++; in compile_bracketpos_matchingpath()
11030 opcode = *cc; in compile_bracketpos_matchingpath()
11031 private_data_ptr = PRIVATE_DATA(cc); in compile_bracketpos_matchingpath()
11038 ccbegin = cc + 1 + LINK_SIZE; in compile_bracketpos_matchingpath()
11043 offset = GET2(cc, 1 + LINK_SIZE); in compile_bracketpos_matchingpath()
11049 ccbegin = cc + 1 + LINK_SIZE + IMM2_SIZE; in compile_bracketpos_matchingpath()
11057 framesize = get_framesize(common, cc, NULL, FALSE, &needs_control_head); in compile_bracketpos_matchingpath()
11150 init_frame(common, cc, NULL, stacksize - 1, stacksize - framesize); in compile_bracketpos_matchingpath()
11158 while (*cc != OP_KETRPOS) in compile_bracketpos_matchingpath()
11162 cc += GET(cc, 1); in compile_bracketpos_matchingpath()
11164 compile_matchingpath(common, ccbegin, cc, backtrack); in compile_bracketpos_matchingpath()
11256 if (*cc == OP_KETRPOS) in compile_bracketpos_matchingpath()
11267 if (*cc == OP_KETRPOS) in compile_bracketpos_matchingpath()
11269 ccbegin = cc + 1 + LINK_SIZE; in compile_bracketpos_matchingpath()
11286 return cc + 1 + LINK_SIZE; in compile_bracketpos_matchingpath()
11289 static SLJIT_INLINE PCRE2_SPTR get_iterator_parameters(compiler_common *common, PCRE2_SPTR cc, PCRE… in get_iterator_parameters() argument
11293 *opcode = *cc; in get_iterator_parameters()
11298 cc++; in get_iterator_parameters()
11303 cc++; in get_iterator_parameters()
11309 cc++; in get_iterator_parameters()
11315 cc++; in get_iterator_parameters()
11321 cc++; in get_iterator_parameters()
11329 cc++; in get_iterator_parameters()
11330 class_len = (*type < OP_XCLASS) ? (int)(1 + (32 / sizeof(PCRE2_UCHAR))) : GET(cc, 0); in get_iterator_parameters()
11331 *opcode = cc[class_len - 1]; in get_iterator_parameters()
11336 *end = cc + class_len; in get_iterator_parameters()
11347 *end = cc + class_len; in get_iterator_parameters()
11358 *max = GET2(cc, (class_len + IMM2_SIZE)); in get_iterator_parameters()
11359 *exact = GET2(cc, class_len); in get_iterator_parameters()
11388 *end = cc + class_len + 2 * IMM2_SIZE; in get_iterator_parameters()
11390 return cc; in get_iterator_parameters()
11396 *exact = GET2(cc, 0); in get_iterator_parameters()
11397 cc += IMM2_SIZE; in get_iterator_parameters()
11414 *max = GET2(cc, 0); in get_iterator_parameters()
11415 cc += IMM2_SIZE; in get_iterator_parameters()
11421 *type = *cc; in get_iterator_parameters()
11422 *end = next_opcode(common, cc); in get_iterator_parameters()
11423 cc++; in get_iterator_parameters()
11424 return cc; in get_iterator_parameters()
11427 *end = cc + 1; in get_iterator_parameters()
11429 if (common->utf && HAS_EXTRALEN(*cc)) *end += GET_EXTRALEN(*cc); in get_iterator_parameters()
11431 return cc; in get_iterator_parameters()
11434 static PCRE2_SPTR compile_iterator_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack_c… in compile_iterator_matchingpath() argument
11441 sljit_s32 early_fail_ptr = PRIVATE_DATA(cc + 1); in compile_iterator_matchingpath()
11451 int private_data_ptr = PRIVATE_DATA(cc); in compile_iterator_matchingpath()
11460 PUSH_BACKTRACK(sizeof(char_iterator_backtrack), cc, NULL); in compile_iterator_matchingpath()
11478 cc = get_iterator_parameters(common, cc, &opcode, &type, &max, &exact, &end); in compile_iterator_matchingpath()
11506 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, FALSE); in compile_iterator_matchingpath()
11514 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, TRUE); in compile_iterator_matchingpath()
11520 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, TRUE); in compile_iterator_matchingpath()
11554 …compile_char1_matchingpath(common, type, cc, &BACKTRACK_AS(char_iterator_backtrack)->u.backtracks,… in compile_iterator_matchingpath()
11679 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, FALSE); in compile_iterator_matchingpath()
11703 compile_char1_matchingpath(common, type, cc, &no_match, FALSE); in compile_iterator_matchingpath()
11748 compile_char1_matchingpath(common, type, cc, &no_char1_match, FALSE); in compile_iterator_matchingpath()
11816 …compile_char1_matchingpath(common, type, cc, &BACKTRACK_AS(char_iterator_backtrack)->u.backtracks,… in compile_iterator_matchingpath()
11843 compile_char1_matchingpath(common, type, cc, &no_match, FALSE); in compile_iterator_matchingpath()
11862 compile_char1_matchingpath(common, type, cc, &no_char1_match, FALSE); in compile_iterator_matchingpath()
11883 compile_char1_matchingpath(common, type, cc, &no_match, FALSE); in compile_iterator_matchingpath()
11917 compile_char1_matchingpath(common, type, cc, &no_char1_match, FALSE); in compile_iterator_matchingpath()
11931 compile_char1_matchingpath(common, type, cc, &no_match, TRUE); in compile_iterator_matchingpath()
11946 …_SPTR compile_fail_accept_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack_common *p… in compile_fail_accept_matchingpath() argument
11951 PUSH_BACKTRACK(sizeof(backtrack_common), cc, NULL); in compile_fail_accept_matchingpath()
11953 if (*cc == OP_FAIL) in compile_fail_accept_matchingpath()
11956 return cc + 1; in compile_fail_accept_matchingpath()
11959 if (*cc == OP_ACCEPT && common->currententry == NULL && (common->re->overall_options & PCRE2_ENDANC… in compile_fail_accept_matchingpath()
11962 if (*cc == OP_ASSERT_ACCEPT || common->currententry != NULL || !common->might_be_empty) in compile_fail_accept_matchingpath()
11969 return cc + 1; in compile_fail_accept_matchingpath()
11999 return cc + 1; in compile_fail_accept_matchingpath()
12002 static SLJIT_INLINE PCRE2_SPTR compile_close_matchingpath(compiler_common *common, PCRE2_SPTR cc) in compile_close_matchingpath() argument
12005 int offset = GET2(cc, 1); in compile_close_matchingpath()
12010 return cc + 1 + IMM2_SIZE; in compile_close_matchingpath()
12018 return cc + 1 + IMM2_SIZE; in compile_close_matchingpath()
12021 …SPTR compile_control_verb_matchingpath(compiler_common *common, PCRE2_SPTR cc, backtrack_common *p… in compile_control_verb_matchingpath() argument
12025 PCRE2_UCHAR opcode = *cc; in compile_control_verb_matchingpath()
12026 PCRE2_SPTR ccend = cc + 1; in compile_control_verb_matchingpath()
12030 ccend += 2 + cc[1]; in compile_control_verb_matchingpath()
12032 PUSH_BACKTRACK(sizeof(backtrack_common), cc, NULL); in compile_control_verb_matchingpath()
12045 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, (sljit_sw)(cc + 2)); in compile_control_verb_matchingpath()
12055 static SLJIT_INLINE void compile_then_trap_matchingpath(compiler_common *common, PCRE2_SPTR cc, PCR… in compile_then_trap_matchingpath() argument
12062 PUSH_BACKTRACK_NOVALUE(sizeof(then_trap_backtrack), cc); in compile_then_trap_matchingpath()
12064 BACKTRACK_AS(then_trap_backtrack)->common.cc = then_trap_opcode; in compile_then_trap_matchingpath()
12065 BACKTRACK_AS(then_trap_backtrack)->start = (sljit_sw)(cc - common->start); in compile_then_trap_matchingpath()
12066 BACKTRACK_AS(then_trap_backtrack)->framesize = get_framesize(common, cc, ccend, FALSE, &needs_contr… in compile_then_trap_matchingpath()
12083 init_frame(common, cc, ccend, size - 1, 0); in compile_then_trap_matchingpath()
12086 static void compile_matchingpath(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR ccend, backtrac… in compile_matchingpath() argument
12095 if (common->has_then && common->then_offsets[cc - common->start] != 0) in compile_matchingpath()
12101 compile_then_trap_matchingpath(common, cc, ccend, parent); in compile_matchingpath()
12104 while (cc < ccend) in compile_matchingpath()
12106 switch(*cc) in compile_matchingpath()
12119cc = compile_simple_assertion_matchingpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top… in compile_matchingpath()
12141cc = compile_char1_matchingpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextbackt… in compile_matchingpath()
12145 PUSH_BACKTRACK_NOVALUE(sizeof(backtrack_common), cc); in compile_matchingpath()
12150 cc++; in compile_matchingpath()
12156cc = compile_charn_matchingpath(common, cc, ccend, parent->top != NULL ? &parent->top->nextbacktra… in compile_matchingpath()
12158cc = compile_char1_matchingpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextbackt… in compile_matchingpath()
12226 cc = compile_iterator_matchingpath(common, cc, parent); in compile_matchingpath()
12231 …if (cc[1 + (32 / sizeof(PCRE2_UCHAR))] >= OP_CRSTAR && cc[1 + (32 / sizeof(PCRE2_UCHAR))] <= OP_CR… in compile_matchingpath()
12232 cc = compile_iterator_matchingpath(common, cc, parent); in compile_matchingpath()
12234cc = compile_char1_matchingpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextbackt… in compile_matchingpath()
12239 if (*(cc + GET(cc, 1)) >= OP_CRSTAR && *(cc + GET(cc, 1)) <= OP_CRPOSRANGE) in compile_matchingpath()
12240 cc = compile_iterator_matchingpath(common, cc, parent); in compile_matchingpath()
12242cc = compile_char1_matchingpath(common, *cc, cc + 1, parent->top != NULL ? &parent->top->nextbackt… in compile_matchingpath()
12248 if (cc[1 + IMM2_SIZE] >= OP_CRSTAR && cc[1 + IMM2_SIZE] <= OP_CRPOSRANGE) in compile_matchingpath()
12249 cc = compile_ref_iterator_matchingpath(common, cc, parent); in compile_matchingpath()
12252 …compile_ref_matchingpath(common, cc, parent->top != NULL ? &parent->top->nextbacktracks : &parent-… in compile_matchingpath()
12253 cc += 1 + IMM2_SIZE; in compile_matchingpath()
12259 if (cc[1 + 2 * IMM2_SIZE] >= OP_CRSTAR && cc[1 + 2 * IMM2_SIZE] <= OP_CRPOSRANGE) in compile_matchingpath()
12260 cc = compile_ref_iterator_matchingpath(common, cc, parent); in compile_matchingpath()
12263 …compile_dnref_search(common, cc, parent->top != NULL ? &parent->top->nextbacktracks : &parent->top… in compile_matchingpath()
12264 …compile_ref_matchingpath(common, cc, parent->top != NULL ? &parent->top->nextbacktracks : &parent-… in compile_matchingpath()
12265 cc += 1 + 2 * IMM2_SIZE; in compile_matchingpath()
12270 cc = compile_recurse_matchingpath(common, cc, parent); in compile_matchingpath()
12275 cc = compile_callout_matchingpath(common, cc, parent); in compile_matchingpath()
12282 PUSH_BACKTRACK_NOVALUE(sizeof(assert_backtrack), cc); in compile_matchingpath()
12283 cc = compile_assert_matchingpath(common, cc, BACKTRACK_AS(assert_backtrack), FALSE); in compile_matchingpath()
12287 PUSH_BACKTRACK_NOVALUE(sizeof(braminzero_backtrack), cc); in compile_matchingpath()
12288 cc = bracketend(cc + 1); in compile_matchingpath()
12289 if (*(cc - 1 - LINK_SIZE) != OP_KETRMIN) in compile_matchingpath()
12314 cc = compile_bracket_matchingpath(common, cc, parent); in compile_matchingpath()
12318 if (cc[1] > OP_ASSERTBACK_NOT) in compile_matchingpath()
12319 cc = compile_bracket_matchingpath(common, cc, parent); in compile_matchingpath()
12322 PUSH_BACKTRACK_NOVALUE(sizeof(assert_backtrack), cc); in compile_matchingpath()
12323 cc = compile_assert_matchingpath(common, cc, BACKTRACK_AS(assert_backtrack), FALSE); in compile_matchingpath()
12332 cc = compile_bracketpos_matchingpath(common, cc, parent); in compile_matchingpath()
12336 PUSH_BACKTRACK_NOVALUE(sizeof(backtrack_common), cc); in compile_matchingpath()
12343 OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, (sljit_sw)(cc + 2)); in compile_matchingpath()
12351 OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(2), SLJIT_IMM, (sljit_sw)(cc + 2)); in compile_matchingpath()
12355 cc += 1 + 2 + cc[1]; in compile_matchingpath()
12366 cc = compile_control_verb_matchingpath(common, cc, parent); in compile_matchingpath()
12372 cc = compile_fail_accept_matchingpath(common, cc, parent); in compile_matchingpath()
12376 cc = compile_close_matchingpath(common, cc); in compile_matchingpath()
12380 cc = bracketend(cc + 1); in compile_matchingpath()
12387 if (cc == NULL) in compile_matchingpath()
12394 PUSH_BACKTRACK_NOVALUE(sizeof(then_trap_backtrack), cc); in compile_matchingpath()
12395 BACKTRACK_AS(then_trap_backtrack)->common.cc = then_trap_opcode; in compile_matchingpath()
12399 SLJIT_ASSERT(cc == ccend); in compile_matchingpath()
12420 PCRE2_SPTR cc = current->cc; in compile_iterator_backtrackingpath() local
12428 int private_data_ptr = PRIVATE_DATA(cc); in compile_iterator_backtrackingpath()
12433 cc = get_iterator_parameters(common, cc, &opcode, &type, &max, &exact, &end); in compile_iterator_backtrackingpath()
12481 compile_char1_matchingpath(common, type, cc, &jumplist, TRUE); in compile_iterator_backtrackingpath()
12496 compile_char1_matchingpath(common, type, cc, &jumplist, TRUE); in compile_iterator_backtrackingpath()
12523 compile_char1_matchingpath(common, type, cc, &jumplist, TRUE); in compile_iterator_backtrackingpath()
12548 PCRE2_SPTR cc = current->cc; in compile_ref_iterator_backtrackingpath() local
12549 BOOL ref = (*cc == OP_REF || *cc == OP_REFI); in compile_ref_iterator_backtrackingpath()
12552 type = cc[ref ? 1 + IMM2_SIZE : 1 + 2 * IMM2_SIZE]; in compile_ref_iterator_backtrackingpath()
12593 PCRE2_SPTR cc = current->cc; in compile_assert_backtrackingpath() local
12597 SLJIT_ASSERT(*cc != OP_BRAMINZERO); in compile_assert_backtrackingpath()
12598 if (*cc == OP_BRAZERO) in compile_assert_backtrackingpath()
12600 bra = *cc; in compile_assert_backtrackingpath()
12601 cc++; in compile_assert_backtrackingpath()
12625 if (*cc == OP_ASSERT_NOT || *cc == OP_ASSERTBACK_NOT) in compile_assert_backtrackingpath()
12636 if (*cc == OP_ASSERT || *cc == OP_ASSERTBACK) in compile_assert_backtrackingpath()
12666 PCRE2_SPTR cc = current->cc; in compile_bracket_backtrackingpath() local
12682 if (*cc == OP_BRAZERO || *cc == OP_BRAMINZERO) in compile_bracket_backtrackingpath()
12684 bra = *cc; in compile_bracket_backtrackingpath()
12685 cc++; in compile_bracket_backtrackingpath()
12688 opcode = *cc; in compile_bracket_backtrackingpath()
12689 ccbegin = bracketend(cc) - 1 - LINK_SIZE; in compile_bracket_backtrackingpath()
12702 ccbegin = cc; in compile_bracket_backtrackingpath()
12703 cc += GET(cc, 1); in compile_bracket_backtrackingpath()
12704 has_alternatives = *cc == OP_ALT; in compile_bracket_backtrackingpath()
12709 if (SLJIT_UNLIKELY(opcode == OP_COND) && (*cc == OP_KETRMAX || *cc == OP_KETRMIN)) in compile_bracket_backtrackingpath()
12890 if (*cc == OP_ALT) in compile_bracket_backtrackingpath()
12892 ccprev = cc + 1 + LINK_SIZE; in compile_bracket_backtrackingpath()
12893 cc += GET(cc, 1); in compile_bracket_backtrackingpath()
12906 compile_matchingpath(common, ccprev, cc, current); in compile_bracket_backtrackingpath()
13005 while (*cc == OP_ALT); in compile_bracket_backtrackingpath()
13052 cc = ccbegin + GET(ccbegin, 1); in compile_bracket_backtrackingpath()
13058 …stacksize += CURRENT_AS(bracket_backtrack)->u.framesize + ((ket != OP_KET || *cc == OP_ALT) ? 2 : … in compile_bracket_backtrackingpath()
13060 else if (ket == OP_KETRMAX || (*cc == OP_ALT && ket != OP_KETRMIN)) in compile_bracket_backtrackingpath()
13134 if (*current->cc == OP_CBRAPOS || *current->cc == OP_SCBRAPOS) in compile_bracketpos_backtrackingpath()
13136 offset = (GET2(current->cc, 1 + LINK_SIZE)) << 1; in compile_bracketpos_backtrackingpath()
13173 if (current->cc[1] > OP_ASSERTBACK_NOT) in compile_braminzero_backtrackingpath()
13176 compile_bracket_matchingpath(common, current->cc, current); in compile_braminzero_backtrackingpath()
13182 backtrack.common.cc = current->cc; in compile_braminzero_backtrackingpath()
13185 compile_assert_matchingpath(common, current->cc, &backtrack, FALSE); in compile_braminzero_backtrackingpath()
13193 PCRE2_UCHAR opcode = *current->cc; in compile_control_verb_backtrackingpath()
13237 OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, (sljit_sw)(current->cc + 2)); in compile_control_verb_backtrackingpath()
13294 switch(*current->cc) in compile_backtrackingpath()
13407 if (current->cc[1] > OP_ASSERTBACK_NOT) in compile_backtrackingpath()
13479 PCRE2_SPTR cc = common->start + common->currententry->start; in compile_recurse() local
13480 PCRE2_SPTR ccbegin = cc + 1 + LINK_SIZE + (*cc == OP_BRA ? 0 : IMM2_SIZE); in compile_recurse()
13481 PCRE2_SPTR ccend = bracketend(cc) - (1 + LINK_SIZE); in compile_recurse()
13495 SLJIT_ASSERT(*cc == OP_BRA || *cc == OP_CBRA || *cc == OP_CBRAPOS || *cc == OP_SCBRA || *cc == OP_S… in compile_recurse()
13497 alt_max = no_alternatives(cc); in compile_recurse()
13533 altbacktrack.cc = ccbegin; in compile_recurse()
13534 cc += GET(cc, 1); in compile_recurse()
13540 if (altbacktrack.cc != ccbegin) in compile_recurse()
13543 compile_matchingpath(common, altbacktrack.cc, cc, &altbacktrack); in compile_recurse()
13617 if (*cc != OP_ALT) in compile_recurse()
13620 altbacktrack.cc = cc + 1 + LINK_SIZE; in compile_recurse()
13621 cc += GET(cc, 1); in compile_recurse()
13732 rootbacktrack.cc = common->name_table + re->name_count * re->name_entry_size; in jit_compile()
13739 common->start = rootbacktrack.cc; in jit_compile()