aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-04-28 19:01:02 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2011-04-28 19:01:02 +0200
commitc6fc44f364be516ab4c2043de5d8999c961a279d (patch)
tree7c29e601b93e81b20af265c470141b7c3b88ddd3
parent6c0170eaf1ccd0a29f2f2b95320155716743af88 (diff)
downloadgcc-c6fc44f364be516ab4c2043de5d8999c961a279d.zip
gcc-c6fc44f364be516ab4c2043de5d8999c961a279d.tar.gz
gcc-c6fc44f364be516ab4c2043de5d8999c961a279d.tar.bz2
re PR middle-end/48597 (x86-64 unwind register save location misses half-register write?)
PR middle-end/48597 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for inline asm. From-SVN: r173120
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/final.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d50ad4e..eb6cc3a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/48597
+ * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
+ inline asm.
+
2011-04-28 Joseph Myers <joseph@codesourcery.com>
* config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
diff --git a/gcc/final.c b/gcc/final.c
index df5d7d5..7e1ae90 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -2313,6 +2313,11 @@ final_scan_insn (rtx insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
location_t loc;
expanded_location expanded;
+ /* Make sure we flush any queued register saves in case this
+ clobbers affected registers. */
+ if (dwarf2out_do_frame ())
+ dwarf2out_frame_debug (insn, false);
+
/* There's no telling what that did to the condition codes. */
CC_STATUS_INIT;