summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2005-06-03 03:50:42 +0000
committerkan <kan@FreeBSD.org>2005-06-03 03:50:42 +0000
commitf8dd8336e3484d2d7f4887c5583585521dd055d0 (patch)
tree56d842dca34faa3e40f969e13617dfdbb051d690 /contrib/gcc/emit-rtl.c
parenta101babe926f42d1c4b46f430425c21fdcda6f97 (diff)
downloadFreeBSD-src-f8dd8336e3484d2d7f4887c5583585521dd055d0.zip
FreeBSD-src-f8dd8336e3484d2d7f4887c5583585521dd055d0.tar.gz
Stock files.
Diffstat (limited to 'contrib/gcc/emit-rtl.c')
-rw-r--r--contrib/gcc/emit-rtl.c33
1 files changed, 25 insertions, 8 deletions
diff --git a/contrib/gcc/emit-rtl.c b/contrib/gcc/emit-rtl.c
index f6e44f9..9df2d6c 100644
--- a/contrib/gcc/emit-rtl.c
+++ b/contrib/gcc/emit-rtl.c
@@ -2910,11 +2910,19 @@ get_first_nonnote_insn (void)
{
rtx insn = first_insn;
- while (insn)
+ if (insn)
{
- insn = next_insn (insn);
- if (insn == 0 || GET_CODE (insn) != NOTE)
- break;
+ if (NOTE_P (insn))
+ for (insn = next_insn (insn);
+ insn && NOTE_P (insn);
+ insn = next_insn (insn))
+ continue;
+ else
+ {
+ if (GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SEQUENCE)
+ insn = XVECEXP (PATTERN (insn), 0, 0);
+ }
}
return insn;
@@ -2928,11 +2936,20 @@ get_last_nonnote_insn (void)
{
rtx insn = last_insn;
- while (insn)
+ if (insn)
{
- insn = previous_insn (insn);
- if (insn == 0 || GET_CODE (insn) != NOTE)
- break;
+ if (NOTE_P (insn))
+ for (insn = previous_insn (insn);
+ insn && NOTE_P (insn);
+ insn = previous_insn (insn))
+ continue;
+ else
+ {
+ if (GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SEQUENCE)
+ insn = XVECEXP (PATTERN (insn), 0,
+ XVECLEN (PATTERN (insn), 0) - 1);
+ }
}
return insn;
OpenPOWER on IntegriCloud