summaryrefslogtreecommitdiff
path: root/gcc/reg-notes.def
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 23:58:26 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 23:58:26 +0000
commit3c347ca592ecd6fad23869592e75ce63e71a7811 (patch)
treea39862b72529e6b9992873c95bf737f8aca806dd /gcc/reg-notes.def
parent2c22c7757371a516818998183f743474e160df53 (diff)
downloadgcc-3c347ca592ecd6fad23869592e75ce63e71a7811.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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162889 138bc75d-0d04-0410-961f-82ee72b054a4
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