Lines Matching refs:pattern

30    for the pattern that matched.  This is the same as the order in the
36 present, recog will accept a pattern if it matches except for
132 const char *position; /* String denoting position in pattern. */
168 /* The line number of the start of the pattern currently being processed. */
531 find_operand (rtx pattern, int n, rtx stop)
538 if (pattern == stop)
541 code = GET_CODE (pattern);
546 && XINT (pattern, 0) == n)
547 return pattern;
556 if ((r = find_operand (XEXP (pattern, i), n, stop)) != NULL_RTX)
561 if (! XVEC (pattern, i))
566 for (j = 0; j < XVECLEN (pattern, i); j++)
567 if ((r = find_operand (XVECEXP (pattern, i, j), n, stop))
587 find_matching_operand (rtx pattern, int n)
594 code = GET_CODE (pattern);
596 && (XSTR (pattern, 2)[0] == '0' + n
597 || (XSTR (pattern, 2)[0] == '%'
598 && XSTR (pattern, 2)[1] == '0' + n)))
599 return pattern;
608 if ((r = find_matching_operand (XEXP (pattern, i), n)))
613 if (! XVEC (pattern, i))
618 for (j = 0; j < XVECLEN (pattern, i); j++)
619 if ((r = find_matching_operand (XVECEXP (pattern, i, j), n)))
636 and is the complete set pattern. SET_CODE is '=' for normal sets, and
640 validate_pattern (rtx pattern, rtx insn, rtx set, int set_code)
647 code = GET_CODE (pattern);
655 if (find_operand (insn, XINT (pattern, 0), pattern) == pattern)
659 XINT (pattern, 0));
666 const char *pred_name = XSTR (pattern, 1);
688 const char constraints0 = XSTR (pattern, 2)[0];
714 && find_matching_operand (insn, XINT (pattern, 0)))
720 XINT (pattern, 0));
728 XINT (pattern, 0));
741 XINT (pattern, 0));
746 PEEP2 can FAIL within the output pattern. Exclude special
751 if (GET_MODE (pattern) == VOIDmode
763 XINT (pattern, 0));
772 dest = SET_DEST (pattern);
773 src = SET_SRC (pattern);
826 if (dest != SET_DEST (pattern))
827 validate_pattern (dest, insn, pattern, '=');
828 validate_pattern (SET_DEST (pattern), insn, pattern, '=');
829 validate_pattern (SET_SRC (pattern), insn, NULL_RTX, 0);
834 validate_pattern (SET_DEST (pattern), insn, pattern, '=');
838 validate_pattern (XEXP (pattern, 0), insn, set, set ? '+' : 0);
839 validate_pattern (XEXP (pattern, 1), insn, NULL_RTX, 0);
840 validate_pattern (XEXP (pattern, 2), insn, NULL_RTX, 0);
844 validate_pattern (XEXP (pattern, 0), insn, set, set ? '+' : 0);
848 if (GET_MODE (XEXP (pattern, 0)) != VOIDmode)
852 GET_MODE_NAME (GET_MODE (XEXP (pattern, 0))));
868 validate_pattern (XEXP (pattern, i), insn, NULL_RTX, 0);
872 for (j = 0; j < XVECLEN (pattern, i); j++)
873 validate_pattern (XVECEXP (pattern, i, j), insn, NULL_RTX, 0);
898 add_to_sequence (rtx pattern, struct decision_head *last, const char *position,
923 mode = GET_MODE (pattern);
924 code = GET_CODE (pattern);
929 /* Toplevel peephole pattern. */
936 num_insns = XVECLEN (pattern, 0);
949 for (i = 0; i < (size_t) XVECLEN (pattern, 0); i++)
955 sub = add_to_sequence (XVECEXP (pattern, 0, i),
972 test->u.veclen = XVECLEN (pattern, 2);
990 pred_name = XSTR (pattern, 1);
1037 test->u.opno = XINT (pattern, 0);
1042 for (i = 0; i < (size_t) XVECLEN (pattern, 2); i++)
1045 sub = add_to_sequence (XVECEXP (pattern, 2, i),
1056 test->u.dup = XINT (pattern, 0);
1059 test->u.opno = XINT (pattern, 0);
1061 for (i = 0; i < (size_t) XVECLEN (pattern, 1); i++)
1064 sub = add_to_sequence (XVECEXP (pattern, 1, i),
1074 test->u.dup = XINT (pattern, 0);
1078 pattern = XEXP (pattern, 0);
1098 test->u.intval = XINT (pattern, i);
1103 test->u.intval = XINT (pattern, i);
1111 = ((int) XWINT (pattern, i) == XWINT (pattern, i))
1117 test->u.intval = XWINT (pattern, i);
1124 test->u.veclen = XVECLEN (pattern, i);
1135 sub = add_to_sequence (XEXP (pattern, i), &sub->success,
1142 for (j = 0; j < XVECLEN (pattern, i); j++)
1145 sub = add_to_sequence (XVECEXP (pattern, i, j),
1549 /* The semantics of pattern matching state that the tests are
1558 pattern that could also be true if NEW is true. If we find
1559 an identical pattern, we can merge them. Also, record the
2515 pattern that matched. This is the same as the order in the machine\n\
2520 present, recog will accept a pattern if it matches except for missing\n\
2629 If so, set up to recognize the pattern without these CLOBBERs. */