or found_orig_dest, look at all parts of a PARALLEL.
* haifa-sched.c (update_flow_info): Likewise.
From-SVN: r15115
+Fri Sep 5 13:36:44 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * sched.c (update_flow_info) When looking if to set found_split_dest
+ or found_orig_dest, look at all parts of a PARALLEL.
+ * haifa-sched.c (update_flow_info): Likewise.
+
Fri Sep 5 10:08:44 1997 Jeffrey A Law (law@cygnus.com)
* v850: New directory for v850 port.
for (insn = first;; insn = NEXT_INSN (insn))
{
- set = single_set (insn);
- if (set)
+ rtx pat;
+ int i;
+
+ /* I'm not sure if this can happen, but let's be safe. */
+ if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
+ continue;
+
+ pat = PATTERN (insn);
+ i = GET_CODE (pat) == PARALLEL ? XVECLEN (pat, 0) : 0;
+ set = pat;
+
+ for (;;)
{
- if (GET_CODE (SET_DEST (set)) == REG
- && REGNO (SET_DEST (set)) == REGNO (orig_dest))
- {
- found_orig_dest = 1;
- break;
- }
- else if (GET_CODE (SET_DEST (set)) == SUBREG
- && SUBREG_REG (SET_DEST (set)) == orig_dest)
+ if (GET_CODE (set) == SET)
{
- found_split_dest = 1;
- break;
+ if (GET_CODE (SET_DEST (set)) == REG
+ && REGNO (SET_DEST (set)) == REGNO (orig_dest))
+ {
+ found_orig_dest = 1;
+ break;
+ }
+ else if (GET_CODE (SET_DEST (set)) == SUBREG
+ && SUBREG_REG (SET_DEST (set)) == orig_dest)
+ {
+ found_split_dest = 1;
+ break;
+ }
}
+ if (--i < 0)
+ break;
+ set = XVECEXP (pat, 0, i);
}
if (insn == last)
for (insn = first; ; insn = NEXT_INSN (insn))
{
- set = single_set (insn);
- if (set)
+ rtx pat;
+ int i;
+
+ /* I'm not sure if this can happen, but let's be safe. */
+ if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
+ continue;
+
+ pat = PATTERN (insn);
+ i = GET_CODE (pat) == PARALLEL ? XVECLEN (pat, 0) : 0;
+ set = pat;
+ for (;;)
{
- if (GET_CODE (SET_DEST (set)) == REG
- && REGNO (SET_DEST (set)) == REGNO (orig_dest))
- {
- found_orig_dest = 1;
- break;
- }
- else if (GET_CODE (SET_DEST (set)) == SUBREG
- && SUBREG_REG (SET_DEST (set)) == orig_dest)
+ if (GET_CODE (set) == SET)
{
- found_split_dest = 1;
- break;
+ if (GET_CODE (SET_DEST (set)) == REG
+ && REGNO (SET_DEST (set)) == REGNO (orig_dest))
+ {
+ found_orig_dest = 1;
+ break;
+ }
+ else if (GET_CODE (SET_DEST (set)) == SUBREG
+ && SUBREG_REG (SET_DEST (set)) == orig_dest)
+ {
+ found_split_dest = 1;
+ break;
+ }
}
+ if (--i < 0)
+ break;
+ set = XVECEXP (pat, 0, i);
}
if (insn == last)