From c9f4c45115dfba1d84958c1a971a333763976b7f Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 4 Aug 2010 16:58:26 -0700 Subject: 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 --- gcc/reg-notes.def | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gcc/reg-notes.def') 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 -- cgit v1.2.1