aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-03-20 07:59:54 +0000
committerRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-03-20 07:59:54 +0000
commit6882010bb23e9173882cfaf24a0545e4427fd626 (patch)
treec0ae0271ac6361b3398a5d276f8578f790324910
parent3fa6a1ed039d9a454841ac38e94f382be38723ef (diff)
Fix PR debug/48203
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@171193 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87fb0337ecd..53820c1a3f5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ PR debug/48023
+ * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
+ between a call and its CALL_ARG_LOCATION note.
+
2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
PR debug/48178
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index c6ba3fb28fe..4784939b47f 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -12022,6 +12022,16 @@ create_fix_barrier (Mfix *fix, HOST_WIDE_INT max_address)
/* Make sure that we found a place to insert the jump. */
gcc_assert (selected);
+ /* Make sure we do not split a call and its corresponding
+ CALL_ARG_LOCATION note. */
+ if (CALL_P (selected))
+ {
+ rtx next = NEXT_INSN (selected);
+ if (next && NOTE_P (next)
+ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
+ selected = next;
+ }
+
/* Create a new JUMP_INSN that branches around a barrier. */
from = emit_jump_insn_after (gen_jump (label), selected);
JUMP_LABEL (from) = label;