summaryrefslogtreecommitdiff
path: root/gcc/reg-notes.def
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2010-08-04 16:58:26 -0700
committerRichard Henderson <rth@gcc.gnu.org>2010-08-04 16:58:26 -0700
commitc9f4c45115dfba1d84958c1a971a333763976b7f (patch)
treea39862b72529e6b9992873c95bf737f8aca806dd /gcc/reg-notes.def
parentec7ded37e7550ed1e9f133b959fe92ff6fdf791d (diff)
downloadgcc-c9f4c45115dfba1d84958c1a971a333763976b7f.tar.gz
Describe unwinding for realigned frames explicitly.
We had been relying on some extremely fragile code within dwarf2out in order to guess what to do with aligned stack frames, which broke when we decided to perform the stores to the aligned stack frame via EBP instead of ESP. Instead, emit the appropriate unwinding instructions from the backend. This requires adding a new reg-note in order to describe a register save at an arbitrary address. From-SVN: r162889
Diffstat (limited to 'gcc/reg-notes.def')
-rw-r--r--gcc/reg-notes.def6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reg-notes.def b/gcc/reg-notes.def
index aa2daeac007..f82e7b741a0 100644
--- a/gcc/reg-notes.def
+++ b/gcc/reg-notes.def
@@ -148,6 +148,12 @@ REG_NOTE (CFA_OFFSET)
or the pattern should be simple reg-reg move. */
REG_NOTE (CFA_REGISTER)
+/* Attached to insns that are RTX_FRAME_RELATED_P, but are too complex
+ for FRAME_RELATED_EXPR intuition. This is a save to memory, i.e. will
+ result in a DW_CFA_expression. The pattern or the insn should be a
+ store of a register to an arbitrary (non-validated) memory address. */
+REG_NOTE (CFA_EXPRESSION)
+
/* Attached to insns that are RTX_FRAME_RELATED_P, with the information
that this is a restore operation, i.e. will result in DW_CFA_restore
or the like. Either the attached rtx, or the destination of the insn's