0 for the whole things. */ fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) { register int j; switch (fmt[i]) { case 'i': if (XINT (x, i) != XINT (y, i)) return 0; break; case 's': if (strcmp (XSTR (x, i), XSTR (y, i))) return 0; break; case 'e': if (! rtx_renumbered_equal_p (XEXP (x, i), XEXP (y, i))) return 0; break; case '0': break; case 'E': if (XVECLEN (x, i) != XVECLEN (y, i)) return 0; for (j = XVECLEN (x, i) - 1; j >= 0; j--) if (!rtx_renumbered_equal_p (XVECEXP (x, i, j), XVECEXP (y, i, j))) return 0; break; /* It is believed that rtx's at this level will never contain anything but integers and other rtx's, except for within LABEL_REFs and SYMBOL_REFs. */ default: abort (); } } return 1; } /* If X is a hard register or equivalent to one or a subregister of one, return the hard register number. Otherwise, return -1. Any rtx is valid for X. */ int true_regnum (x) rtx x; { if (GET_CODE (x) == REG) { if (REGNO (x) >= FIRST_PSEUDO_REGISTER) return reg_renumber[R