aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHariharan Sandanagobalane <hariharan@picochip.com>2011-05-27 08:27:23 +0000
committerHariharan Sandanagobalane <hariharans@gcc.gnu.org>2011-05-27 08:27:23 +0000
commitdc38fc2e8a3b5ce18e6a22ea160da5ff7ecb0e4b (patch)
tree3bc843614ecd8e1e886c03f23754b7f335fee31a /gcc
parentad5f3d7b395b741f736b67feb6d053d8ea5a8382 (diff)
downloadgcc-dc38fc2e8a3b5ce18e6a22ea160da5ff7ecb0e4b.zip
gcc-dc38fc2e8a3b5ce18e6a22ea160da5ff7ecb0e4b.tar.gz
gcc-dc38fc2e8a3b5ce18e6a22ea160da5ff7ecb0e4b.tar.bz2
picochip.c (reorder_var_tracking_notes): Drop call_arg_location instructions down the floor.
* config/picochip/picochip.c (reorder_var_tracking_notes): Drop call_arg_location instructions down the floor. From-SVN: r174322
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/picochip/picochip.c13
2 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e487e4..43cce51 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
+ call_arg_location instructions down the floor.
+
2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/49154
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index 8c2a61b..f7f1646 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -3243,13 +3243,20 @@ reorder_var_tracking_notes (void)
}
}
}
- else if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION)
+ else if (NOTE_P (insn))
{
rtx prev = PREV_INSN (insn);
PREV_INSN (next) = prev;
NEXT_INSN (prev) = next;
- PREV_INSN (insn) = queue;
- queue = insn;
+ /* Ignore call_arg notes. They are expected to be just after the
+ call insn. If the call is start of a long VLIW, labels are
+ emitted in the middle of a VLIW, which our assembler can not
+ handle. */
+ if (NOTE_KIND (insn) != NOTE_INSN_CALL_ARG_LOCATION)
+ {
+ PREV_INSN (insn) = queue;
+ queue = insn;
+ }
}
}
/* Make sure we are not dropping debug instructions.*/