Lines Matching refs:op
418 // and no repeating ones, this op is used to return match failure.
433 explicit YarrOp(YarrOpCode op)
434 : m_op(op)
606 YarrOp& op = m_ops[opIndex];
607 m_backtrackingState.append(op.m_jumps);
612 YarrOp& op = m_ops[opIndex];
613 PatternTerm* term = op.m_term;
624 op.m_jumps.append(jump());
630 op.m_jumps.append(jump());
632 op.m_jumps.append(branch32(NotEqual, index, Imm32(m_checked)));
642 YarrOp& op = m_ops[opIndex];
643 PatternTerm* term = op.m_term;
654 op.m_jumps.append(jump());
659 op.m_jumps.append(notAtEndOfInput());
662 op.m_jumps.append(jump());
673 YarrOp& op = m_ops[opIndex];
674 PatternTerm* term = op.m_term;
687 YarrOp& op = m_ops[opIndex];
688 PatternTerm* term = op.m_term;
711 op.m_jumps.append(nonWordCharThenNonWordChar);
725 op.m_jumps.append(wordCharThenWordChar);
737 YarrOp& op = m_ops[opIndex];
739 if (op.m_isDeadCode)
747 PatternTerm* term = op.m_term;
752 op.m_jumps.append(jump());
799 op.m_jumps.append(jump());
816 op.m_jumps.append(jumpIfCharNotEquals(ch, startTermPosition - m_checked, character));
828 op.m_jumps.append(branch32(NotEqual, character, Imm32((allCharacters & 0xffff) | ignoreCaseMask)));
829 op.m_jumps.append(jumpIfCharNotEquals(allCharacters >> 16, startTermPosition + 2 - m_checked, character));
841 op.m_jumps.append(jumpIfCharNotEquals(ch, term->inputPosition - m_checked, character));
852 op.m_jumps.append(branch32(NotEqual, character, Imm32(allCharacters | ignoreCaseMask)));
862 YarrOp& op = m_ops[opIndex];
863 PatternTerm* term = op.m_term;
888 op.m_jumps.append(branch32(NotEqual, character, Imm32(ch)));
899 YarrOp& op = m_ops[opIndex];
900 PatternTerm* term = op.m_term;
924 op.m_reentry = label();
930 YarrOp& op = m_ops[opIndex];
931 PatternTerm* term = op.m_term;
941 jump(op.m_reentry);
946 YarrOp& op = m_ops[opIndex];
947 PatternTerm* term = op.m_term;
952 op.m_reentry = label();
957 YarrOp& op = m_ops[opIndex];
958 PatternTerm* term = op.m_term;
979 jump(op.m_reentry);
989 YarrOp& op = m_ops[opIndex];
990 PatternTerm* term = op.m_term;
999 op.m_jumps.append(matchDest);
1001 op.m_jumps.append(jump());
1012 YarrOp& op = m_ops[opIndex];
1013 PatternTerm* term = op.m_term;
1030 op.m_jumps.append(matchDest);
1032 op.m_jumps.append(jump());
1046 YarrOp& op = m_ops[opIndex];
1047 PatternTerm* term = op.m_term;
1078 op.m_reentry = label();
1084 YarrOp& op = m_ops[opIndex];
1085 PatternTerm* term = op.m_term;
1095 jump(op.m_reentry);
1100 YarrOp& op = m_ops[opIndex];
1101 PatternTerm* term = op.m_term;
1106 op.m_reentry = label();
1111 YarrOp& op = m_ops[opIndex];
1112 PatternTerm* term = op.m_term;
1140 jump(op.m_reentry);
1149 YarrOp& op = m_ops[opIndex];
1150 PatternTerm* term = op.m_term;
1178 op.m_jumps.append(branchTest32(NonZero, matchPos));
1198 op.m_jumps.append(branch32(NotEqual, matchPos, length));
1213 YarrOp& op = m_ops[opIndex];
1214 PatternTerm* term = op.m_term;
1279 YarrOp& op = m_ops[opIndex];
1280 PatternTerm* term = op.m_term;
1353 YarrOp& op = m_ops[opIndex];
1354 switch (op.m_op) {
1383 PatternAlternative* alternative = op.m_alternative;
1387 op.m_jumps.append(jumpIfNoAvailableInput(alternative->m_minimumSize));
1390 op.m_reentry = label();
1397 PatternAlternative* priorAlternative = m_ops[op.m_previousOp].m_alternative;
1398 PatternAlternative* alternative = op.m_alternative;
1426 if (op.m_op == OpBodyAlternativeNext) {
1431 op.m_reentry = label();
1434 op.m_jumps.append(jumpIfNoAvailableInput());
1437 } else if (op.m_nextOp == notFound) {
1440 op.m_reentry = label();
1444 if (op.m_op == OpBodyAlternativeNext)
1468 PatternTerm* term = op.m_term;
1469 PatternAlternative* alternative = op.m_alternative;
1473 op.m_checkAdjust = alternative->m_minimumSize;
1475 op.m_checkAdjust -= disjunction->m_minimumSize;
1476 if (op.m_checkAdjust)
1477 op.m_jumps.append(jumpIfNoAvailableInput(op.m_checkAdjust));
1479 m_checked += op.m_checkAdjust;
1484 PatternTerm* term = op.m_term;
1485 PatternAlternative* alternative = op.m_alternative;
1489 if (op.m_op == OpNestedAlternativeNext) {
1494 op.m_returnAddress = storeToFrameWithPatch(alternativeFrameLocation);
1497 if (term->quantityType != QuantifierFixedCount && !m_ops[op.m_previousOp].m_alternative->m_minimumSize) {
1500 op.m_zeroLengthMatch = branch32(Equal, index, Address(stackPointerRegister, term->frameLocation * sizeof(void*)));
1511 YarrOp* endOp = &m_ops[op.m_nextOp];
1520 op.m_reentry = label();
1523 op.m_checkAdjust = alternative->m_minimumSize;
1525 op.m_checkAdjust -= disjunction->m_minimumSize;
1526 if (op.m_checkAdjust)
1527 op.m_jumps.append(jumpIfNoAvailableInput(op.m_checkAdjust));
1529 YarrOp& lastOp = m_ops[op.m_previousOp];
1531 m_checked += op.m_checkAdjust;
1536 PatternTerm* term = op.m_term;
1539 if (op.m_op == OpNestedAlternativeEnd) {
1544 op.m_returnAddress = storeToFrameWithPatch(alternativeFrameLocation);
1547 if (term->quantityType != QuantifierFixedCount && !m_ops[op.m_previousOp].m_alternative->m_minimumSize) {
1550 op.m_zeroLengthMatch = branch32(Equal, index, Address(stackPointerRegister, term->frameLocation * sizeof(void*)));
1556 op.m_jumps.link(this);
1557 op.m_jumps.clear();
1559 YarrOp& lastOp = m_ops[op.m_previousOp];
1569 PatternTerm* term = op.m_term;
1592 op.m_jumps.append(jump());
1593 op.m_reentry = label();
1617 PatternTerm* term = op.m_term;
1652 op.m_reentry = label();
1654 YarrOp& beginOp = m_ops[op.m_previousOp];
1662 PatternTerm* term = op.m_term;
1668 op.m_reentry = label();
1676 YarrOp& beginOp = m_ops[op.m_previousOp];
1678 PatternTerm* term = op.m_term;
1694 op.m_reentry = label();
1700 PatternTerm* term = op.m_term;
1708 op.m_checkAdjust = m_checked - term->inputPosition;
1709 if (op.m_checkAdjust)
1710 sub32(Imm32(op.m_checkAdjust), index);
1712 m_checked -= op.m_checkAdjust;
1716 PatternTerm* term = op.m_term;
1725 op.m_jumps.append(jump());
1726 op.m_reentry = label();
1729 YarrOp& lastOp = m_ops[op.m_previousOp];
1754 YarrOp& op = m_ops[opIndex];
1755 switch (op.m_op) {
1786 PatternAlternative* alternative = op.m_alternative;
1788 if (op.m_op == OpBodyAlternativeNext) {
1789 PatternAlternative* priorAlternative = m_ops[op.m_previousOp].m_alternative;
1796 if (m_ops[op.m_nextOp].m_op != OpBodyAlternativeEnd) {
1797 m_backtrackingState.linkTo(m_ops[op.m_nextOp].m_reentry, this);
1800 YarrOp& endOp = m_ops[op.m_nextOp];
1802 YarrOp* beginOp = &op;
1909 op.m_jumps.linkTo(endOp.m_reentry, this);
1916 op.m_jumps.link(this);
1985 PatternAlternative* priorAlternative = m_ops[op.m_previousOp].m_alternative;
2005 YarrOp& nextOp = m_ops[op.m_nextOp];
2006 bool isBegin = op.m_previousOp == notFound;
2008 ASSERT(isBegin == (op.m_op == OpSimpleNestedAlternativeBegin || op.m_op == OpNestedAlternativeBegin));
2012 m_backtrackingState.append(op.m_jumps);
2034 if (op.m_checkAdjust) {
2037 sub32(Imm32(op.m_checkAdjust), index);
2061 if (op.m_zeroLengthMatch.isSet())
2062 m_backtrackingState.append(op.m_zeroLengthMatch);
2069 if (op.m_op == OpNestedAlternativeNext)
2070 m_backtrackingState.append(op.m_returnAddress);
2076 YarrOp* endOp = &m_ops[op.m_nextOp];
2086 YarrOp& lastOp = m_ops[op.m_previousOp];
2089 m_checked -= op.m_checkAdjust;
2094 PatternTerm* term = op.m_term;
2097 if (op.m_zeroLengthMatch.isSet())
2098 m_backtrackingState.append(op.m_zeroLengthMatch);
2104 if (op.m_op == OpNestedAlternativeEnd) {
2116 m_backtrackingState.append(op.m_returnAddress);
2119 YarrOp& lastOp = m_ops[op.m_previousOp];
2140 PatternTerm* term = op.m_term;
2157 jump(m_ops[op.m_nextOp].m_reentry);
2160 op.m_jumps.link(this);
2168 PatternTerm* term = op.m_term;
2182 YarrOp& beginOp = m_ops[op.m_previousOp];
2190 YarrOp& beginOp = m_ops[op.m_previousOp];
2197 m_backtrackingState.append(op.m_jumps);
2211 YarrOp& endOp = m_ops[op.m_nextOp];
2218 m_backtrackingState.append(op.m_jumps);
2223 PatternTerm* term = op.m_term;
2224 YarrOp& endOp = m_ops[op.m_nextOp];
2229 if (op.m_checkAdjust || term->invert()) {
2232 if (op.m_checkAdjust)
2233 add32(Imm32(op.m_checkAdjust), index);
2250 m_checked += op.m_checkAdjust;
2259 m_backtrackingState.takeBacktracksToJumpList(op.m_jumps, this);
2261 YarrOp& lastOp = m_ops[op.m_previousOp];