Lines Matching refs:pat

251 static int stack_regs_mentioned_p (rtx pat);
279 stack_regs_mentioned_p (rtx pat)
284 if (STACK_REG_P (pat))
287 fmt = GET_RTX_FORMAT (GET_CODE (pat));
288 for (i = GET_RTX_LENGTH (GET_CODE (pat)) - 1; i >= 0; i--)
294 for (j = XVECLEN (pat, i) - 1; j >= 0; j--)
295 if (stack_regs_mentioned_p (XVECEXP (pat, i, j)))
298 else if (fmt[i] == 'e' && stack_regs_mentioned_p (XEXP (pat, i)))
419 get_true_reg (rtx *pat)
422 switch (GET_CODE (*pat))
429 if (FP_REG_P (subreg = SUBREG_REG (*pat)))
433 SUBREG_BYTE (*pat),
434 GET_MODE (*pat));
435 *pat = FP_MODE_REG (REGNO (subreg) + regno_off,
438 return pat;
444 pat = & XEXP (*pat, 0);
449 return pat;
450 pat = & XEXP (*pat, 0);
969 move_for_stack_reg (rtx insn, stack regstack, rtx pat)
971 rtx *psrc = get_true_reg (&SET_SRC (pat));
972 rtx *pdest = get_true_reg (&SET_DEST (pat));
1111 rtx pat;
1114 pat = gen_rtx_SET (VOIDmode, dest, not_a_num);
1115 PATTERN (insn) = pat;
1118 return move_for_stack_reg (insn, regstack, pat);
1127 swap_rtx_condition_1 (rtx pat)
1132 if (COMPARISON_P (pat))
1134 PUT_CODE (pat, swap_condition (GET_CODE (pat)));
1139 fmt = GET_RTX_FORMAT (GET_CODE (pat));
1140 for (i = GET_RTX_LENGTH (GET_CODE (pat)) - 1; i >= 0; i--)
1146 for (j = XVECLEN (pat, i) - 1; j >= 0; j--)
1147 r |= swap_rtx_condition_1 (XVECEXP (pat, i, j));
1150 r |= swap_rtx_condition_1 (XEXP (pat, i));
1160 rtx pat = PATTERN (insn);
1164 if (GET_CODE (pat) == SET
1165 && REG_P (SET_DEST (pat))
1166 && REGNO (SET_DEST (pat)) == FLAGS_REG)
1171 pat = PATTERN (insn);
1178 if (GET_CODE (pat) == SET
1179 && GET_CODE (SET_SRC (pat)) == UNSPEC
1180 && XINT (SET_SRC (pat), 1) == UNSPEC_FNSTSW)
1182 rtx dest = SET_DEST (pat);
1202 pat = PATTERN (insn);
1203 if (GET_CODE (pat) != SET
1204 || GET_CODE (SET_SRC (pat)) != UNSPEC
1205 || XINT (SET_SRC (pat), 1) != UNSPEC_SAHF
1213 pat = PATTERN (insn);
1216 if (swap_rtx_condition_1 (pat))
1232 swap_rtx_condition_1 (pat);
1338 subst_stack_regs_pat (rtx insn, stack regstack, rtx pat)
1343 switch (GET_CODE (pat))
1348 src = get_true_reg (&XEXP (pat, 0));
1364 dest = get_true_reg (&XEXP (pat, 0));
1369 if (pat != PATTERN (insn))
1424 dest = get_true_reg (&SET_DEST (pat));
1425 src = get_true_reg (&SET_SRC (pat));
1426 pat_src = SET_SRC (pat);
1434 control_flow_insn_deleted |= move_for_stack_reg (insn, regstack, pat);