Lines 762-767
do_SUBST_MODE (rtx *into, enum machine_m
Link Here
|
762 |
} |
762 |
} |
763 |
|
763 |
|
764 |
#define SUBST_MODE(INTO, NEWVAL) do_SUBST_MODE(&(INTO), (NEWVAL)) |
764 |
#define SUBST_MODE(INTO, NEWVAL) do_SUBST_MODE(&(INTO), (NEWVAL)) |
|
|
765 |
|
766 |
/* Similar to SUBST, but NEWVAL is a LOG_LINKS expression. */ |
767 |
|
768 |
static void |
769 |
do_SUBST_LINK (rtx *into, rtx newval) |
770 |
{ |
771 |
struct undo *buf; |
772 |
rtx oldval = *into; |
773 |
|
774 |
if (oldval == newval) |
775 |
return; |
776 |
|
777 |
if (undobuf.frees) |
778 |
buf = undobuf.frees, undobuf.frees = buf->next; |
779 |
else |
780 |
buf = XNEW (struct undo); |
781 |
|
782 |
buf->kind = UNDO_RTX; |
783 |
buf->where.r = into; |
784 |
buf->old_contents.r = oldval; |
785 |
*into = newval; |
786 |
|
787 |
buf->next = undobuf.undos, undobuf.undos = buf; |
788 |
} |
789 |
|
790 |
#define SUBST_LINK(oldval, newval) do_SUBST_LINK (&oldval, newval) |
791 |
|
765 |
|
792 |
|
766 |
/* Subroutine of try_combine. Determine whether the combine replacement |
793 |
/* Subroutine of try_combine. Determine whether the combine replacement |
767 |
patterns NEWPAT, NEWI2PAT and NEWOTHERPAT are cheaper according to |
794 |
patterns NEWPAT, NEWI2PAT and NEWOTHERPAT are cheaper according to |
Lines 2867-2872
try_combine (rtx i3, rtx i2, rtx i1, rtx
Link Here
|
2867 |
SUBST (PATTERN (i2), XVECEXP (PATTERN (i2), 0, 0)); |
2894 |
SUBST (PATTERN (i2), XVECEXP (PATTERN (i2), 0, 0)); |
2868 |
SUBST (XEXP (SET_SRC (PATTERN (i2)), 0), |
2895 |
SUBST (XEXP (SET_SRC (PATTERN (i2)), 0), |
2869 |
SET_DEST (PATTERN (i1))); |
2896 |
SET_DEST (PATTERN (i1))); |
|
|
2897 |
SUBST_LINK (LOG_LINKS (i2), alloc_INSN_LIST (i1, LOG_LINKS (i2))); |
2870 |
} |
2898 |
} |
2871 |
} |
2899 |
} |
2872 |
#endif |
2900 |
#endif |